- Table of Contents
-
- 15-Network Management and Monitoring Configuration Guide
- 00-Preface
- 01-System maintenance and debugging configuration
- 02-NQA configuration
- 03-iNQA configuration
- 04-iFIT configuration
- 05-SRPM configuration
- 06-NTP configuration
- 07-PTP configuration
- 08-Network synchronization configuration
- 09-SNMP configuration
- 10-RMON configuration
- 11-NETCONF configuration
- 12-CWMP configuration
- 13-EAA configuration
- 14-Process monitoring and maintenance configuration
- 15-Sampler configuration
- 16-Mirroring configuration
- 17-NetStream configuration
- 18-IPv6 NetStream configuration
- 19-TCP connection trace configuration
- 20-Performance management configuration
- 21-Fast log output configuration
- 22-Flow log configuration
- 23-Information center configuration
- 24-Packet capture configuration
- 25-Flow monitor configuration
- Related Documents
-
Title | Size | Download |
---|---|---|
04-iFIT configuration | 636.94 KB |
Application-level quality measurement
Tunnel-level quality measurement
Configuring iFIT for application-level quality measurement
Configuring the transit network type for a target flow
Configuring a measurement mode
Configuring a measurement period
Configuring a transmit point and the egress node
Display and maintenance commands for iFIT for iFIT application-level quality measurement
Example: Configuring iFIT on a Native-IP network
Example: Configuring iFIT on an MPLS private network
Example: Configuring iFIT on an IPv4 L3VPN over SRv6 network
Example: Configuring iFIT on an IPv6 EVPN L3VPN over SRv6 network
Example: Configuring iFIT on an EVPN VPWS over SRv6 network
Example: Configuring iFIT on an EVPN VPLS over SRv6 network
Configuring iFIT for tunnel-level quality measurement
Display and maintenance commands for iFIT tunnel-level quality measurement
Configuring iFIT
About iFIT
In-situ Flow Information Telemetry (iFIT) determines network performance by measuring the packet loss and packet delay of service packets transmitted on a public network or an MPLS, SR-MPLS, SRv6, G-SRv6, or G-BIER transit network. iFIT is easy to deploy and provides an accurate assessment of network performance.
iFIT can be used for the following purposes:
· Application-level quality measurement—Measures the metrics such as the packet loss rate and delay when service traffic passes through the transmission network. The measurement result can be used to assess the network transmission quality for the service traffic.
· Tunnel-level quality measurement—Measures the metrics such as the packet loss rate and delay when packets pass through SRv6 tunnels. The measurement results can be used for intelligent route selection of the SRv6 TE policy module.
iFIT technical standards
The implementation of iFIT adheres to the technical standards of China Mobile, China Telecom, and China Unicom, which have some slight differences, for example, in encapsulation requirements for iFIT headers in IPv6 packets. Choose one set of standards as needed.
Devices included in iFIT measurement on the same SRv6 link must be configured with the same technical standards. If you fail to do so, iFIT packet parsing might fail, leading to inaccurate iFIT measurement results.
Application-level quality measurement
Application scenarios
End-to-end measurement
To measure the packet loss and packet delay on the entire network, use end-to-end measurement. As shown in Figure 1, iFIT measures whether packet loss or packet delay occurs between the ingress node (where the target flow enters the IP network) and the egress node (where the flow leaves the network).
Figure 1 End-to-end measurement
Hop-by-hop measurement
To accurately locate the packet loss and packet delay of each network node, use hop-by-hop measurement. To locate the faulty node, you can divide an end-to-end network into smaller measurement spans. As shown in Figure 2, iFIT measures whether the packet loss and packet delay occurs between the ingress node and egress node, ingress node and transmit point, transmit point and egress node.
Figure 2 Hop-by-hop measurement
|
NOTE: When the egress device on a network does not support iFIT, end-to-end measurement is not supported. In this case, you can deploy hop-by-hop measurement. That is, configure iFIT on the ingress device and other devices that support iFIT to measure performance of a specific link. |
iFIT architecture
Figure 1 and Figure 2 show the important iFIT concepts including transit network, target flow, detection point, and measurement system.
Transit network
A transit network is a network that transmits target flows. A service flow are neither generated nor terminated within the transit network. In the current software version, iFIT supports measuring only service flows on Layer 3 transit networks.
To measure the transmission quality of a target flow in a transit network, iFIT adds an iFIT header to the target flow. The encapsulation format of an iFIT header varies by transit network type, which can the one of the following:
· Tunnel—Corresponds to the transit network types such as MPLS, SR-MPLS, SRv6, G-BIER, and G-SRv6. On a Tunnel network, the ingress node itself must encapsulate service packets with MPLS, SRv6, and so on. To implement iFIT measurement, the ingress node adds extension fields to carry iFIT measurement data during the encapsulation of service packets with MPLS, SRv6, and so on. This is used for subsequent recognition and processing on forwarding nodes.
· Native-IP—Corresponds to the transit network type of the public network. On a Native-IP network, the ingress node keeps the original service packets unchanged and encapsulates an SRv6 BE header on top of the original service packets to carry iFIT measurement data. This is used for subsequent recognition and processing on forwarding nodes.
Target flow
iFIT provides statistics on a per-flow basis. The target flows can be divided into the following types:
· Static flow—A static flow is used to map and manage dynamic flows. A service flow acts as a configuration template. The ingress node generates a static flow after you enable iFIT measurement and execute the flow command to configure the flow match criteria on the ingress node. The ingress node uses a device ID and a flow ID to uniquely identify the static flow. The device ID is configured by the device-id command and the flow ID is a number randomly generated on the ingress node in the range of 1 to 1048575.
To view the device ID, flow ID, transit network type, and other settings of a static flow on the ingress node, execute the display ifit flow static command.
· Dynamic flow—A dynamic flow is a service flow dynamically learnt by the device. Dynamic flows are generated as follows:
¡ For the ingress node, if the device receives a service flow that matches the flow match criteria of a static flow, a dynamic flow with the same device ID and flow ID as the static flow is generated. The ingress node also encapsulates the device ID and the flow ID in the iFIT headers of service packets before sending the service packets to a transmit point and the egress node.
¡ For a transmit point and the egress node, they parse the received service packets and generate dynamic flows by dynamically learning from the iFIT headers of the service packets.
The device uses the device ID and flow ID in the iFIT header to identify the flow. If the device does not receive the packets using the same device ID and the same flow ID for a period of time, the device will delete the dynamic flow entry.
Detection point
A detection point is an interface where iFIT measurement is performed. You can specify detection points as required.
Measurement system
The measurement system includes the following device role:
· The ingress node refers to the point that the flow enters the transit network. It filters the target flow, adds iFIT headers to the packets of the flow, collects packet statistics and reports packet statistics to the analyzer.
· A transmit point resides between the egress node and the ingress node. This type of point identifies the target flow by the iFIT header and reports the measurement statistics to the analyzer according to the measurement mode in the iFIT header.
On an SRv6 network, the source and endpoint nodes of an SRv6 tunnel act as the ingress and egress points, respectively, with the nodes in between named as transit nodes. Transit nodes are divided into two types: those in the SID list and those not in the SID list. By default, only transit nodes in the SID list can perform iFIT measurement. Those not in the SID list are not included in SRv6 processing and can only perform regular IPv6 packet forwarding, which even with iFIT measurement enabled, do not parse iFIT headers for iFIT measurement. Such transit nodes can parse iFIT headers for iFIT measurement only when CCMC technical standards are used and the ifit enable and trace-measure per-hop commands are executed. According to China Telecom and China Unicom standards, transit nodes using China Telecom and China Unicom standards do not perform iFIT measurement.
· The egress node identifies the target flow by the iFIT header, reports the measurement statistics to the analyzer, and removes the iFIT header from the packet.
· The analyzer collects the statistics reported by the ingress node, transmit nodes, and egress node for data summarization and calculation.
Operating mechanism
iFIT header
An iFIT header is encapsulated in service packets and contains key parameters such as device ID, flow ID, measurement period, measurement mode, whether to measure delay, and whether to measure packet loss.
· Device ID: On an iFIT private network, a device ID uniquely identifies a device included in iFIT measurement and a device ID and a flow ID uniquely identify an iFIT flow.
· Flow ID: A flow ID is automatically generated on the ingress node. It will be encapsulated in the iFIT headers and sent to a transmit point and the egress node to uniquely identify a target flow along with the device ID or device IP on an iFIT network.
· Measurement period: The device performs iFIT measurement periodically. A measurement period refers to the time interval from the start of a measurement to the collection and reporting of the measurement data is called.
· Measurement mode: Indicates end-to-end measurement or hop-by-hop measurement.
Time synchronization mechanism
Before starting the iFIT measurement, make sure all devices are time synchronized. Therefore, all iFIT-enabled devices can use the same measurement period to report the packet statistics to the analyzer. As a best practice, the analyzer and all iFIT-enabled devices are time synchronized to facilitate management and maintenance.
You can use NTP and PTP to synchronize time between devices. Time synchronized through NTP is accurate to milliseconds and time synchronized through PTP is accurate to sub-microseconds. Select NTP or PTP as follows:
· For iFIT measurement on only packet loss, you can use NTP.
· For iFIT measurement on the delay, use PTP. This is because network delay is related to distance of physical links and network status, and the transmission delay on links might be less than one millisecond. In this case, using NTP affects the accuracy of iFIT measurement on the delay.
As a best practice, use PTP for time synchronization in an iFIT measurement network. For more information about NTP and PTP, see "Configuring NTP" and "Configuring PTP", respectively.
Packet loss measurement mechanism
The number of incoming packets and that of outgoing packets on a network should be equal within a measurement period. If they are not equal, packet loss occurs in the transit network.
Packet delay measurement mechanism
When a packet pass through multiple detection points, each point will record the timestamp when the packet passes through the point and report the recorded timestamp to the analyzer. Then the analyzer can use the timestamp values reported by different detection points to calculate the packet delay.
Measurement data reporting mechanism
iFIT-enabled devices push the measurement data to the analyzer by using the gRPC protocol.
Currently, only gRPC dial-out mode is supported. In this mode, iFIT-enabled devices act as gRPC clients and the analyzer acts as a gRPC server (also called a gRPC collector in the gRPC protocol).
An iFIT-enabled device can send the iFIT data to the analyzer at either of the following intervals:
· gRPC subscription interval—If you set a gRPC subscription interval when configuring gRPC subscription, the device sends the iFIT data to the analyzer at the gRPC subscription interval after establishing a gRPC connection to the analyzer, regardless of whether the sampling path is a periodic sampling path or an event-trigger sampling path.
· iFIT measurement interval—If you do not set a gRPC subscription interval when configuring gRPC subscription and the sampling path is a periodic sampling path, the device cannot send the iFIT data to the analyzer. If you do not set a gRPC subscription interval when configuring gRPC subscription and the sampling path is an event-trigger sampling path, the device sends the iFIT data to the analyzer at the iFIT measurement interval after establishing a gRPC connection to the analyzer.
|
NOTE: · The iFIT periodic sampling path is ifit/flowstatistics/flowstatistic. · The iFIT event-trigger sampling paths are insuitoam/measurereport (containing iFIT measurement result) and insuitoam/flowinfo (containing iFIT flow information). |
For more information about gRPC, see gRPC configuration in Telemetry Configuration Guide. For more information about iFIT sampling paths, see the NETCONF API documentation of iFIT.
Working mechanism
The following illustrates the working mechanism of hop-by-hop measurement. No transmit nodes exist in end-to-end measurement but end-to-end measurement works similarly as hop-by-hop measurement.
As shown in Figure 3, the flow passes through four devices. Three devices are enabled with iFIT. The iFIT measurement works as follows:
1. The analyzer synchronizes the time with all iFIT-enabled devices through the PTP protocol.
2. The iFIT-enabled devices takes the following actions:
a. The ingress node parses the packets to identify the target flow. It encapsulates iFIT headers to the packets, counts the number of packets, and reports the packet quantity and timestamp to the analyzer through gRPC periodically.
The ingress node is the interface bound to the target flow.
b. A transmit point counts the number of packets containing iFIT headers and reports the packet quantity and timestamp to the analyzer through gRPC periodically.
When the target flow passes through an iFIT-enabled device, the interfaces where the target flow enters the iFIT-enabled device and leaves the iFIT-enabled device are transmit nodes.
c. The egress node parses the packets to identify the target flow. It counts the number of packets containing iFIT headers, reports the packet quantity and timestamp to the analyzer through gRPC periodically, removes iFIT headers from the packets and forwards the packets.
When the target flow leaves the transit network, the interface where the target flow leaves the iFIT-enabled device is the egress point.
3. The analyzer calculate the packet delay for the target flow of the same period and same instance.
Tunnel-level quality measurement
iFIT tunnel-level quality measurement is used to to measure the end-to-end quality of the SRv6 tunnel of the SRv6 TE policy. The measurement result can be used for intelligent route selection of the SRv6 TE policy module.
Application scenarios
iFIT supports end-to-end measurement and hop-by-hop measurement for different application scenarios,
· End-to-end measurement
When the egress node in an SRv6 tunnel supports iFIT measurement, use end-to-end measurement. Figure 4 shows a typical application scenario for iFIT tunnel-level quality measurement:
a. After iFIT is enabled on the ingress node and egress node of an SRv6 TE policy, the ingress node and egress node will measure the transmitted packet count, latency, and jitter of the SRv6 tunnel periodically based on the iFIT operating mechanism.
b. The ingress node collects and calculates the packet loss rate, latency, and jitter for each SRv6 TE policy and provides the measurement results to the SRv6 TE policy module on the same node.
c. The SRv6 TE policy module on the ingress node will select the optimal forwarding path for the service traffic intelligently based on the iFIT measurement results.
Figure 4 iFIT support for SRv6 TE policy intelligent route selection
· Hop-by-hop measurement
When the egress node in an SRv6 tunnel does not support iFIT measurement, use hop-by-hop measurement. Deploy iFIT measurement on the node closest to the egress node of an SRv6 tunnel in the SID list that supports iFIT. Then, iFIT identify this node as "the egress node" of an SRv6 link such as Device E, Device B, and Device F as shown in Figure 5, iFIT will use the measurement results from the ingress node to the egress node as the overall iFIT measurement results for the entire SRv6 link, which will be used for intelligent route selection in the SRv6 TE policy.
If multiple nodes in an SRv6 link are enabled with iFIT measurement, such as Device B and Device C, as shown in Figure 4. iFIT will calculate the overall iFIT measurement results for the entire SRv6 link based on the node closest to the egress node of the SRv6 tunnel (Device C).
a. Enable iFIT on the ingress node and "the egress node" in an SRv6 TE policy.
b. The ingress node and "the egress node" will measure the transmitted packet count, latency, and jitter of the SRv6 tunnel periodically based on the iFIT operating mechanism.
c. The ingress node collects and calculates the packet loss rate, latency, and jitter for each SRv6 TE policy and provides the measurement results to the SRv6 TE policy module on the same node.
d. The SRv6 TE policy module on the ingress node will select the optimal forwarding path for the service traffic intelligently based on the iFIT measurement results.
|
NOTE: The nodes (known as transmit nodes in SRv6) not in the SID list are not included in SRv6 processing and can only perform regular IPv6 packet forwarding, which even with iFIT measurement enabled, do not parse iFIT headers for iFIT measurement. |
Figure 5 iFIT support for SRv6 TE policy intelligent route selection (hop-by-hop measurement)
For more information about the SRv6 TE policies and BFD for the SRv6 TE policies, see SRv6 TE policies configuration in Segment Routing Configuration Guide.
iFIT architecture
In application-level quality measurement, iFIT reports measurement results to a collector via Telemetry, which then performs aggregation and calculations. For intelligent router selection of the SRv6 TE policy module, iFIT reports measurement results from both the ingress and egress nodes of the SRv6 TE policies to the ingress node, where the results are aggregated and calculated. The iFIT tunnel-level quality measurement architecture mainly includes three components: target flow, Collector, and Analyzer.
Target flow
iFIT leverages tunnel sessions established by SRv6 TE policies, targeting the packets within these tunnels as the flows of interest. It adds an iFIT header onto packets that match the defined criteria for measurement.
Collector
Collector is deployed on the egress node of the SRv6 TE policy.
The egress node that operates in Collector mode sends the local iFIT measurement results for SRv6 paths to the ingress node (Analyzer) of the SRv6 TE policy via UDP packets.
Analyzer
Analyzer is deployed on the ingress node of the SRv6 TE policy.
A node performs the following tasks when operating in Analyzer mode:
· Forwards the local iFIT measurement results to Analyzer on the same node.
· Analyzer aggregates and calculates the iFIT measurement results received from both the ingress and egress nodes, deriving metrics such as packet loss, latency, and jitter for the SRv6 tunnels.
Operating mechanism
The iFIT tunnel-level measurement workflow is as follows:
1. Time-synchronize the ingress and egress nodes.
2. Deploy the SRv6 TE policy on the network. The policy selects the optimal path for service forwarding.
3. Use iFIT for the SRv6 TE policy on the ingress node and issue measurement parameters to iFIT, such as the segment list ID of the SRv6 tunnel, iFIT measurement interval, whether to measure packet loss, whether to measure one-way or two-way latency, packet loss rate criteria, latency criteria, and jitter criteria.
4. The ingress node automatically creates an iFIT instance and assigns a FlowID to it.
5. The iFIT instance on the ingress node matches tunnel packets by the segment list ID in the SRv6 TE policy:
¡ For matched tunnel packets, iFIT performs packet loss and latency measurements and sends the results to the local Analyzer module.
¡ For unmatched tunnel packets, iFIT does not perform a measurement.
6. The egress node parses the iFIT headers in the packets and performs iFIT packet loss and latency measurements.
7. Collector (egress node) establishes a UDP session with the ingress node based on the source address of the received packets and sends the counted packet statistics and packet timestamps to the ingress node over the UDP session, according to the iFIT measurement interval defined in the SRv6 TE policy.
8. Analyzer (ingress node) calculates the packet loss rate by comparing the number of packets received on the ingress and egress nodes and computes one-way latency and one-way jitter based on the timestamp when a packet was sent from the ingress node and timestamp when the same packet was received on the egress node. If the calculated results exceed the packet loss rate, latency, or jitter thresholds defined in the SRv6 TE policy, Analyzer reports the exceeding metrics to the local SRv6 TE policy module on the same node. iFIT will then immediately notify the SRv6 TE policy to initiate a link switch, redirecting traffic to an alternate path.
Configuring iFIT for application-level quality measurement
iFIT application-level quality measurement measures the metrics such as the packet loss rate and delay when service traffic passes through the transmission network. The measurement result can be used to assess the network transmission quality for the service traffic.
Restrictions and guidelines
In standard system operating mode, only the cards in the following table support this feature:
Table 1 Card description
Card type |
Mark |
CEPC cards |
CEPC-CQ8L, CEPC-CQ8LA, CEPC-CQ8L1A, CEPC-CQ8L3A, CEPC-CQ16L1, CEPC-DQ2L1-G |
CSPEX cards |
CSPEX-1502XA, CSPEX-1802X, CSPEX-1802XA, CSPEX-1812X-E, CSPEX-2304X-G, CSPEX-2304X-LG, CSPEX-2612XA, CSPEX-2612X3A |
SPE cards |
RX-SPE200-E |
In SDN-WAN system operating mode, only the cards in the following table support this feature:
Table 2 Card description
Card type |
Mark |
CEPC cards |
CEPC-XP4LX, CEPC-XP24LX, CEPC-XP48RX, CEPC-CP4RX, CEPC-CP4RXA, CEPC-CP4RX-L and CEPC-CQ8L, CEPC-CQ8LA, CEPC-CQ8L1A, CEPC-CQ8L3A, CEPC-CQ16L1, CEPC-DQ2L1-G |
CSPEX cards |
CSPEX-1304X, CSPEX-1404X, CSPEX-1502X, CSPEX-1504X, CSPEX-1504XA, CSPEX-1602X, CSPEX-1602XA, CSPEX-1804X, CSPEX-1512X, CSPEX-1612X, CSPEX-1812X and CSPEX-1502XA, CSPEX-1802X, CSPEX-1802XA, CSPEX-1812X-E, CSPEX-2304X-G, CSPEX-2304X-LG, CSPEX-2612XA, CSPEX-2612X3A |
SPE cards |
RX-SPE200 and RX-SPE200-E |
For the cards in the following table:
· In Layer 2 VPN scenarios, iFIT measurement is not supported.
· iFIT measurement based on PeerLocator granularity is not supported.
· iFIT measurement using the China Telecom standard is not supported.
Card type |
Mark |
CEPC cards |
CEPC-XP4LX, CEPC-XP24LX, CEPC-XP48RX, CEPC-CP4RX, CEPC-CP4RXA, CEPC-CP4RX-L |
CSPEX cards |
CSPEX-1304X, CSPEX-1404X, CSPEX-1502X, CSPEX-1504X, CSPEX-1504XA, CSPEX-1602X, CSPEX-1602XA, CSPEX-1804X, CSPEX-1512X, CSPEX-1612X, CSPEX-1812X |
SPE cards |
RX-SPE200 |
To ensure iFIT measurement accuracy on a VPLS network, you can deploy only unicast forwarding services on the network. If multicast or broadcast services are present on the network, traffic from these services might lead to inaccurate iFIT measurement results.
On an MPLS L3VPN to SRv6 or VXLAN to SRv6 network, only PeerLocator-based iFIT measurement is available for application-level quality measurement when the following conditions are met:
· iFIT measures the SRv6 network.
· iFIT uses a transmit device that connects to the MPLS/VXLAN network and the SRv6 network as the ingress node.
An iFIT instance monitors only one flow. If you configure flows multiple times for an iFIT instance, the most recent configuration takes effect.
For the flows to be monitored by different instances, the flow attributes must not be identical and cannot conflict to avoid inaccurate measurement result.
As a best practice, configure iFIT first on the transmit nodes and the egress node and then the ingress node. Thus, the measurement results of the previous measurement periods will not affected if iFIT measurement starts on the ingress node but not on the transmit nodes and the egress node.
Modifying the iFIT instance or restarting the ingress node will cause flow ID change, which might cause inaccurate measurement data or no data in several measurement periods.
SRv6/G-SRv6 includes SRv6/G-SRv6 TE and SRv6/G-SRv6 BE networks. The iFIT configuration varies by network type as follows:
· On an SRv6/G-SRv6 TE network, after iFIT on a device in a SID list is enabled, the device can perform iFIT measurement. For a transmit node not in a SID list, even with iFIT measurement enabled, this transmit node does not parse iFIT headers for iFIT measurement. Such transmit nodes can parse iFIT headers for iFIT measurement only when CCMC technical standards are used on the ingress node and ifit enable and trace-measure per-hop are executed on these transmit nodes.
· On an SRv6/G-SRv6 BE network, if you specify hop-by-hop measurement as the measurement mode, iFIT generates iFIT data only on the ingress and egress nodes during SRv6/G-SRv6 forwarding. By default, the transmit nodes only forward IPv6 packets and do not participate in SRv6/G-SRv6 processing, so no iFIT data is generated on the transmit nodes. For transmit nodes to perform iFIT measurement, execute the ifit enable and trace-measure per-hop commands on the transmit nodes.
Prerequisites
Before configuring iFIT, make sure the analyzer and iFIT-enabled devices are time synchronized through PTP. For more information about PTP, see "Configuring PTP."
To enable the iFIT-enabled devices to report the measurement results to the analyzer, configure gRPC on the analyzer and iFIT-enabled devices. For more information about gRPC, see gRPC configuration in Telemetry Configuration Guide.
Configuring the ingress node
Tasks at a glance
To configure the ingress node, perform the following tasks:
· Configuring the transit network type for a target flow
· Configuring a detection point
· Configuring a measurement mode
· Configuring a measurement period
Enabling iFIT
1. Enter system view.
system-view
2. Enable the iFIT functionality globally and enter its view, or enter the existing iFIT view.
ifit enable
By default, the iFIT functionality is disabled.
Configuring a device ID
About this task
When the transit network type for a service flow is MPLS, SR-MPLS, SRv6, G-BIER, or G-SRv6, and iFIT measurement is required for the service flow, you must specify the device ID of a device. A device ID must be unique within an iFIT network. This is because in these types of transit networks, iFIT uses the device ID to uniquely identify a device and uses a device ID and a flow ID to uniquely identify a static flow and the corresponding dynamic flows.
Procedure
1. Enter system view.
system-view
2. Enter iFIT view.
ifit enable
3. Specify an iFIT device ID.
device-id device-id
By default, no device identifier is specified.
A device identifier is required to uniquely identify an iFIT device on an iFIT network.
Creating an iFIT instance
1. Enter system view.
system-view
2. Enter iFIT view.
ifit enable
3. Create an iFIT instance and enter its view.
instance instance-name
Configuring the transit network type for a target flow
About this task
To measure the transmission quality of an iFIT flow on a transit network, the administrator must perform the following operations:
· Specify the device where the iFIT flow enters the transit network as the ingress node.
· Specify the device where the iFIT flow leaves the transit network as the egress node.
The ingress node adds an iFIT header to the target flow. The encapsulation format of an iFIT header varies by transit network type.
Configure this feature type depends on the transit network type of the target flow:
· If the transit network is an MPLS, SR-MPLS, SRv6, G-SRv6, or G-BIER network, specify the iFIT network type for iFIT measurement as Tunnel.
· If the transit network is the public network, specify the iFIT network type for iFIT measurement as Native-IP.
Procedure
1. Enter system view.
system-view
2. Enter iFIT view.
ifit enable
3. Create an iFIT instance and enter its view.
instance instance-name
4. Specify the transit network type for iFIT measurement.
transmit-network type { tunnel | native-ip }
By default, the transit network type for iFIT measurement is Tunnel. This transit network type supports iFIT measurement on a G-SRv6, SRv6, G-BIER, MPLS, or SR-MPLS network.
Configuring a static flow
About this task
Static flows are key elements for iFIT measurement. Before starting an iFIT measurement, you must configure a static flow to be measured on the ingress node. You do not need to configure a static flow on the transmit nodes and egress node because the device can automatically learn the static flow through the iFIT header of the packets.
The device can perform iFIT measurement based on the following granularities in different scenarios:
· Layer 2 parameter granularity—Used for measuring communication quality of a service flow within an L2VPN tunnel. You can match the service flow by using Layer 2 parameters such as source MAC and Ethernet packet type. This measurement granularity is supported on an EVPN VPLS over MPLS/SR-MPLS, EVPN VPWS over MPLS/SR-MPLS, EVPN VPLS over SRv6/G-SRv6, or EVPN VPWS over SRv6/G-SRv6 network.
· 5-tuple granularity—Used for measuring communication quality of service flows. You can use 5-tuple elements to match service flows and perform iFIT measurement on any service traffic on a network. This granularity is available for all networks supported by iFIT.
· PeerLocator granularity—Used for measuring end-to-end communication quality on the entire network. On an IPv6 network, the peer-locator keyword can specify a tunnel. The device performs iFIT measurement on all service flows through the tunnel. This granularity is available only for SRv6 and G-SRv6 networks.
Procedure
1. Enter system view.
system-view
2. Enter iFIT view.
ifit enable
3. Specify a next hop for iFIT encapsulation.
encapsulation nexthop ipv4-address
On an MPLS or SR-MPLS network, you must execute this command to specify a peer PE for iFIT encapsulation. The device performs iFIT encapsulation only for service flows sent to the specified peer PE.
On an SRv6, G-BIER, or G-SRv6 network, you do not need to execute this command. This command does not take effect on these networks.
4. Create an iFIT instance and enter its view.
instance instance-name
5. On a Native-IP network, configure a static flow to be monitored by the instance based on 5-tuple granularity.
¡ IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vpn-instance vpn-instance-name
¡ IPv6:
flow unidirection source-ipv6 { src-ipv6-address [ src-prefix-length ] | any } destination-ipv6 { dest-ipv6-address [ dest-prefix-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vpn-instance vpn-instance-name
By default, no static flow is configured for an iFIT instance.
6. On an MPLS or SR-MPLS public network, configure a static flow to be monitored by the instance based on 5-tuple granularity.
¡ IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ]
¡ IPv6:
IPv6 service flows are not supported in the current software version.
By default, no static flow is configured for an iFIT instance.
7. On an MPLS or SR-MPLS private network, configure a static flow to be monitored by the instance based on 5-tuple granularity.
¡ IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vpn-instance vpn-instance-name
¡ IPv6:
flow unidirection source-ipv6 { src-ipv6-address [ src-prefix-length ] | any } destination-ipv6 { dest-ipv6-address [ dest-prefix-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vpn-instance vpn-instance-name
By default, no static flow is configured for an iFIT instance.
8. On an EVPN VPLS over MPLS/SR-MPLS network, configure a static flow to be monitored by the instance.
¡ iFIT measurement based on Layer 2 parameter granularity:
flow unidirection { eth-type eth-type-id | source-mac src-mac-address } * vsi vsi-name
¡ iFIT measurement based on 5-tuple granularity:
- IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vsi vsi-name
- IPv6:
flow unidirection source-ipv6 { src-ipv6-address [ src-prefix-length ] | any } destination-ipv6 { dest-ipv6-address [ dest-prefix-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vsi vsi-name
By default, no static flow is configured for an iFIT instance.
9. On an EVPN VPWS over MPLS/SR-MPLS network, configure a static flow to be monitored by the instance.
¡ iFIT measurement based on based on Layer 2 parameter granularity:
flow unidirection { eth-type eth-type-id | source-mac src-mac-address } * xconnect-group group-name connection connection-name
¡ iFIT measurement based on 5-tuple granularity:
- IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] xconnect-group group-name connection connection-name
- IPv6:
flow unidirection source-ipv6 { src-ipv6-address [ src-prefix-length ] | any } destination-ipv6 { dest-ipv6-address [ dest-prefix-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] xconnect-group group-name connection connection-name
By default, no static flow is configured for an iFIT instance.
10. On an IPv4 over SRv6/G-SRv6 public network, configure a static flow to be monitored by the instance.
¡ iFIT measurement based on 5-tuple granularity:
- IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ]
- IPv6:
flow unidirection source-ipv6 { src-ipv6-address [ src-prefix-length ] | any } destination-ipv6 { dest-ipv6-address [ dest-prefix-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ]
¡ iFIT measurement based on PeerLocator granularity:
- IPv4:
flow unidirection [ source-ip any destination-ip any ] peer-locator ipv6-address prefix-length
- IPv6:
flow unidirection [ source-ipv6 any destination-ipv6 any ] peer-locator ipv6-address prefix-length
By default, no static flow is configured for an iFIT instance.
11. On an L3VPN/EVPN L3VPN over SRv6/G-SRv6 network, configure a static flow to be monitored by the instance.
¡ iFIT measurement based on 5-tuple granularity:
- IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vpn-instance vpn-instance-name
- IPv6:
flow unidirection source-ipv6 { src-ipv6-address [ src-prefix-length ] | any } destination-ipv6 { dest-ipv6-address [ dest-prefix-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vpn-instance vpn-instance-name
¡ iFIT measurement based on PeerLocator granularity:
- IPv4:
flow unidirection [ source-ip any destination-ip any ] [ vpn-instance vpn-instance-name ] peer-locator ipv6-address prefix-length
- IPv6:
flow unidirection [ source-ipv6 any destination-ipv6 any ] [ vpn-instance vpn-instance-name ] peer-locator ipv6-address prefix-length
By default, no static flow is configured for an iFIT instance.
12. On an EVPN VPLS over SRv6/G-SRv6 network, configure a static flow to be monitored by the instance.
¡ iFIT measurement based on Layer 2 parameter granularity:
flow unidirection { eth-type eth-type-id | source-mac src-mac-address } * vsi vsi-name
¡ iFIT measurement based on 5-tuple granularity:
- IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vsi vsi-name
- IPv6:
flow unidirection source-ipv6 { src-ipv6-address [ src-prefix-length ] | any } destination-ipv6 { dest-ipv6-address [ dest-prefix-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] vsi vsi-name
¡ iFIT measurement based on PeerLocator granularity:
flow unidirection vsi vsi-name peer-locator ipv6-address prefix-length
By default, no static flow is configured for an iFIT instance.
13. On an EVPN VPWS over SRv6/G-SRv6 network, configure a static flow to be monitored by the instance.
¡ iFIT measurement based on Layer 2 parameter granularity:
flow unidirection { eth-type eth-type-id | source-mac src-mac-address } * xconnect-group group-name connection connection-name
¡ iFIT measurement based on 5-tuple granularity:
- IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] xconnect-group group-name connection connection-name
- IPv6:
flow unidirection source-ipv6 { src-ipv6-address [ src-prefix-length ] | any } destination-ipv6 { dest-ipv6-address [ dest-prefix-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] xconnect-group group-name connection connection-name
¡ iFIT measurement based on PeerLocator granularity:
flow unidirection xconnect-group group-name connection connection-name peer-locator ipv6-address prefix-length
By default, no static flow is configured for an iFIT instance.
14. On a G-BIER network, configure a static flow to be monitored by the instance.
¡ IPv4:
flow unidirection source-ip { src-ip-address [ src-mask-length ] | any } destination-ip { dest-ip-address [ dest-mask-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ]
¡ IPv6:
flow unidirection source-ipv6 { src-ipv6-address [ src-prefix-length ] | any } destination-ipv6 { dest-ipv6-address [ dest-prefix-length ] | any } [ protocol { { sctp | tcp | udp } [ source-port src-port-number ] [ destination-port dest-port-number ] | protocol-number } ] [ dscp dscp-value ] [ vpn-instance vpn-instance-name ]
By default, no static flow is configured for an iFIT instance.
Configuring a detection point
About this task
Before enabling iFIT measurement on the ingress node of an instance, you must bind an interface to the instance. After you bind an interface to an instance, iFIT parses the packets passing through the interface to identify the target packets and add an iFIT header to each target packets. Meanwhile, iFIT will count the number of target packets, and send the packet count and timestamp to the analyzer at intervals through gRPC.
You can configure only one set of flow match criteria for an instance. An instance can be bound to multiple interfaces. Each bound interface matches target flows based on the same set of criteria and assigns different flow IDs to target flows. iFIT measures the delay and packet loss of target flows on a per-interface basis.
Restrictions and guidelines
You can bind an iFIT instance to only a Layer 3 physical interface or Layer 3 aggregate interface.
Procedure
1. Enter system view.
system-view
2. Enter iFIT view.
ifit enable
3. Create an iFIT instance and enter its view.
instance instance-name
4. Bind an interface to the instance.
bind interface interface-type interface-number
By default, an instance is not bound to any interface.
Configuring a measurement mode
1. Enter system view.
system-view
2. Enter iFIT view.
ifit enable
3. Create an iFIT instance and enter its view.
instance instance-name
4. Specify an iFIT measurement mode.
measure mode { e2e | trace }
By default, end-to-end measurement is used.
Configuring a measurement period
About this task
iFIT collects performance statistics based on the measurement period.
· The sender records the sending time of the first iFIT packet in each sending interval, and counts the number of the iFIT packets sent from an interface in each sending interval. Sending interval = iFIT measurement period.
· The receiver records the receiving time of the first iFIT packet in each receiving interval, and counts the number of the iFIT packets received by an interface in each receiving interval. To reduce the impact of network delay and disorder on statistics, the receiving interval equals to (1+1/3) measurement period.
If network delay between the ingress and egress nodes is greater than 1/3 measurement period, the accuracy of iFIT packet loss statistics might be affected. This is because iFIT considers packets received beyond the receiving interval as packet loss. For example, the measurement period is 1 second and the network delay greater than 1/3 seconds (333 milliseconds), the accuracy of iFIT packet loss statistics might be affected. In this case, set the measurement period to a greater value.
Procedure
1. Enter system view.
system-view
2. Enter iFIT view.
ifit enable
3. Create an iFIT instance and enter its view.
instance instance-name
4. Specify the measurement period for the iFIT instance.
period period
By default, the measurement period for an iFIT instance is 30 seconds.
Enabling iFIT measurement
About this task
You can configure packet loss measurement and packet delay measurement as required. Both packet loss measurement and packet delay measurement are enabled by default. You cannot disable packet loss measurement from the CLI, but can disable packet delay measurement from the CLI.
Procedure
1. Enter system view.
system-view
2. Enter iFIT view.
ifit enable
3. Create an iFIT instance and enter its view.
instance instance-name
4. (Optional.) Disable packet delay measurement.
delay-measure disable
By default, packet delay measurement is enabled.
5. Enable iFIT measurement for the iFIT instance.
measure enable
By default, iFIT measurement for an iFIT instance is disabled.
Configuring a transmit point and the egress node
Tasks at a glance
Transmit nodes are required only for hop-by-hop measurement. For end-to-end measurement, do not configure transmit nodes.
To configure a transmit point or the ingress node, perform the following tasks:
· (Optional.) Managing a dynamic flow
Enabling iFIT
1. Enter system view.
system-view
2. Enable the iFIT functionality globally and enter its view.
ifit enable
By default, the iFIT functionality is disabled.
3. (Optional.) Enable iFIT measurement on transmit nodes in an SRv6 tunnel.
trace-measure per-hop [ be | te ]
By default, iFIT measurement is disabled on transmit nodes in an SRv6 tunnel.
You need to execute this command only when a device as a transmit node not in an SID list uses CMCC technical standards, but must participate in iFIT measurement.
On an SRv6 TE policy network, the subsequent transmit nodes might not have the SRH due to special settings such as PSP. In this case, for the subsequent transmit nodes to forcedly parse iFIT headers for iFIT measurement, execute trace-measure per-hop be on these transmit nodes instead of trace-measure per-hop te.
Managing a dynamic flow
1. Enter system view.
system-view
2. Enable the iFIT functionality globally and enter its view.
ifit enable
3. Specify the aging parameters for dynamic flows.
dynamic-flow aging-time multi-value [ threshold-percent threshold-percent ]
By default, the aging time for dynamic flows is 10 times the measurement period and it cannot be less than 5 minutes.
4. Delete iFIT dynamic flows.
delete dynamic-flow { all | device-id device-id flow-id flow-id }
Display and maintenance commands for iFIT for iFIT application-level quality measurement
Execute display commands in any view.
Task |
Command |
Display dynamic flow information. |
display ifit flow dynamic [ device-id device-id flow-id flow-id ] |
Display static flow information. |
display ifit flow static [ device-id device-id flow-id flow-id ] |
Display global information about iFIT target flows. |
display ifit global-information |
Display iFIT instance information. |
display ifit instance [ instance-name ] |
Display statistics about an iFIT dynamic flow for the most recent 10 measurement periods. |
display ifit statistic { device-id device-id flow-id flow-id } [ verbose ] |
Clear iFIT statistics of dynamic flows for the most recent 10 measurement periods. |
reset ifit statistic [ device-id device-id flow-id flow-id | instance instance-name] |
iFIT configuration examples
Example: Configuring iFIT on a Native-IP network
Network configuration
As shown in Figure 6, the backbone network is an IPv6 network. In this IPv6 network, deploy public IPv6 over SRv6 BE between PEs and use an SRv6 tunnel to transmit IPv6 data and iFIT information.
· Configure EBGP to exchange VPN routing information between the CEs and PEs.
· Configure IPv6 IS-IS on the PEs in the same AS to realize IPv6 network connectivity.
· Configure IBGP to exchange IPv6 routing information.
· Configure iFIT to monitor the occurrence of packet loss and packet delay value when the flow passes through PE 1 and PE 2.
Prerequisites
1. Set up the SRv6 BE network. (Details not shown.)
For more information, see public network IP over SRv6 configuration in Segment Routing Configuration Guide.
2. Configure PTP on PE 1 and PE 2 for clock synchronization. (Details not shown.)
For information about configuring PTP, see "Configuring PTP."
Procedure
1. Configure PE 1.
a. Configure gRPC:
# Enable the gRPC service.
<PE1> system-view
[PE1] grpc enable
# Create a sensor group named test, and add sensor path ifit/flowstatistics/flowstatistic.
[PE1] telemetry
[PE1-telemetry] sensor-group test
[PE1-telemetry-sensor-group-test] sensor path ifit/flowstatistics/flowstatistic depth 2
[PE1-telemetry-sensor-group-test] quit
# Create a destination group named collector1. Specify a collector that uses IPv6 address 10::10 and port number 50050.
[PE1-telemetry] destination-group collector1
[PE1-telemetry-destination-group-collector1] ipv6-address 10::10 port 50050
[PE1-telemetry-destination-group-collector1] quit
# Configure a subscription named A to bind sensor group test with destination group collector1. Set the sampling interval to 5 seconds.
[PE1-telemetry] subscription A
[PE1-telemetry-subscription-A] sensor-group test sample-interval 5
[PE1-telemetry-subscription-A] destination-group collector1
[PE1-telemetry-subscription-A] quit
[PE1-telemetry] quit
b. Configure iFIT:
# Enable the iFIT functionality.
[PE1] ifit enable
# Specify the device ID.
[PE1-ifit] device-id 100
# Configure instance a.
[PE1-ifit] instance a
# Specify the transit network type as Native-IP and measurement mode as end-to-end measurement.
[PE1-ifit-instance-a] transmit-network type native-ip
[PE1-ifit-instance-a] measure mode trace
[PE1-ifit-instance-a] flow unidirection source-ip 10.2.1.2 destination-ip 10.1.1.2
[PE1-ifit-instance-a] bind interface gigabitethernet 1/0/1
# Enable the iFIT functionality.
[PE1-ifit-instance-a] measure enable
[PE1-ifit-instance-a] quit
[PE1-ifit] quit
2. Configure P.
# Configure gRPC:
Use the same procedure to configure gRPC on P as you configure gRPC on PE 1.
# Enable the iFIT functionality.
<P> system-view
[P] ifit enable
3. Configure PE 2.
# Configure gRPC:
Use the same procedure to configure gRPC on P as you configure gRPC on PE 1.
# Enable the iFIT functionality.
<PE2> system-view
[PE2] ifit enable
Verifying the configuration
1. View information about iFIT instance a on PE 1.
[PE1] display ifit instance a
Instance name : a
Device ID : 100
Transmit network type : Native-IP
Flow information:
Flow type : Static
Flow direction : Unidirection
Source IP/mask length : 10.2.1.2/32
Destination IP/mask length : 10.1.1.2/32
Protocol : Any
Source port : Any
Destination port : Any
DSCP : --
VPN instance name : --
Measurement information:
Period : 30 sec
Measurement mode : trace
Loss measurement : Enabled
Delay measurement : Enabled
Measurement configuration : Enabled
Measurement status : Active
Flow items:
Flow ID Interface
1 GigabitEthernet1/0/1
2. View information about the iFIT static flow on PE 1.
[PE1] display ifit flow static
Instance name : 1
Device ID : 100
Flow ID : 1
Transmit network type : Native-IP
Flow information:
Flow type : Static
Flow direction : Unidirection
Source IP/mask length : 10.2.1.2/32
Destination IP/mask length : 10.1.1.2/32
Protocol : Any
Source port : Any
Destination port : Any
DSCP : --
VPN instance name : vpn1
Measurement information:
Period : 30 sec
Measurement mode : trace
Loss measurement : Enabled
Delay measurement : Enabled
Measurement configuration : Enabled
Measurement status : Active
Bound interface:
GigabitEthernet1/0/1
3. View information about the iFIT dynamic flow on PE 1.
[PE1] display ifit flow dynamic
Device ID : 100
Flow ID : 1
Transmit network type : Native-IP
Flow type : Dynamic
Flow direction : Unidirection
Period : 30 sec
Actual aging-time : 300 sec
Aging threshold : 30%
Interface information:
Name Direction
GigabitEthernet1/0/1 Ingress
GigabitEthernet1/0/2 TransitOutput
4. View iFIT statistics on PE 1.
[PE1] display ifit statistic device-id 100 flow-id 1
Period ID Direction PktCount Timestamp(sec, nsec) Interface
55593875 Ingress 12668295 1667816250, 5692918 XGE3/1/1
55593875 TransitOut 12668295 1667816250, 5702118 XGE3/1/2
55593876 Ingress 12669756 1667816280, 4268742 XGE3/1/1
55593876 TransitOut 12669756 1667816280, 4278486 XGE3/1/2
55593877 Ingress 12668696 1667816310, 6303734 XGE3/1/1
55593877 TransitOut 12668696 1667816310, 6313286 XGE3/1/2
...
Example: Configuring iFIT on an MPLS private network
As shown in Figure 7:
· Configure IPv4 EVPN L3VPN for different sites of a VPN instance to communicate with each other.
· Configure the CE and the PE of each site to use EBGP to exchange VPN routes.
· Configure the PEs to communicate through OSPF and to exchange BGP EVPN routes through MP-IBGP.
· Configure iFIT to monitor the occurrence of packet loss and packet delay value when the flow passes through the VPN 1 tunnel.
Prerequisites
1. Configure EVPN L3VPN. (Details not shown.)
For information about configuring EVPN L3VPN, see EVPN L3VPN configuration in EVPN Configuration Guide.
2. Configure PTP on PE 1 and PE 2 for clock synchronization. (Details not shown.)
For information about configuring PTP, see "Configuring PTP."
Procedure
1. Configure gRPC:
# Enable the gRPC service.
<PE1> system-view
[PE1] grpc enable
# Create a sensor group named test, and add sensor path ifit/flowstatistics/flowstatistic.
[PE1] telemetry
[PE1-telemetry] sensor-group test
[PE1-telemetry-sensor-group-test] sensor path ifit/flowstatistics/flowstatistic depth 2
[PE1-telemetry-sensor-group-test] quit
# Create a destination group named collector1. Specify a collector that uses IPv4 address 10.10.10.10 and port number 50050.
[PE1-telemetry] destination-group collector1
[PE1-telemetry-destination-group-collector1] ipv4-address 10.10.10.10 port 50050
[PE1-telemetry-destination-group-collector1] quit
# Configure a subscription named A to bind sensor group test with destination group collector1. Set the sampling interval to 5 seconds.
[PE1-telemetry] subscription A
[PE1-telemetry-subscription-A] sensor-group test sample-interval 5
[PE1-telemetry-subscription-A] destination-group collector1
[PE1-telemetry-subscription-A] quit
[PE1-telemetry] quit
2. Configure iFIT:
# Enable the iFIT functionality.
[PE1] ifit enable
[PE1-ifit] device-id 1
# Configure instance a to monitor the unidirectional flow from source IP 1.1.1.1/24 to destination IP 1.1.3.1/24 with the PE at 3.3.3.9 as the next hop in VPN instance vpn1.
[PE1-ifit] encapsulation nexthop 3.3.3.9
[PE1-ifit] instance a
[PE1 ifit-instance-a] flow unidirection source-ip 1.1.1.1 24 destination-ip 1.1.3.1 24 vpn-instance vpn1
# Bind interface Ten-GigabitEthernet3/1/1 to instance a.
[PE1-ifit-instance-a] bind interface ten-gigabitethernet 3/1/1
# Specify 10 seconds as the measurement period.
[PE1-ifit-instance-a] period 10
# Specify end-to-end measurement as the measurement mode.
[PE1-ifit-instance-a] measure mode e2e
# Enable iFIT measurement.
[PE1-ifit-instance-a] measure enable
[PE1-ifit-instance-a] quit
[PE1-ifit] quit
3. Configure PE 2:
# Configure gRPC.
Use the same procedure to configure gRPC on PE 2 as you configure gRPC on PE 1.
# Enable the iFIT functionality.
<PE2> system-view
[PE2] ifit enable
Verifying the configuration
1. View iFIT statistics on PE 1.
[PE1] display ifit statistic device-id 1 flow-id 3
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Ingress 4124 1630599180, 1889782 XGE3/1/1
163059919 Ingress 4124 1630599190, 1901494 XGE3/1/1
163059920 Ingress 4124 1630599200, 1912118 XGE3/1/1
2. View iFIT statistics on PE 2.
[PE2] display ifit statistic device-id 1 flow-id 3
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Egress 4124 1630599180, 1948185 XGE3/1/1
163059919 Egress 4124 1630599190, 1959405 XGE3/1/1
163059920 Egress 4120 1630599200, 1968503 XGE3/1/1
3. Packet loss occurs in period 163059920 by viewing iFIT statistics on the analyzer.
Example: Configuring iFIT on an IPv4 L3VPN over SRv6 network
Network configuration
As shown in Figure 8, the backbone network is an IPv6 network, and VPN 1 is an IPv4 network. Deploy MPLS L3VPN over SRv6 between PE 1 and PE 2 and use an SRv6 tunnel to transmit VPNv4 traffic between the PEs.
· Configure EBGP to exchange VPN routing information between the CEs and PEs.
· Configure IPv6 IS-IS on the PEs in the same AS to realize IPv6 network connectivity.
· Configure MP-IBGP to exchange VPNv4 routing information between the PEs.
· Configure iFIT to monitor the occurrence of packet loss and packet delay value when the flow passes through the VPN 1 tunnel.
Prerequisites
1. Configure IPv4 L3VPN over SRv6. (Details not shown.)
For information about configuring MPLS L3VPN over SRv6, see IP L3VPN over SRv6 configuration in Segment Routing Configuration Guide.
2. Configure PTP on PE 1 and PE 2 for clock synchronization. (Details not shown.)
For information about configuring PTP, see "Configuring PTP."
Procedure
1. Configure gRPC:
# Enable the gRPC service.
<PE1> system-view
[PE1] grpc enable
# Create a sensor group named test, and add sensor path ifit/flowstatistics/flowstatistic.
[PE1] telemetry
[PE1-telemetry] sensor-group test
[PE1-telemetry-sensor-group-test] sensor path ifit/flowstatistics/flowstatistic depth 2
[PE1-telemetry-sensor-group-test] quit
# Create a destination group named collector1. Specify a collector that uses IPv6 address 10::10 and port number 50050.
[PE1-telemetry] destination-group collector1
[PE1-telemetry-destination-group-collector1] ipv6-address 10::10 port 50050
[PE1-telemetry-destination-group-collector1] quit
# Configure a subscription named A to bind sensor group test with destination group collector1. Set the sampling interval to 5 seconds.
[PE1-telemetry] subscription A
[PE1-telemetry-subscription-A] sensor-group test sample-interval 5
[PE1-telemetry-subscription-A] destination-group collector1
[PE1-telemetry-subscription-A] quit
[PE1-telemetry] quit
2. Configure iFIT:
# Enable the iFIT functionality.
[PE1] ifit enable
[PE1-ifit] device-id 1
# Configure instance a to monitor the performance parameters of the service flow transmitting in VPN instance vpn1 from source end 1.1.1.1/24 to destination end 1.1.2.1/24.
[PE1-ifit] encapsulation nexthop-ipv6 3::3
[PE1-ifit] instance a
[PE1-ifit-instance-a] flow unidirection source-ip 1.1.1.1 24 destination-ip 1.1.2.1 24 vpn-instance vpn1
# Bind interface Ten-GigabitEthernet 3/1/1 to instance a.
[PE1-ifit-instance-a] bind interface ten-gigabitethernet 3/1/1
# Specify 10 seconds as the measurement period.
[PE1-ifit-instance-a] period 10
# Enable iFIT measurement.
[PE1-ifit-instance-a] measure enable
[PE1-ifit-instance-a] quit
[PE1-ifit] quit
3. Configure PE 2:
# Configure gRPC.
Use the same procedure to configure gRPC on PE 2 as you configure gRPC on PE 1.
# Enable the iFIT functionality.
<PE2> system-view
[PE2] ifit enable
Verifying the configuration
1. View iFIT statistics on PE 1.
[PE1-ifit-instance-a] display ifit statistic device-id 1 flow-id 2
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Ingress 4124 1630599180, 1889782 XGE3/1/1
163059919 Ingress 4124 1630599190, 1901494 XGE3/1/1
163059920 Ingress 4124 1630599200, 1912118 XGE3/1/1
2. View iFIT statistics on PE 2.
[PE2] display ifit statistic device-id 1 flow-id 2
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Egress 4124 1630599180, 1948185 XGE3/1/1
163059919 Egress 4124 1630599190, 1959405 XGE3/1/1
163059920 Egress 4120 1630599200, 1968503 XGE3/1/1
3. Packet loss occurs in period 163059920 by viewing iFIT statistics on the analyzer.
Example: Configuring iFIT on an IPv6 EVPN L3VPN over SRv6 network
Network configuration
As shown in Figure 9, the backbone network is an IPv6 network. Deploy EVPN L3VPN over SRv6 in SRv6-BE mode between PE 1 and PE 2 and use an SRv6 tunnel to transmit EVPN traffic between the PEs.
· Configure EBGP to exchange VPN routing information between the CEs and PEs.
· Configure IPv6 IS-IS on the PEs in the same AS to realize IPv6 network connectivity.
· Configure MP-IBGP to exchange EVPN routing information between the PEs.
· Configure iFIT to monitor the occurrence of packet loss and packet delay value when the flow passes through the VPN 1 tunnel.
Prerequisites
1. Configure IPv6 EVPN L3VPN over SRv6. (Details not shown.)
For information about configuring IPv6 EVPN L3VPN over SRv6, see EVPN L3VPN over SRv6 configuration in Segment Routing Configuration Guide.
2. Configure PTP on PE 1 and PE 2 for clock synchronization. (Details not shown.)
For information about configuring PTP, see "Configuring PTP."
Procedure
1. Configure gRPC:
# Enable the gRPC service.
<PE1> system-view
[PE1] grpc enable
# Create a sensor group named test, and add sensor path ifit/flowstatistics/flowstatistic.
[PE1] telemetry
[PE1-telemetry] sensor-group test
[PE1-telemetry-sensor-group-test] sensor path ifit/flowstatistics/flowstatistic depth 2
[PE1-telemetry-sensor-group-test] quit
# Create a destination group named collector1. Specify a collector that uses IPv6 address 10::10 and port number 50050.
[PE1-telemetry] destination-group collector1
[PE1-telemetry-destination-group-collector1] ipv6-address 10::10 port 50050
[PE1-telemetry-destination-group-collector1] quit
# Configure a subscription named A to bind sensor group test with destination group collector1. Set the sampling interval to 5 seconds.
[PE1-telemetry] subscription A
[PE1-telemetry-subscription-A] sensor-group test sample-interval 5
[PE1-telemetry-subscription-A] destination-group collector1
[PE1-telemetry-subscription-A] quit
[PE1-telemetry] quit
2. Configure iFIT:
# Enable the iFIT functionality.
[PE1] ifit enable
[PE1-ifit] device-id 1
# Configure instance a to monitor the performance parameters of the service flow transmitting in VPN instance vpn1 from source end 2001::1 to destination end 2002::1.
[PE1-ifit] encapsulation nexthop-ipv6 3::3
[PE1-ifit] instance a
[PE1-ifit-instance-a] flow unidirection source-ipv6 2001::1 destination-ipv6 2002::1 vpn-instance vpn1
# Bind interface Ten-GigabitEthernet3/1/1 to instance a.
[PE1-ifit-instance-a] bind interface ten-gigabitethernet 3/1/1
# Specify 10 seconds as the measurement period.
[PE1-ifit-instance-a] period 10
# Enable iFIT measurement.
[PE1-ifit-instance-a] measure enable
[PE1-ifit-instance-a] quit
[PE1-ifit] quit
3. Configure PE 2:
# Configure gRPC.
Use the same procedure to configure gRPC on PE 2 as you configure gRPC on PE 1.
# Enable the iFIT functionality.
<PE2> system-view
[PE2] ifit enable
Verifying the configuration
1. View iFIT statistics on PE 1.
[PE1-ifit-instance-a] display ifit statistic device-id 1 flow-id 2
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Ingress 4124 1630599180, 1889782 XGE3/1/1
163059919 Ingress 4124 1630599190, 1901494 XGE3/1/1
163059920 Ingress 4124 1630599200, 1912118 XGE3/1/1
2. View iFIT statistics on PE 2.
[PE2] display ifit statistic device-id 1 flow-id 2
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Egress 4124 1630599180, 1948185 XGE3/1/1
163059919 Egress 4124 1630599190, 1959405 XGE3/1/1
163059920 Egress 4120 1630599200, 1968503 XGE3/1/1
3. Packet loss occurs in period 163059920 by viewing iFIT statistics on the analyzer.
Example: Configuring iFIT on an EVPN VPWS over SRv6 network
Network configuration
As shown in Figure 10, user sites CE 1 and CE 2 connect to PE1 and PE 2, respectively through Ethernet interfaces. Configure CE 1 and CE 2 to communicate through an SRv6 tunnel over the IPv6 backbone network.
The two PEs set up an SRv6 tunnel after assigning End.DX2 SIDs to the cross-connect. On a PE, this SRv6 tunnel is used as an SRv6 PW to encapsulate and forward Layer 2 data packets received from the local site and destined for a remote site.
Configure iFIT to monitor the occurrence of packet loss and packet delay value when the flow passes through the SRv6 tunnel.
Prerequisites
1. Configure EVPN VPWS over SRv6. (Details not shown.)
For information about configuring EVPN VPWS over SRv6, see EVPN VPWS over SRv6 configuration in Segment Routing Configuration Guide.
2. Configure PTP on PE 1 and PE 2 for clock synchronization. (Details not shown.)
For information about configuring PTP, see "Configuring PTP."
Procedure
1. Configure PE 1:
a. Configure gRPC:
# Enable the gRPC service.
<PE1> system-view
[PE1] grpc enable
# Create a sensor group named test, and add sensor path ifit/flowstatistics/flowstatis.
[PE1] telemetry
[PE1-telemetry] sensor-group test
[PE1-telemetry-sensor-group-test] sensor path ifit/flowstatistics/flowstatistic depth 2
[PE1-telemetry-sensor-group-test] quit
# Create a destination group named collector1. Specify a collector that uses IPv6 address 10::10 and port number 50050.
[PE1-telemetry] destination-group collector1
[PE1-telemetry-destination-group-collector1] ipv6-address 10::10 port 50050
[PE1-telemetry-destination-group-collector1] quit
# Configure a subscription named A to bind sensor group test with destination group collector1. Set the sampling interval to 5 seconds.
[PE1-telemetry] subscription A
[PE1-telemetry-subscription-A] sensor-group test sample-interval 5
[PE1-telemetry-subscription-A] destination-group collector1
[PE1-telemetry-subscription-A] quit
[PE1-telemetry] quit
b. Configure iFIT:
# Enable the iFIT functionality.
[PE1] ifit enable
[PE1-ifit] device-id 1
# Configure instance a to monitor the service flow with cross-connect con1 of cross-connect group xca. The PeerlLocator for the service flow is 6:5::.
[PE1-ifit] instance a
[PE1-ifit-instance-a] flow unidirection xconnect-group xca connection con1 peer-locator 6:5:: 96
# Bind interface Ten-GigabitEthernet 3/1/1 to instance a.
[PE1-ifit-instance-a] bind interface ten-gigabitethernet 3/1/1
# Specify 10 seconds as the measurement period.
[PE1-ifit-instance-a] period 10
# Enable the iFIT functionality.
[PE1-ifit-instance-a] measure enable
[PE1-ifit-instance-a] quit
[PE1-ifit] quit
2. Configure PE 2:
a. Configure gRPC.
Use the same procedure to configure gRPC on PE 2 as you configure gRPC on PE 1.
b. Enable the iFIT functionality.
<PE2> system-view
[PE2] ifit enable
Verifying the configuration
1. View iFIT statistics on PE 1.
[PE1] display ifit statistic device-id 1 flow-id 2
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Ingress 4124 1630599180, 1889782 XGE3/1/1
163059919 Ingress 4124 1630599190, 1901494 XGE3/1/1
163059920 Ingress 4124 1630599200, 1912118 XGE3/1/1
2. View iFIT statistics on PE 2.
[PE2] display ifit statistic device-id 1 flow-id 2
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Egress 4124 1630599180, 1948185 XGE3/1/1
163059919 Egress 4124 1630599190, 1959405 XGE3/1/1
163059920 Egress 4120 1630599200, 1968503 XGE3/1/1
3. Packet loss occurs in period 163059920 by viewing iFIT statistics on the analyzer.
Example: Configuring iFIT on an EVPN VPLS over SRv6 network
Network configuration
As shown in Figure 11, user sites CE 1 and CE 2 connect to PE1 and PE 2, respectively through Ethernet interfaces. Configure CE 1 and CE 2 to achieve communicate through EVPN VPLS over SRv6 over the IPv6 backbone network.
PEs set up an SRv6 tunnel by advertising End.DT2M SIDs, End.DT2U SIDs, and End.DX2 SIDs to each other through BGP EVPN routes. On a PE, this SRv6 tunnel is used as a PW to encapsulate and forward Layer 2 data packets received from the local site and destined for a remote site.
Configure iFIT to monitor the occurrence of packet loss and packet delay value when the flow passes through the SRv6 tunnel.
Prerequisites
1. Configure EVPN VPLS over SRv6. (Details not shown.)
For information about configuring EVPN VPLS over SRv6, see EVPN VPLS over SRv6 configuration in EVPN Configuration Guide.
2. Configure PTP on PE 1 and PE 2 for clock synchronization. (Details not shown.)
For information about configuring PTP, see "Configuring PTP."
Procedure
1. Configure PE 1:
a. Configure gRPC:
# Enable the gRPC service.
<PE1> system-view
[PE1] grpc enable
# Create a sensor group named test, and add sensor path ifit/flowstatistics/flowstatis.
[PE1] telemetry
[PE1-telemetry] sensor-group test
[PE1-telemetry-sensor-group-test] sensor path ifit/flowstatistics/flowstatistic depth 2
[PE1-telemetry-sensor-group-test] quit
# Create a destination group named collector1. Specify a collector that uses IPv6 address 10::10 and port number 50050.
[PE1-telemetry] destination-group collector1
[PE1-telemetry-destination-group-collector1] ipv6-address 10::10 port 50050
[PE1-telemetry-destination-group-collector1] quit
# Configure a subscription named A to bind sensor group test with destination group collector1. Set the sampling interval to 5 seconds.
[PE1-telemetry] subscription A
[PE1-telemetry-subscription-A] sensor-group test sample-interval 5
[PE1-telemetry-subscription-A] destination-group collector1
[PE1-telemetry-subscription-A] quit
[PE1-telemetry] quit
b. Configure iFIT:
# Enable the iFIT functionality.
[PE1] ifit enable
[PE1-ifit] device-id 1
# Configure instance a to monitor the service flow with VSI vsi and PeerLocator 6:5::.
[PE1-ifit] instance a
[PE1-ifit-instance-a] flow unidirection vsi vsi1 peer-locator 6:5:: 96
# Bind interface Ten-GigabitEthernet 3/1/1 to instance a.
[PE1-ifit-instance-a] bind interface ten-gigabitethernet 3/1/1
# Specify 10 seconds as the measurement period.
[PE1-ifit-instance-a] period 10
# Enable the iFIT functionality.
[PE1-ifit-instance-a] measure enable
[PE1-ifit-instance-a] quit
[PE1-ifit] quit
2. Configure PE 2:
a. Configure gRPC:
Use the same procedure to configure gRPC on PE 2 as you configure gRPC on PE 1.
b. Enable the iFIT functionality.
<PE2> system-view
[PE2] ifit enable
Verifying the configuration
1. View iFIT statistics on PE 1.
[PE1] display ifit statistic device-id 1 flow-id 2
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Ingress 4124 1630599180, 1889782 XGE3/1/1
163059919 Ingress 4124 1630599190, 1901494 XGE3/1/1
163059920 Ingress 4124 1630599200, 1912118 XGE3/1/1
2. View iFIT statistics on PE 2.
[PE2] display ifit statistic device-id 1 flow-id 2
Period ID Direction PktCount Timestamp(sec, nsec) Interface
163059918 Egress 4124 1630599180, 1948185 XGE3/1/1
163059919 Egress 4124 1630599190, 1959405 XGE3/1/1
163059920 Egress 4120 1630599200, 1968503 XGE3/1/1
3. Packet loss occurs in period 163059920 by viewing iFIT statistics on the analyzer.
Configuring iFIT for tunnel-level quality measurement
Prerequisites
For information about configuring SRv6 TE policies, see SRv6 TE policies configuration in Segment Routing Configuration Guide.
Before configuring iFIT, make sure the ingress node and egress node are time synchronized through PTP. For more information about PTP, see PTP configuration in Network Management and Monitoring Configuration Guide.
Configuring the ingress node
1. Enter system view.
system-view
2. Enable iFIT and enter iFIT view.
ifit enable
By default, iFIT is disabled.
3. Specify the standards used by iFIT.
technical-standard { cmcc | telecom | unicom }
By default, iFIT uses CMCC technical standards.
You need to execute this command only when hop-by-hop measurement is performed and the ingress node and the egress node are configured with the same technical standards. If you fail to do so, the measurement results might be incorrect. To specify the iFIT measurement mode, execute the srv6-policy ifit measure mode { e2e | trace } or ifit measure mode { e2e | trace }. For more information about the srv6-policy ifit measure mode and ifit measure mode commands, see SRv6 TE policy configuration in Segment Routing Command Reference.
4. Configure the device to act as iFIT Analyzer and enter iFIT Analyzer view.
work-mode analyzer
By default, the device does not act as iFIT Analyzer.
5. Configure iFIT Analyzer to only collect and report the iFIT measurement result for SRv6 paths.
service-type srv6-segment-list
By default, iFIT Analyzer does not collect or report the iFIT measurement result.
Configuring the egress node
Restrictions and guidelines
If the egress node of an SRv6 tunnel does not support iFIT measurement, use hop-by-hop measurement. Deploy iFIT measurement on the node closest to the egress node of an SRv6 tunnel in the SID list that supports iFIT. Then, iFIT identify this node as "the egress node" of an SRv6 link.
Procedure
1. Enter system view.
system-view
2. Enable iFIT and enter iFIT view.
ifit enable
By default, iFIT is disabled.
3. Specify the standards used by iFIT.
technical-standard { cmcc | telecom | unicom }
By default, iFIT uses CMCC technical standards.
You need to execute this command only when hop-by-hop measurement is performed and the ingress node and the egress node are configured with the same technical standards. If you fail to do so, the measurement results might be incorrect. To specify the iFIT measurement mode, execute the srv6-policy ifit measure mode { e2e | trace } or ifit measure mode { e2e | trace }. For more information about the srv6-policy ifit measure mode and ifit measure mode commands, see SRv6 TE policy configuration in Segment Routing Command Reference.
4. Configure the device to act as iFIT Collector and enter iFIT Collector view.
work-mode collector
By default, the device does not act as iFIT Collector.
5. Configure iFIT Collector to only collect and report the iFIT measurement result for SRv6 paths.
service-type srv6-segment-list
By default, iFIT Collector does not collect or report the iFIT measurement result.
Display and maintenance commands for iFIT tunnel-level quality measurement
You can execute the following display commands in any view:
To display global information of iFIT target flows, execute the following command:
display ifit global-information
To display information about the iFIT flow for the SRv6 TE policy, execute the following command:
display ifit srv6-segment-list [ segment-list-id ]
To display the iFIT measurement result from iFIT Analyzer, execute the following command:
display ifit statistic-type { one-way-delay | one-way-loss } { srv6-segment-list segment-list-id | device-id device-id flow-id flow-id }