[j-nsp] questions regarding port mirroring analyzer in MX series router
Martin T
m4rtntns at gmail.com
Thu Jan 3 07:33:16 EST 2019
Hi!
According to Juniper documentation, MX series routers support
analyzers([edit forwarding-options analyzer]) since Junos OS Release
14.1 and one can mirror frames entering and exiting the port. However,
when I tested this with vMX running Junos 18.2R1.9, then I encountered
following problems/questions:
1) If the interface family is not bridge, then only the ingress
traffic is mirrored. Looks like this is the case with MX104 as well:
https://forums.juniper.net/t5/Routing/Analyzer-on-MX104/td-p/311718 In
short, am I correct that analyzer feature is dedicated to bridge
family only?
2) I built a following tiny test-setup:
https://i.imgur.com/ToyY31e.png Ports ge-0.0.7-vmx1 and ge-0-0.6-vmx1
are in the same broadcast domain, but in different Linux network
namespaces in order to force the traffic through vMX bridge. When the
analyzer configuration is inactive, then I can ping the 10.88.10.1(src
address is 10.88.10.2) without any issues. However, when the analyzer
configuration is activated:
root at vmx1> show configuration forwarding-options analyzer
test {
input {
ingress {
interface ge-0/0/6.0;
}
egress {
interface ge-0/0/6.0;
}
}
output {
interface ge-0/0/8.0;
}
}
root at vmx1> show forwarding-options analyzer
Analyzer name : test
Mirror rate : 1
Maximum packet length : 0
State : up
Ingress monitored interfaces : ge-0/0/6.0
Egress monitored interfaces : ge-0/0/6.0
Output interface : ge-0/0/8.0
root at vmx1>
..and I make the packet capture on ge-0.0.7-vmx1 or
ge-0.0.8-vmx1(analyzer outgoing port for mirrored packets), then the
vMX seems to remove the EtherType field(0x0800) and the first 16 bits
of the IPv4 header starting from the second packet:
# tcpdump -nei ge-0.0.8-vmx1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ge-0.0.8-vmx1, link-type EN10MB (Ethernet), capture size
262144 bytes
13:31:42.068347 fe:06:0a:0e:ff:f7 > fe:06:0a:0e:ff:f6, ethertype IPv4
(0x0800), length 98: 10.88.10.2 > 10.88.10.1: ICMP echo request, id
14334, seq 1, length 64
13:31:42.068460 fe:06:0a:0e:ff:f6 > fe:06:0a:0e:ff:f7, ethertype IPv4
(0x0800), length 98: 10.88.10.1 > 10.88.10.2: ICMP echo reply, id
14334, seq 1, length 64
13:31:43.068240 fe:06:0a:0e:ff:f7 > fe:06:0a:0e:ff:f6, ethertype IPv4
(0x0800), length 98: 10.88.10.2 > 10.88.10.1: ICMP echo request, id
14334, seq 2, length 64
13:31:43.068419 fe:06:0a:0e:ff:f6 > fe:06:0a:0e:ff:f7, 802.3, length
84: LLC, dsap Unknown (0x50) Group, ssap Unknown (0x76) Response, ctrl
0x0000: Information, send seq 0, rcv seq 0, Flags [Response], length
80
0x0000: 5177 0000 4001 0080 0a58 0a01 0a58 0a02 Qw.. at ....X...X..
0x0010: 0000 dfd3 37fe 0002 9ff2 2d5c 0000 0000 ....7.....-\....
0x0020: 5b0a 0100 0000 0000 1011 1213 1415 1617 [...............
0x0030: 1819 1a1b 1c1d 1e1f 2021 2223 2425 2627 .........!"#$%&'
0x0040: 2829 2a2b 2c2d 2e2f 3031 3233 3435 3637 ()*+,-./01234567
13:31:44.068247 fe:06:0a:0e:ff:f7 > fe:06:0a:0e:ff:f6, ethertype IPv4
(0x0800), length 98: 10.88.10.2 > 10.88.10.1: ICMP echo request, id
14334, seq 3, length 64
13:31:44.068291 fe:06:0a:0e:ff:f6 > fe:06:0a:0e:ff:f7, 802.3, length
84: LLC, dsap Unknown (0x54) Individual, ssap Unknown (0x46) Command,
ctrl 0x0000: Information, send seq 0, rcv seq 0, Flags [Command],
length 80
0x0000: 5446 0000 4001 fdb0 0a58 0a01 0a58 0a02 TF.. at ....X...X..
0x0010: 0000 dbd2 37fe 0003 a0f2 2d5c 0000 0000 ....7.....-\....
0x0020: 5e0a 0100 0000 0000 1011 1213 1415 1617 ^...............
0x0030: 1819 1a1b 1c1d 1e1f 2021 2223 2425 2627 .........!"#$%&'
0x0040: 2829 2a2b 2c2d 2e2f 3031 3233 3435 3637 ()*+,-./01234567
^C
6 packets captured
6 packets received by filter
0 packets dropped by kernel
#
Output of the ping utility can be seen below:
$ ping -c10 10.88.10.1
PING 10.88.10.1 (10.88.10.1) 56(84) bytes of data.
64 bytes from 10.88.10.1: icmp_seq=1 ttl=64 time=0.167 ms
--- 10.88.10.1 ping statistics ---
10 packets transmitted, 1 received, 90% packet loss, time 8999ms
rtt min/avg/max/mdev = 0.167/0.167/0.167/0.000 ms
$
Has anyone seen this (bug) before? Once I commit the "delete
forwarding-options analyzer", then this odd behavior disappears.
3) If there is already a port-mirroring([edit forwarding-options
port-mirroring]) available for MX series, then why introduce another
tool? Or does analyzer do something which port-mirroring doesn't?
thanks,
Martin
More information about the juniper-nsp
mailing list