Inline Monitoring Services Configuration
Understanding Inline Monitoring Services
Benefits of Inline Monitoring Services
Flexible—Inline monitoring services allow different inline-monitoring instances to be mapped to different firewall filter terms, unlike in traditional sampling technologies, where all the instances are mapped to the Flexible PIC Concentrator (FPC). This provides you with the flexibility of sampling different streams of traffic at different rates on a single interface.
Packet format agnostic—Traditional flow collection technologies rely on packet parsing and aggregation by the network element. With inline monitoring services, the packet header is exported to the collector for further processing, but without aggregation. Thereby, you have the benefit of using arbitrary packet fields to process the monitored packets at the collector.
Inline Monitoring Services Feature Overview
Service providers and content providers typically require visibility into traffic flows in order to evaluate peering agreements, detect traffic anomalies and policy violations, and monitor network performance. To meet these requirements, you would traditionally export aggregate flow statistics information using Netflow, JFlow, or IPFIX variants.
As an alternative approach, you can have the packet content sampled, add metadata information, and export the monitored packets to an collector. The inline monitoring services enables you to do this on MX Series routers with MPCs excluding MPC10E and MPC11E linecards.
With inline monitoring services, you can monitor every IPv4 and IPv6 packet on both ingress and egress directions of an interface. Junos OS encapsulates the monitored traffic in an IPFIX format and exports the actual packet up to the configured clip length to an collector for further processing. By default, Junos OS supports a maximum clip length of 126 bytes starting from the Ethernet header.
Figure 1 illustrates the IPFIX format specification.
The IPFIX header and IPFIX payload are encapsulated using IP or UDP transport layer. The exported IPFIX format includes two data records and two data templates that are exported to every collector:
Data record—Includes incoming and outgoing interface, flow direction, data link frame section, and data link frame size. This information is sent to the collector only when sampled packets are being exported.
Figure 2 is a sample illustration of IPFIX data record packet.
Option data record—Includes system level information, such as exporting process ID, and sampling interval. This information is sent to the collector periodically, irrespective of whether sampling packets are being exported are not.
Figure 3 is a sample illustration of IPFIX option data record packet.
Table 1: Information Element fields in IPFIX Option Data Packet
Information Element ID
Information Element Length
Observation domain ID - An unique identifier of exporting process per IPFIX device. Purpose of this field is to limit the scope of other information element fields.
Sampling interval at which the packets are sampled. 1000 indicates that one of 1000 packets is sampled.
Data template—Includes five information elements:
Data link frame size
Variable data link frame selection
Figure 4 is a sample illustration of IPFIX data template packet.
Option data template—Includes flow exporter and sampling interval information.
Figure 5 is a sample illustration of IPFIX option data template packet.
When there is a new or changed inline monitoring services configuration, periodic export of data template and option data template is immediately sent to the respective collectors.
Inline Monitoring Services Configuration Overview
You can configure a maximum of sixteen inline-monitoring instances that support template and collector-specific configuration parameters. Each inline monitoring instance supports up to four collectors (maximum of 64 collectors in total), and you can specify different sampling rates under each collector configuration. Because of this flexibility, the inline monitoring services overcome the limitations of traditional sampling technologies, such as JFlow, sFlow, and port mirroring.
To configure inline monitoring:
- You must include the inline-monitoring statement at the [edit services] hierarchy level. Here you specify the template and inline monitoring instance parameters. You must specify the collector parameters under the inline-monitoring instance.
- Specify arbitrary match conditions using a firewall filter term and an action to accept the configured inline-monitoring instance. This maps the inline-monitoring instance to the firewall term.
- Map the firewall filter under the family inet or inet6. You can also alternatively apply the firewall filter to a forwarding table filter with input or output statement to filter ingress or egress packets, respectively.
The device must support a maximum packet length (clip length) of 126 bytes to enable inline monitoring services.
You cannot configure more than 16 inline-monitoring instances because of the scarcity of bits available in the packet in the forwarding path.
Apply inline monitoring services only on a collector interface, that is, the interface on which the collector is reachable. You must not apply inline monitoring on IPFIX traffic as this generates another IPFIX packet for sampling thereby creating a loop. This includes inline monitoring service-generated traffic, such as template and record packet, option template and option record packet.
When inline monitoring service is enabled on aggregated Ethernet (AE) interfaces, the information element values are as follows:
Table 2: Information Element Values for Aggregated Ethernet Interfaces
Direction of inline monitoring service on AE interface
Information element-10 (Incoming interface)
Information element-14 (Outgoing interface)
SNMP ID of AE
SNMP ID of AE
SNMP ID of member link
When inline monitoring service is enabled on IRB interfaces, the information element values are as follows:
Table 3: Information Element Values for IRB Interfaces
Direction of inline monitoring service on IRB interface
Information element-10 (Incoming interface)
Information element-14 (Outgoing interface)
SNMP ID of IRB
SNMP ID of IRB
SNMP ID of vlan-bridge encapsulated interface
For XL-XM based devices (with Lookup chip (XL) and buffering ASIC (XM)), the length of the Data Link Frame Section information element in an exported packet can be shorter than the clip length even if the egress packet length is greater than clip length.
The length of the Data Link Frame Section information element is reduced by 'N' number of bytes where 'N' = (ingress packet Layer 2 encapsulation length - egress packet Layer 2 encapsulation length).
For instance, the Layer 2 encapsulation length for the ingress packet is greater than that of the egress packet when the ingress packet has MPLS labels and egress packet is of IPv4 or IPv6 type. When traffic flows from the provider edge (PE) device to the customer edge (CE) device, the ingress packet has VLAN tags and the egress packet is untagged.
In such cases, the clip length can go past the last address location of the packet head, generating a PKT_HEAD_SIZE system log message. This can result in degradation of packet forwarding for the device.
In case of inline monitoring services in the ingress direction, the egressInterface (information element ID 14) does not report SNMP index of the output interface. This information element ID always reports value zero in case of ingress direction. The receiving collector process should identify the validity of this field based on the flowDirection (information element ID 61).
Supported and Unsupported Features with Inline Monitoring Services
Inline monitoring services supports:
Graceful Routing Engine switchover
In-service software upgrade (ISSU), nonstop software upgrade (NSSU), and nonstop active routing (NSR)
Ethernet interfaces and integrated routing and bridging (IRB) interfaces
Junos node slicing
Inline monitoring services currently does not support:
Ability to configure more than 16 inline-monitoring instances.
Junos Traffic Vision
Inline-monitoring-instance action is supported only for inet and inet6 firewall filters. It is not supported for other family filters.
IPv6 addressable collectors
Configuring Inline Monitoring Services
You can configure inline monitoring services to monitor different streams of traffic at different sampling rates on the same logical unit of the interface. You can also export the original packet size to an collector along with information on the interface origin for effective troubleshooting.
The inline monitoring services can monitor both IPv4 and IPv6 traffic on both ingress and egress directions. You can enable inline monitoring on MX Series routers with MPCs excluding MPC10E and MPC11E linecards.
Before You Configure
When you configure inline monitoring services, you can:
Configure up to 16 inline-monitoring instances. Under each instance, you can configure specific collector and template parameters.
Configure up to 4 IPv4-addressable collectors under each inline-monitoring instance. In total, you can configure up to 64 collectors. The collectors can be remote, and at different locations.
For each collector, you can configure specific parameters, such as source, destination address, sampling rate, forwarding class, and so on. The default routing-instance name at the collector is default.inet.
Configure inet or inet6 family firewall filter with the term action inline-monitoring-instance inline-monitoring-instance-name.
Each term can support a different inline-monitoring instance.
Attach the inline monitoring firewall filter under inet or inet6 family of the logical unit of the interface.
After successfully committing the configuration, you can verify the implementation of the inline monitoring services by issuing the show services inline-monitoring statistics fpc-slot command from the device CLI.
If a packet requires inline monitoring services to be applied along with any of the traditional sampling technologies (such as, JFlow, SFlow, or port mirroring), the Packet Forwarding Engine performs both inline monitoring services and the traditional sampling technology on that packet.
Figure 6 is a sample illustration of inline monitoring services, where traffic is monitored at two different sampling rates on the device interface, and exported to four remote collectors in an IPFIX encapsulation format.
In this example, the et-1/0/0 interface of the device is configured with inline monitoring services. The details of the configurations are as follows:
There are two inline-monitoring instances — Instance 1 and Instance 2.
There are four collectors, two collectors under each inline monitoring instance.
Instance 1 has Collector-1 and Collector-2.
Instance 2 has Collector-101 and Collector-102.
The collectors on Instance 1 have a sampling rate of 1:10000.
The collectors on Instance 2 have a sampling rate of 1:1.
Instance 1 collectors have a source and destination address of 188.8.131.52 and 184.108.40.206, respectively.
Instance 2 collectors have a source and destination address of 220.127.116.11 and 18.104.22.168, respectively.
The packets are exported to the collectors in an IPFIX encapsulated format.
To configure inline monitoring services:
- Define a firewall filter for each inline-monitoring instance
for servicing the inline monitoring services. You can configure inet or inet6 family firewall filter with the term
To define a firewall filter:[edit firewall family family filter filter-name term term]user@host# set from source-address source-IPv4-addressuser@host# set from destination-address destination-IPv4-addressuser@host# set then inline-monitoring-instance inline-monitoring-instance-nameuser@host# set then action
In this example, Terms t1 and t2 are configured for Instance1 and Instance2, respectively.[edit firewall famil inet filter SAMPLE_FOR_1 term t1]user@host# set from source-address 22.214.171.124/24user@host# set from destination-address 126.96.36.199/24user@host# set then inline-monitoring-instance Instance1user@host# set then acceptuser@host# set term t2 from source-address 188.8.131.52/24user@host# set term t2 from destination-address 184.108.40.206/24user@host# set term t2 then inline-monitoring-instance Instance2user@host# set term t2 then accept
- Enable inline monitoring services by configuring the associated
template, instance, and collector parameters.
- To configure the inline monitoring services template:[edit services inline-monitoring template template-name]user@host# set template-refresh-rate template-refresh-rateuser@host# set option-template-refresh-rate option-template-refresh-rateuser@host# set observation-domain-id observation-domain-id
In this example, templates template-1 and template-2 are configured.[edit services inline-monitoring template template-1]user@host# set template-refresh-rate 60user@host# set option-template-refresh-rate 100user@host# set observation-domain-id 1[edit services inline-monitoring template template-2]user@host# set template-refresh-rate 60user@host# set option-template-refresh-rate 100user@host# set observation-domain-id 2
- To configure inline monitoring instance and collector
parameters:[edit services inline-monitoring instance inline-monitoring-instance-name]user@host# set template-name template-nameuser@host# set maximum-clip-length maximum-clip-lengthuser@host# set collector collector-name source-address source-IPv4-addressuser@host# set collector collector-name destination-address destination-IPv4-addressuser@host# set collector collector-name destination-port destination-portuser@host# set collector collector-name sampling-rate smapling-rate
In this example, Instance1 has two collectors, collector-1 and collector-2, and Instance2 has two collectors, collector-101 and collector-102. Different sampling rates have been configured for both the instances.[edit services inline-monitoring instance Instance1]user@host# set template-name template-1user@host# set maximum-clip-length 126user@host# set collector collector-1 source-address 220.127.116.11user@host# set collector collector-1 destination-address 18.104.22.168user@host# set collector collector-1 destination-port 2055user@host# set collector collector-1 sampling-rate 10000user@host# set collector collector-2 source-address 22.214.171.124user@host# set collector collector-2 destination-address 126.96.36.199user@host# set collector collector-2 destination-port 2055user@host# set collector collector-2 sampling-rate 10000[edit services inline-monitoring instance Instance2]user@host# set template-name template-2user@host# set maximum-clip-length 126user@host# set collector collector-101 source-address 188.8.131.52user@host# set collector collector-101 destination-address 184.108.40.206user@host# set collector collector-101 destination-port 2055user@host# set collector collector-101 sampling-rate 1user@host# set collector collector-102 source-address 220.127.116.11user@host# set collector collector-102 destination-address 18.104.22.168user@host# set collector collector-102 destination-port 2055user@host# set collector collector-102 sampling-rate 1
- To configure the inline monitoring services template:
- Map the firewall filter under the family inet or inet6 of the logical unit of the interface to apply
inline monitoring in the ingress or egress direction.
Alternatively, you can apply inline monitoring by mapping the firewall filter to a forwarding table filter with input or output statement to filter ingress or egress packets, respectively.
To attach the firewall filter:[edit interfaces interface-name]user@host# set unit 0 family family filter input filteruser@host# set unit 0 family family address ip-address
In this example, the inline monitoring filter is attached to family inet of unit 0 of et-1/0/0.[edit interfaces et-1/0/0]user@host# set unit 0 family inet filter input SAMPLE_FOR_1user@host# set unit 0 family inet address 10.100.0.1/30