When troubleshooting switches connected using MultiLink Trunks (MLT), Distributed MultiLink Trunks (DMLT) and Split MultiLink Trunks (SMLT) it can be difficult to determine which path a specific set of IP packets are taking between two switches.
The Nortel Ethernet Routing Switch 8600 has a feature called ping snoop that can be used to determine the specific path that specific IP traffic takes over an MLT, DMLT or SMLT path. Ping snoop works by enabling a filter that copies the ICMP messages to the CPU. The CPU then monitors the ICMP stream and outputs messages on the console indicating what ports are being traversed by the IP traffic.
There are different commands depending on the type of IO modules that are involved.
With non-R modules;
config diag ping-snoop create src-ip 30.30.30.0/24 dst-ip 30.30.30.0/24 config diag ping-snoop add-ports 1/47,2/1 config diag ping-snoop enable true config log screen on
With R modules;
config filter acl 4096 port add 1/2 config filter acl 4096 enable config filter acl 4096 ace 1 create name echo_reply config filter acl 4096 ace 1 ip src-ip eq 10.119.255.20/32 config filter acl 4096 ace 1 ip dst-ip eq 10.101.241.25/32 config filter acl 4096 ace 1 protocol icmp-msg-type eq echoreply config filter acl 4096 ace 1 enable config filter acl 4096 ace 2 create name echo_request config filter acl 4096 ace 2 ip src-ip eq 10.101.241.25/32 config filter acl 4096 ace 2 ip dst-ip eq 10.119.255.20/32 config filter acl 4096 ace 2 protocol icmp-msg-type eq echo-request config filter acl 4096 ace 2 enable config log screen on
In the above examples you need to substitute the appropriate IP addresses and switch ports.
I’ve used the ping snoop feature on numerous occasions to isolate the specific uplink that a TCP/UDP conversation was utilizing when traversing two switches that have multiple uplinks between each other [configured as MLT/DMLT/SMLT uplink].
Here’s a sample output from a Nortel ERS 8600 v4.1.1 switch;
sw-ccr-8600:5# CPP Task=tMainTask CPU5 [12/11/07 07:36:25] CPU INFO ICMP Reply received on port 8/14 with Src=10.124.240.32 Dst=10.124.240.20 sw-ccr-8600:5# CPP Task=tMainTask CPU5 [12/11/07 07:36:26] CPU INFO ICMP Reply received on port 8/14 with Src=10.124.240.32 Dst=10.124.240.20 sw-ccr-8600:5# CPP Task=tMainTask CPU5 [12/11/07 07:36:27] CPU INFO ICMP Reply received on port 8/14 with Src=10.124.240.32 Dst=10.124.240.20 sw-ccr-8600:5# CPP Task=tMainTask CPU5 [12/11/07 07:36:28] CPU INFO ICMP Reply received on port 8/14 with Src=10.124.240.32 Dst=10.124.240.20
I might be wrong about this but I believe the ping snoop feature only works on ingress packets (packets that are ingressing into the IO module/port you have configured for ping snoop).
Cheers!