Performing a Functional Audit
A functional audit determines whether a deployed service instance is functioning. It checks the control plane to ensure connectivity among endpoints and that the UNIs are functioning correctly. It also checks the data plane to verify packet transmission between each valid pair of endpoints in the service.
The functional audit provides both a CLI verification and a troubleshooting feature that allows you to check the status of interfaces, LDP sessions, neighbor links, and endpoints of E-Line services. The Functional Audit Results window displays information about the service statistics for the link you are monitoring. When you click Troubleshoot button in the Functional Audit Results window, the Troubleshooting page displays status of the interfaces, LDP sessions, neighbor links, and endpoints.
Performing the Functional Audit
To perform a functional audit:
CLI Verification
The CLI verification feature of a functional audit works by running commands that perform verification and reporting relevant information.
The following table shows the commands that are used for each service type.
XML Commands |
CLI Commands |
|||
---|---|---|---|---|
Service Type/ Device Type |
Control Plane |
Data Plane |
Control Plane |
Data Plane |
ELINE Martini/ M Series and MX Series |
<get-l2ckt-connection-information> <neighbor>neighborIP</neighbor> <interface>interfaceName </interface> </get-12-ckt-connection-information> |
<request-ping-l2circuit-virtual-circuit> <neighbor>neighborIP</neighbor> <virtual-circuit-id>VCID</virtual-circuit-id> </request-ping-l2circuit-virtual-circuit> |
show l2circuit connections neighbor neighborIP interface interfaceName show ppp interface mlppp group1 members |
ping mpls l2circuit virtual-circuit VCID neighbor neighborIP |
Where: neighborIP = Address of remote neighbor VC ID = Virtual Circuit ID interfaceName = Name of interface |
||||
BX Series |
Not supported. |
<get-l2circuit-information> <l2circuit-name> name<l2circuit-name> <brief/> </get-l2circuit-information> |
Not supported. |
show l2circuit name brief |
Where: Name = name of the l2 circuit ID |
||||
VPLS/ M Series |
<get-vpls-connection-information> <instance> routing_instance_name </instance> <local-site> local-siteID </local-site> <remote-site> remote-siteID </remote-site> </get-vpls-connection-information> |
<request-ping-vpls-instance> <instance-name> routing_instance_name </instance-name> <destination-mac> destMacValue </destination-mac> <source-ip> sourceIp </source-ip> <learning-vlan-id> learning-vlan-id < /learning-vlan-id> </request-ping-vpls-instance> |
show vpls connections instance routing_instance_name local-site local-siteID remote-site remote-siteID |
ping vpls instance routing_instance_name destination-mac destMacValue source-ip sourceIpValue learning-vlan-id learningVlanID |
Where: routing_instance_name = Routing instance name destMacValue = Destination MAC address sourceIP = Source IP address local-SiteID = Name or ID of VPLS local site remote-SiteID = ID of VPLS remote site learning-vlan-id = Learning VLAN identifier |
||||
L3VPN/ Junos |
<get-route-information> <table> bgp.l3vpn.0</table> <rd-prefix>destinationRDprefix</rd-prefix> </get-route-information> |
<ping><routing-instance> routingInstanceValue </routing-instance> <count>5 </count> |
show route table bgp.l3vpn.0 rd-prefix destinationRDprefix |
ping routing-instance routiingInstanceValue count |
Where: routingInstanceValue = Routing instance name destinationRDprefix = Route Distinguisher: remote UNI IP address destinationUniInterfaceIP = Destination UNI IP address |
For the data plane, the Junos Space software places a static MAC address in the forwarding table of the remote endpoint, which it uses to verify correct packet transfer.
Data plane validation of an E-LAN service works for MX Series devices running Junos Release 9.4 or later. If the service under audit contains an M Series device or an N-PE device running Junos Release 9.2 or 9.3, the functional audit does not complete successfully and generates a message stating that functional audit is not supported on that platform.
The following table shows the commands for E-LAN service type:
Service Type |
Device Family |
XML Commands |
CLI Commands |
Category |
VPLS |
M Series |
<get-vpls-connection-information> <instance>instanceValue</instance> </get-vpls-connection-information> |
show vpls connection instance instanceValue |
Route |
<get-mpls-lsp-information> <ingress/> </get-mpls-lsp-information> |
show mpls lsp ingress |
MPLS |
||
<get-mpls-lsp-information> <egress/> </get-mpls-lsp-information> |
show mpls lsp egress |
MPLS |
||
<get-mpls-static-lsp-information> <ingress/> </get-mpls-static-lsp-information> |
show mpls static-lsp ingress |
MPLS |
||
<get-rsvp-session-information> </get-rsvp-session-information> |
show rsvp session |
Route |
||
<get-route-information> <table>inet.3</table> </get-route-information> |
show route table inet.3 |
Route |
||
<get-interface-information> <terse/><interface-name>interfaceValue</interface-name> </get-interface-information> |
show interface interfaceValue terse |
UNI |
||
<get-interface-information> <statistics/> <interface-name>interfaceValue</interface-name> </get-interface-information> |
show interface interfaceValue statistics |
UNI |
||
<get-route-information> <table>instanceValue</table> <protocol>bgp</protocol> </get-route-information> |
show route protocol bgp table instanceValue.l2vpn.0 |
Route |
||
Where: instanceValue= Name of the service neighborIP= Address of the remote neighbor interfaceValue= Name of the interface |
||||
The following table shows the commands for IP service type:
Service Type |
Device Family |
XML Commands |
CLI Commands |
Category |
L3VPN |
M Series |
<get-mpls-lsp-information> <ingress/> </get-mpls-lsp-information> |
show mpls lsp ingress |
MPLS |
<get-mpls-lsp-information> <egress/> </get-mpls-lsp-information> |
show mpls lsp egress |
MPLS |
||
<get-interface-information> <terse/> <interface-name>interfaceValue</interface-name> </get-interface-information> |
show interfaces instancevalue.initvalue terse |
Route |
||
<get-forwarding-table-information> <vpn>instance </vpn> </get-forwarding-table-information> |
show route forwarding-table vpn instance |
Route |
||
<get-rsvp-session-information> </get-rsvp-session-information> |
show rsvp session |
Route |
||
<get-interface-information> <statistics/> <interface-name>instance</interface-name> </get-interface-information> |
show interfaces instance statistics |
UNI |
||
<get-mpls-static-lsp-information> <ingress/> </get-mpls-static-lsp-information> |
show mpls static-lsp |
MPLS |
||
<get-ospf-neighbor-information> </get-ospf-neighbor-information> |
show ospf neighbor |
Route |
||
<get-route-information> <table>bgp.l3vpn.0 </table> <rd-prefix>destinationRDprefix</rd-prefix> </get-route-information> |
show route table bgp.l3vpn.0 |
Route |
||
<get-lacp-interface-information><interface-name>lagInterface</interface-name></get-lacp-interface-information> |
show lacp interfaces |
UNI |
||
<get-mc-ae-interface-information></get-mc-ae-interface-information> |
show interfaces mc-ae |
UNI |
||
<get-vrrp-interface-information><interface-name>lnterface</interface-name></get-vrrp-interface-information> |
Show vrrp interfaceName |
UNI |
||
<get-bridge-instance-information><bridge-domain-name>domainName</bridge-domain-name></get-bridge-instance-information> |
Show bridge domain domainName |
UNI |
||
Where: instanceValue= Name of the service neighborIP= Address of the remote neighbor interfaceValue= Name of the interface |