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:
- From the View selector, select Service View. The workspaces that are applicable to routing and tunnel services are displayed.
- Click the Build icon in the Service View of the Connectivity Services Director banner. The functionalities that you can configure in this mode are displayed in the task pane.
- Click the plus sign (+) beside Connectivity to view services
based on protocols.
Expand the IP Services tree to select an IP service.
Expand the E-Line Services tree to select an E-Line service.
Expand the E-LAN Services tree to select an E-LAN service.
- In the Network Services > Connectivity task pane, select Audit Results > Functional Audit. Alternatively, you can select a service order, click the Audit button at the top of the table of listed service orders from the Manage Network Services page and select Run Functional Audit.
- In the Schedule Functional Audit dialog box,
do one of the following:
Select Audit Now, then click OK.
The Job Details dialog box appears for you to click the Job ID link to see the functional results. The Job Management page displays the functional audit details by job ID, name, percentage complete, state, job type, summary, scheduled start time, user, and recurrence.
Note Alternatively, to display the Job Management page, click the System icon on the Connectivity Services Director banner, and select Manage Jobs from the Tasks pane. You can also view the CSD Deployment Jobs page in Deploy mode of Service View by selecting the View Deployment Jobs option in the task pane.
Select Audit Later, enter a date and time, then click OK.
To monitor the progress of an audit after selecting Audit Later, after the scheduled time of the audit:
- On the Junos Space Network Management Platform user interface, select Jobs.
- On the Jobs statistics page, select the Functional Audit segment of the Job Types pie chart.
The Job Management page appears filtered by functional audit jobs.
- Select the functional audit job that you want.
Summary information about the audit appears in the quick look panel.
- In the filter bar, select the table view icon to see additional information about the job. If the service failed the audit, information about the failure appears in the Summary field.
Note Functional audit can be run for multiple services from Build mode of Service View of the Connectivity Services Director GUI. From the Manage Network Services page, select the check boxes beside multiple srvices, and click the Audit/Results button at the top of the table of configured services. When the Audit/Results button is clicked, the Schedule Functional Audit window is displayed, which enables you to perform the audit immediately or schedule it to be run at a later time. You can view detailed, ingrained information about the output of the functional audit that you performed for a service from the Functional Audit Results window. Select the Service-name > Interface-name Device-name > Remote Interface - Remote Device in the left pane of the window. The control plane and data plane statuses are displayed by running service-specific commands in the right pane of the window. Click Rerun Functional Audit at the top-right corner of the window to perform the audit again. If the Status field displays as Completed, an audit can be run again; else, if the Status field displays as Ongoing, it denotes that an audit is currently in progress, you must wait for the running instance to be completed to perform a functional evaluation again.
Click Reload Result at the top-right corner of the window to refresh the results of the audit and display the updated information. You can refresh the results only for completed audit instances. When you select Service-name in the left pane of the window, service status information is displayed in the right pane. The Service Status window displays details such as the operational status of the service, the device name, the topology used in the service are displayed in a tabular format. The number of UNI interfaces and PE devices that are up and down is also shown. When you select Service-name > Interface-name Device-name > Remote Interface - Remote Device in the left pane of the window, endpoint status information is shown in the right pane. The Endpoint Status window displays details of the device name, the topology used in service, remote UNIs status, and device status of the selected service.
The Service Status field corresponding to the service for which polled data is not available is displayed as NA. The Service Status field represents the overall status of a service. To calculate the overall service status, a polling mechanism is used to retrieve data from devices by Connectivity Services Director. Because the overall status of a service involves multiple devices, it is possible to calculate and update service statuses, based on an event from one of the devices because the status of all endpoints of a service needs to be determined to compute the overall service status. It is an expensive operation to send requests to all endpoints, based on an event from a single device. As a result, a polling method is used to obtain the overall status of the device. Because the polled data represents a snapshot at a point in time, a delay occurs in updating the status of a service. Also, while polling, if service information from one of the devices is not available, the service is marked as down.
- To view additional details about the functional audit, including results from checking the control plane and the data plane, see Viewing Functional Audit Results .
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> | show lacp interfaces | UNI | ||
<get-mc-ae-interface-information> | show interfaces mc-ae | UNI | ||
<get-vrrp-interface-information> | Show vrrp interfaceName | UNI | ||
<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 | ||||