[Xorp-users] IPv6 multicast routing get not forwarded

Ben Greear greearb at candelatech.com
Wed Feb 3 09:49:23 PST 2016


For your UDP frames, try using a small size (1000 bytes).  There is a known
bug where larger sized frames fail (in our virtualized xorp-router test bed).


There is an fragment re-assembly bug/limitation in the Linux kernel that
causes this problem in our case.

Thanks,
Ben



On 02/03/2016 04:25 AM, Simon Schürg wrote:
> Hello,
>
> I want to use XORP for IPv6 routing. IPv6 unicast routing works very well
> with OSPF6 enabled but multicast packets don't pass the router.
> I have a Linux XORP routers which are connected through switches. At the
> switches are also hosts connected.
> It is a virtual emulated network, i tried it with Mininet and with IMUNES.
> I attached an image of the concrete network topology in this email.
> In both testbeds is the IPv6 unicast working, but the multicast does not
> work.
> In setups without routers and only switches the multicast connections are
> working and can be received, therefore the switches are not the problem.
>
> One host sends UDP multicast packages to the multicast address ff08::7777
> and other ones listen on the same address. I double checked with
> wireshark, that the hop limit of the IPv6 UDP packets is bigger than 1. It
> is set to 32.
>
>
> The XORP routers are running on Ubuntu 14.04.3 LTS 64bit OS.
> It is XORP v1.8.5.
>
>
>
> IPv6 forwarding and multicast forwarding is both enabled in sysctl:
> router1# sysctl -a | grep ipv6 | grep forward
> net.ipv6.conf.all.forwarding = 1
> net.ipv6.conf.all.mc_forwarding = 1
> net.ipv6.conf.default.forwarding = 1
> net.ipv6.conf.default.mc_forwarding = 0
> net.ipv6.conf.eth0.forwarding = 1
> net.ipv6.conf.eth0.mc_forwarding = 1
> net.ipv6.conf.eth1.forwarding = 1
> net.ipv6.conf.eth1.mc_forwarding = 1
> net.ipv6.conf.lo.forwarding = 1
> net.ipv6.conf.lo.mc_forwarding = 0
> net.ipv6.conf.pim6reg253.forwarding = 1
> net.ipv6.conf.pim6reg253.mc_forwarding = 1
>
>
>
>
> The two hosts are connected to the interfaces eth0 and eth1.
> Here is the list of network interfaces of the router1
>
> router1# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
> default
> link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> inet 127.0.0.1/8 scope host lo
> valid_lft forever preferred_lft forever
> inet6 ::1/128 scope host
> valid_lft forever preferred_lft forever
> 8: pim6reg253 at NONE: <NOARP,UP,LOWER_UP> mtu 1452 qdisc noqueue state
> UNKNOWN group default
> link/pimreg
> 72: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc netem state UP
> group default qlen 1000
> link/ether 42:00:aa:00:00:00 brd ff:ff:ff:ff:ff:ff
> inet 10.0.0.1/24 brd 10.0.0.255 scope global eth0
> valid_lft forever preferred_lft forever
> inet6 fc00::1/64 scope global
> valid_lft forever preferred_lft forever
> inet6 fe80::4000:aaff:fe00:0/64 scope link
> valid_lft forever preferred_lft forever
> 76: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc netem state UP
> group default qlen 1000
> link/ether 42:00:aa:00:00:02 brd ff:ff:ff:ff:ff:ff
> inet 10.0.1.1/24 brd 10.0.1.255 scope global eth1
> valid_lft forever preferred_lft forever
> inet6 fc00:1::1/64 scope global
> valid_lft forever preferred_lft forever
> inet6 fe80::4000:aaff:fe00:2/64 scope link
> valid_lft forever preferred_lft forever
>
>
>
>
> And that is the boot.config from router1, the other router is in the same
> way configured.
>
>
> interfaces {
> interface eth0 {
> description: "Ethernet Iface 0"
> disable: false
> discard: false
> unreachable: false
> default-system-config {
> }
> }
> interface eth1 {
> description: "Ethernet Iface 1"
> disable: false
> discard: false
> unreachable: false
> default-system-config {
> }
> }
> }
>
> fea {
> unicast-forwarding6 {
> disable: false
> }
> }
>
> plumbing {
> mfea6 {
> disable: false
>
> interface eth0 {
> vif eth0 {
> disable: false
> }
> }
>
> interface eth1 {
> vif eth1 {
> disable: false
> }
> }
>
> interface register_vif {
> vif register_vif {
> /* Note: this vif should be always enabled */
> disable: false
> }
> }
>
> traceoptions {
> flag all {
> disable: false
> }
> }
>
> }
> }
>
> protocols {
> ospf6 0 {
> router-id: 10.10.10.11
>
> area 0.0.0.0 {
> interface eth0 {
> vif eth0 {
> }
> }
> interface eth1 {
> vif eth1 {
> }
> }
> }
>
> }
> }
>
> protocols {
> mld {
> disable: false
>
> interface eth0 {
> vif eth0 {
> disable: false
> }
> }
>
> interface eth1 {
> vif eth1 {
> disable: false
> }
> }
>
> traceoptions {
> flag all {
> disable: false
> }
> }
> }
> }
>
>
> protocols {
> pimsm6 {
> disable: false
>
> interface eth0 {
> vif eth0 {
> disable: false
> }
> }
>
> interface eth1 {
> vif eth1 {
> disable: false
> }
> }
>
> interface register_vif {
> vif register_vif {
> /* Note: this vif should be always enabled */
> disable: false
> }
> }
>
> bootstrap {
> disable: false
> cand-bsr {
> scope-zone ff00::/8 {
> cand-bsr-by-vif-name: "eth0"
> }
> }
>
> cand-rp {
> group-prefix ff00::/8 {
> cand-rp-by-vif-name: "eth0"
> }
> }
> }
>
> traceoptions {
> flag all {
> disable: false
> }
> }
> }
> }
>
>
> protocols {
> fib2mrib {
> disable: false
> }
> }
>
>
>
> Is something wrong with the config?
> I also attached it as a file in this email.
> And I put the xorg_rtrmgr output from router1 and router2 as logs in the
> attachment, too.
>
>
> The MLD seems to working, the routers notice when a host in the local
> subnet joins the multicast group ff08::7777.
>
> root at router1> show mld group
> Interface Group Source LastReported Timeout V State
> eth0 ff02::2 :: fe80::4000:aaff:fe00:1
> 228 1 E
> eth0 ff02::5 :: fe80::4000:aaff:fe00:1
> 231 1 E
> eth0 ff02::6 :: fe80::4000:aaff:fe00:1
> 10 1 E
> eth0 ff02::1:ff00:0 :: fe80::14ff:29ff:feee:1af6
> 228 1 E
> eth0 ff08::7777 :: fe80::4000:aaff:fe00:9
> 233 1 E
> eth1 ff08::7777 :: fe80::4000:aaff:fe00:5
> 245 1 E
>
>
> The neighbor routers of each router is also correct detected.
> They are connected both to each other via eth0.
>
> root at router1> show pim6 interface
> Interface State Mode V PIMstate Priority DRaddr Neighbors
> eth0 UP Sparse 2 NotDR 1 fe80::4000:aaff:fe00:1 1
> eth1 UP Sparse 2 DR 1 fe80::4000:aaff:fe00:2 0
> register_vif UP Sparse 2 DR 1 fe80::4000:aaff:fe00:0 0
> root at router1> show pim6 neighbors
> Interface DRpriority NeighborAddr V Mode Holdtime Timeout
> eth0 1 fe80::4000:aaff:fe00:1 2 Sparse 105 81
> fc00::2
>
>
> pim6 bootstrap seems also to work:
>
> root at router1> show pim6 bootstrap
> Active zones:
> BSR Pri LocalAddress Pri State Timeout SZTimeout
> fc00::2 1 fc00::1 1 Candidate 86 -1
> Expiring zones:
> BSR Pri LocalAddress Pri State Timeout SZTimeout
> Configured zones:
> BSR Pri LocalAddress Pri State Timeout SZTimeout
> fc00::1 1 fc00::1 1 Init -1 -1
>
>
> root at router1> show pim6 rps
> RP Type Pri Holdtime Timeout ActiveGroups GroupPrefix
> fc00::2 bootstrap 192 150 139 1 ff00::/8
> fc00::1 bootstrap 192 150 139 0 ff00::/8
>
>
> The mrib routes show all the routes from OSPF:
>
> root at router1> show pim6 mrib
> DestPrefix NextHopRouter VifName VifIndex MetricPref Metric
> fc00::/64 fc00::1 eth0 0 0 0
> fc00:1::/64 fc00:1::1 eth1 1 0 0
> fc00:2::/64 fe80::4000:aaff:fe00:1 eth0 0 254
> 1
> fc00:2::1/128 fe80::4000:aaff:fe00:1 eth0 0 254
> 1
> fe80::/64 fe80::4000:aaff:fe00:0 eth0 0 0
> 0
>
>
> mfc and scope has no output:
> root at router1> show pim6 mfc
> Group Source RP
> root at router1> show pim6 scope
> GroupPrefix Interface
>
>
>
> I have no more idea what causes the multicast not to work.
> I would be grateful for help!
>
> Thanks in advance
>
> Simon Schürg
>
>
>
> _______________________________________________
> Xorp-users mailing list
> Xorp-users at xorp.org
> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users
>


-- 
Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com



More information about the Xorp-users mailing list