[Xorp-users] Xorp PIM-SM over GRE issue?

Jean-Pascal Billaud billaud at vmware.com
Thu Apr 28 20:39:03 PDT 2011


Hey folks,

It is my first time deploying Xorp so I might have missed something obvious... please find below my network:

VM1 (192.168.1.1)    MRouter1 (192.168.1.253)
	  |                      |
        ----------------------------------
							| (192.168.1.254)
						Unicast Router
							| (192.168.2.254)
							-------------------------------------
								|					|
						MRouter2 (192.168.2.253)		VM2 (192.168.2.1)

All the entities in there are VMs BTW even that should not matter in practice. What I would like to do is to have VM1 & VM2 doing some iperf multicast going through their respective L3 MRouter as opposed to going through the Unicast Router stitching the L3 network. I am sure this is a very typical scenario.

So I have a GRE tunnel between both MRouter to have them PIM peers with the following /etc/network/interfaces:

# Configuration for MRouter1
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.253
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254

auto tun0
iface tun0 inet static
address 192.168.10.1
netmask 255.255.255.0
broadcast 192.168.10.255
up ifconfig tun0 multicast
pointopoint 192.168.10.2
pre-up iptunnel add tun0 mode gre remote 192.168.2.253 local 192.168.1.253 ttl 255
post-down iptunnel del tun0

I am able to ping MRouter2 through the tunnel and I can observe the GRE frames at the Unicast Router using tcpdump. Obviously the MRouter2 interface file differs a bit due to ip address...

Then here is my Xorp configuration on MRouter1... The MRouter2's one is slightly different for the same reasons as above with the interface file:

interfaces {
           interface eth0 {
                     vif eth0 {
                         address 192.168.1.253 {
                                  prefix-length: 24
                         }
                     }
           }
           interface tun0 {
                     vif tun0 {
                         address 192.168.10.1 {
                                  prefix-length: 24
                                  multicast-capable: true
                         }
                     }
           }
}
plumbing {
         mfea4 {
               interface eth0 {
                         vif eth0 {
                         }
               }
               interface tun0 {
                         vif tun0 {
                         }
               }
               interface "register_vif" {
                         vif "register_vif" {
                         }
               }
               traceoptions {
                            flag all {
                                 disable: false
                            }
               }
         }
}

protocols {
         igmp {
              interface eth0 {
                        vif eth0 {
                            version: 3
                            query-interval: 30
                        }
              }
              interface tun0 {
                        vif tun0 {
                        }
              }
              traceoptions {
                           flag all {
                                disable: false
                           }
              }
         }

         pimsm4 {
                interface eth0 {
                          vif eth0 {
                          }
                }
                interface tun0 {
                          vif tun0 {
                              hello-period: 10
                          }
                }
                interface "register_vif" {
                          vif "register_vif" {
                          }
                }

                static-rps {
                           rp 192.168.10.1 {
                              group-prefix 224.0.0.0/4 {
                              }
                           }
                }
                traceoptions {
                             flag all {
                                  disable: false
                             }
                }
         }
         static {
                mrib-route 0.0.0.0/0 {
                           next-hop: 192.168.10.2
                }
         }
}

Now the issue is that while Xorp is running PIM-SM on MRouter1, it sends HELLO through tun0 interface but for some reasons it uses the eth0 IP address and there is no GRE done at all... Looking at tcpdump on eth0 on MRouter1 we can see non-GRE PIM frames:

20:33:45.443462 IP (tos 0xc0, ttl 1, id 18031, offset 0, flags [none], proto PIM (103), length 64)
    192.168.1.253 > 224.0.0.13: PIMv2, length 44
        Hello, cksum 0xcfa6 (correct)
          Hold Time Option (1), length 2, Value: 35s
            0x0000:  0023
          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: 0x3a13fe69
            0x0000:  3a13 fe69
          Address List Option (24), length 6, Value:
            192.168.10.1
            0x0000:  0100 c0a8 0a01

>From Xorp logs:

[ 2011/04/28 20:17:20.581125 INFO xorp_igmp MLD6IGMP ] Interface enabled: Vif[tun0] pif_index: 12 vif_index: 1 addr: 192.168.1.253 subnet: 192.168.1.253/32 broadcast: 0.0.0.0 peer: 192.168.2.253 addr: 192.168.10.1 subnet: 192.168.10.0/24 broadcast: 0.0.0.0 peer: 192.168.10.1 Flags: P2P MULTICAST UNDERLYING_VIF_UP MTU: 1476 DOWN IPv4 ENABLED

[ 2011/04/28 20:17:36.304614 TRACE xorp_pimsm4 PIM ] pim_send: TX PIM_HELLO from 192.168.1.253 to 224.0.0.13 on vif tun0
[ 2011/04/28 20:17:46.306477 TRACE xorp_pimsm4 PIM ] pim_send: TX PIM_HELLO from 192.168.1.253 to 224.0.0.13 on vif tun0

root at promd-1n-dhcp198> show pim interface
Interface    State    Mode   V PIMstate Priority DRaddr          Neighbors
eth0         UP       Sparse 2 DR              1 192.168.1.253           0
tun0         UP       Sparse 2 DR              1 192.168.1.253           0
register_vif UP       Sparse 2 DR              1 192.168.1.253           0

Any help would be really appreciated.

Thanks,
--jp



More information about the Xorp-users mailing list