This article demonstrates how to capture traffic passing through IPSEC tunnel configured in MS-MPC PIC.
Test diagram:
60.1.252.1 60.1.252.2 router1(MX) router2(MX) IPSEC GW IPSEC GW | | |oSA:ms-2/0/0.1252 iSA:ms-2/0/0.1001 |------> --------> | |.................................| .| . IPSEC tunnel 1 . |. |.................................| |<------ <-------- | |iSA:ms-2/0/0.1253 oSA:ms-2/0/0.1002 | | | | BGP peer ==========================================> BGP peer xe-0/0/1| | xe-1/2/0 joker--------+ +------------joker (LR:to-router1) | (LR:to-router2) VLAN10: | | VLAN10 192.168.0.2 | | 172.16.0.1 VLAN20: | | VLAN20 192.169.0.2 | | 172.17.0.1 | | | | |oSA:ms-2/0/0.1254 iSA:ms-2/0/0.1003 |-------> --------> | |.................................| .| . IPSEC tunnel 2 . |. |.................................| |<------- <-------- | |iSA:ms-2/0/0.1255 oSA:ms-2/0/0.1004 | | 70.1.252.1 70.1.252.2
labroot@router1-re0> show chassis fpc pic-status 2 Jun 14 16:02:11 Slot 2 Online MS-MPC PIC 0 Online MS-MPC-PIC PIC 1 Online MS-MPC-PIC PIC 2 Online MS-MPC-PIC <--- PIC 3 Online MS-MPC-PIC
How to capture the IPSEC and BGP KA packets in MS-MPC PIC on MX 'batman':
From MX CLI, drop to JUNOS shell:
labroot@router1-re0> start shell
From Junos shell, login to MPC pic. Use login "root" to login, there will be no password asked :
:
root@ms20% telnet -Ji fpc2.pic0 Trying 128.0.1.18... Connected to fpc2.pic0. Escape character is '^]'. login: root --- JUNOS 18.4R1-S7.1 built 2020-05-14 01:17:14 UTC root@ms20%
Use the ' mspdump ' command to capture IPSEC traffic:
mspdump
root@ms20% mspdump -ni ms0 -s 1500 "host 60.1.252.2 || host 172.16.0.1" > /var/re/packet_trace.txt & [1] 82789 root@ms20% verbose output suppressed, use <detail> or <extensive> for full protocol decode Address resolution is OFF. Listening on ms0, capture size 1500 bytes
Host 60.1.252.2 is the remote gateway, host 172.16.0.1 is the remote BGP peer. With these 2 filters, the mspdump tool can capture traffic destined to remote BGP (BGP KA, BGP tear down/establishment messages,etc), and any traffic flowing between the IPSEC peers. This command runs the capture in the background, and writes the data into a file.
tail
: root@ms20% tail -f /var/re/packet_trace.txt 14:29:19.318488 In SERVICES service id 75 flags 0x85 service set id 1253 iif 384 IP 60.1.252.2 > 60.1.252.1: ESP (spi=3738791032,seq=0x54) 14:29:19.318524 Out SERVICES service id 64 flags 0x83 iif 335 IP 172.16.0.1.179 > 192.168.0.2.50217: P 3595632646 :3595632665(19) ack 137769324 win 16384 <nop,nop,timestamp 272217603 272209406> : BGP, length: 19 14:29:19.318553 In SERVICES service id 75 flags 0x85 service set id 1252 iif 385 IP 192.168.0.2.50217 > 172.16.0 .1.179: P 1:20(19) ack 0 win 16384 <nop,nop,timestamp 272217603 272209406> : BGP, length: 19 14:29:19.318581 Out SERVICES service id 64 flags 0x83 iif 336 IP 60.1.252.1 > 60.1.252.2: ESP(spi=3270061680,seq= 0x53) 14:29:19.418384 In SERVICES service id 75 flags 0x85 service set id 1252 iif 385 IP 192.168.0.2.50217 > 172.16.0 .1.179: . ack 19 win 16384 <nop,nop,timestamp 272217703 272217603> 14:29:19.418407 Out SERVICES service id 64 flags 0x83 iif 336 IP 60.1.252.1 > 60.1.252.2: ESP(spi=3270061680,seq= 0x54) 14:29:19.418551 In SERVICES service id 75 flags 0x85 service set id 1253 iif 384 IP 60.1.252.2 > 60.1.252.1: ESP (spi=3738791032,seq=0x55) 14:29:19.418584 Out SERVICES service id 64 flags 0x83 iif 335 IP 172.16.0.1.179 > 192.168.0.2.50217: . ack 20 win 16384 <nop,nop,timestamp 272217703 272217603> 14:29:27.509528 In SERVICES service id 75 flags 0x85 service set id 1253 iif 384 IP 60.1.252.2 > 60.1.252.1: ESP (spi=3738791032,seq=0x56) 14:29:27.509561 Out SERVICES service id 64 flags 0x83 iif 335 IP 172.16.0.1.179 > 192.168.0.2.50217: P 19:38(19) ack 20 win 16384 <nop,nop,timestamp 272225794 272217703> : BGP, length: 19 14:29:27.509596 In SERVICES service id 75 flags 0x85 service set id 1252 iif 385 IP 192.168.0.2.50217 > 172.16.0 .1.179: P 20:39(19) ack 19 win 16384 <nop,nop,timestamp 272225794 272217703> : BGP, length: 19 14:29:27.509622 Out SERVICES service id 64 flags 0x83 iif 336 IP 60.1.252.1 > 60.1.252.2: ESP(spi=3270061680,seq= 0x55) 14:29:27.609403 In SERVICES service id 75 flags 0x85 service set id 1252 iif 385 IP 192.168.0.2.50217 > 172.16.0 .1.179: . ack 38 win 16384 <nop,nop,timestamp 272225894 272225794> 14:29:27.609424 Out SERVICES service id 64 flags 0x83 iif 336 IP 60.1.252.1 > 60.1.252.2: ESP(spi=3270061680,seq= 0x56) 14:29:27.609569 In SERVICES service id 75 flags 0x85 service set id 1253 iif 384 IP 60.1.252.2 > 60.1.252.1: ESP (spi=3738791032,seq=0x57) 14:29:27.609592 Out SERVICES service id 64 flags 0x83 iif 335 IP 172.16.0.1.179 > 192.168.0.2.50217: . ack 39 win 16384 <nop,nop,timestamp 272225894 272225794> 14:29:37.415553 In SERVICES service id 75 flags 0x85 service set id 1253 iif 384 IP 60.1.252.2 > 60.1.252.1: ESP (spi=3738791032,seq=0x58) 14:29:37.415586 Out SERVICES service id 64 flags 0x83 iif 335 IP 172.16.0.1.179 > 192.168.0.2.50217: P 38:57(19) ack 39 win 16384 <nop,nop,timestamp 272235700 272225894> : BGP, length: 19 14:29:37.415622 In SERVICES service id 75 flags 0x85 service set id 1252 iif 385 IP 192.168.0.2.50217 > 172.16.0 .1.179: P 39:58(19) ack 38 win 16384 <nop,nop,timestamp 272235700 272225894> : BGP, length: 19 14:29:37.415647 Out SERVICES service id 64 flags 0x83 iif 336 IP 60.1.252.1 > 60.1.252.2: ESP(spi=3270061680,seq= 0x57) 14:29:37.515397 In SERVICES service id 75 flags 0x85 service set id 1252 iif 385 IP 192.168.0.2.50217 > 172.16.0 .1.179: . ack 57 win 16384 <nop,nop,timestamp 272235800 272235700> 14:29:37.515420 Out SERVICES service id 64 flags 0x83 iif 336 IP 60.1.252.1 > 60.1.252.2: ESP(spi=3270061680,seq= 0x58) 14:29:37.515564 In SERVICES service id 75 flags 0x85 service set id 1253 iif 384 IP 60.1.252.2 > 60.1.252.1: ESP (spi=3738791032,seq=0x59) 14:29:37.515588 Out SERVICES service id 64 flags 0x83 iif 335 IP 172.16.0.1.179 > 192.168.0.2.50217: . ack 58 win 16384 <nop,nop,timestamp 272235800 272235700> 14:29:45.529540 In SERVICES service id 75 flags 0x85 service set id 1253 iif 384 IP 60.1.252.2 > 60.1.252.1: ESP (spi=3738791032,seq=0x5a) 14:29:45.529574 Out SERVICES service id 64 flags 0x83 iif 335 IP 172.16.0.1.179 > 192.168.0.2.50217: P 57:76(19) ack 58 win 16384 <nop,nop,timestamp 272243814 272235800> : BGP, length: 19 ^C
To stop the capture, first get the process ID of mspdump using the 'ps' command, then kill the process:
'ps'
root@ms20% ps PID TT STAT TIME COMMAND 223 d0 Ss+ 0:00.05 /usr/libexec/getty std.9600 ttyd0 76694 p0 Ss 0:00.07 login [pam] (login) 76695 p0 S+ 0:00.15 -csh (csh) 82106 p1 Ss 0:00.07 login [pam] (login) 82107 p1 S 0:00.14 -csh (csh) 82789 p1 S 0:00.09 mspdump -ni ms0 -s 1500 host 60.1.252.2 || host 172.16.0.1 #<--- 82790 p1 R+ 0:00.03 ps root@ms20% root@ms20% kill 82789 396 packets accepted by filter 0 packets rejected by filter 0 packets dropped on queue-full root@ms20% [1] Done mspdump -ni ms0 -s 1500 host 60.1.252.2 || host 172.16.0.1 > ... root@ms20%