Posted on January 23, 2014 12:22 am
 |  Asked by admin
 |  15719 views
Tags:
RESOLVED
0
0
Print Friendly, PDF & Email
0
Posted by Andrei Dvornic
Answered on January 23, 2014 12:31 am

You can debug PIM in EOS via several methods.

First, I always recommend using the available CLI commands to do a quick check. Here are some of my favorites, other than show ip mroute:

Arista# show ip pim config-sanity // one of my favorites, checks dozens of common misconfigurations or failures
Arista#show ip pim protocol
Arista#show ip pim upstream joins

If you want to inspect the hardware and software state independent of the EOS PIM CLI commands show ip mfib will show the hardware status, and show ip mfib software will show rpf failed and software forwarded entries.

If you need to dig deeper into the PIM state or protocol messaging, tcpdump is one of the most powerful tools in EOS for troubleshooting. Here is an example:

Arista(config)#tcpdump -i vlan3909 verbose filter pim
tcpdump: listening on vlan3909, link-type EN10MB (Ethernet), capture size 65535 bytes
04:55:28.129816 00:1c:73:0f:6a:80 (oui Arista Networks) > 01:00:5e:00:00:0d (oui Unknown), ethertype IPv4 (0x0800), length 68: (tos 0xc0, ttl 1, id 38658, offset 0, flags [none], proto PIM (103), length 54)
    switch.aristanetworks.com > pim-routers.mcast.net: PIMv2, length 34
        Hello, cksum 0x8db7 (correct)
          Hold Time Option (1), length 2, Value: 1m45s
            0x0000:  0069
          LAN Prune Delay Option (2), length 4, Value:
            T-bit=0, LAN delay 500ms, Override interval 2500ms
            0x0000:  01f4 09c4
          DR Priority Option (19), length 4, Value: 1
            0x0000:  0000 0001
          Generation ID Option (20), length 4, Value: 0xc8777d76
            0x0000:  c877 7d76
All PIM messages will be presented and decoded right in your terminal.

If all else fails, you can debug the PIM state machine directly as a last resort. The right agent to trace is Rib, specifically the PIM subcomponent. You can see all of the available subcomponents via:

Arista(config)#show trace Rib |grep Pim
PimEventMon          enabled  ............
Rib::Pim::Assert     enabled  ............
Rib::Pim::BSR        enabled  ............
Rib::Pim::Debug      enabled  ............
Rib::Pim::Hello      enabled  ............
Rib::Pim::JoinPrune  enabled  ............
Rib::Pim::Normal     enabled  ............
Rib::Pim::Policy     enabled  ............
Rib::Pim::Register   enabled  ............
Rib::Pim::Route      enabled  ............
Rib::Pim::State      enabled  ............
Rib::Pim::Task       enabled  ............
Rib::Pim::Timer      enabled  ............
RibPim               enabled  ............

The following commands will configure and enable trace for all PIM protocol messages and output to a file called pim.debug on the system flash (for review and retrieval):

Arista(config)#trace Rib filename flash:pimdebug
Arista(config)#trace Rib enable Rib::Pim* all

Careful, it’s a lot of output, and could potentially cause extra system load if you have a lot of PIM state and messaging. If you know exactly which PIM message or state you’d like to debug you can be more specific.

Arista(config)#trace Rib enable Rib::Pim::Hello

You can view the output via trace monitor Rib, or by just reading the file directly from flash. Make sure to disable trace after you’ve gotten the information you need by ’no’-ing the commands.

Post your Answer

You must be logged in to post an answer.