[Xorp-users] IPv6 multicast routing get not forwarded

Ben Greear greearb at candelatech.com
Fri Feb 5 09:26:32 PST 2016


I don't have time to review your config, but you can use our LANforge
system on a Linux (Fedora-21 is suggested) machine and set up the
virtual routers there.

Please send request to support at candelatech.com if you want a demo license.

The xorp config files can be found on the disk once you use our GUI to
configure things, so you should be able to figure out what is going on
with a bit of effort.

http://www.candelatech.com/index.php

Some virtual-router examples are found here:

http://www.candelatech.com/lfgui_ice_cookbook.php

Thanks,
Ben


On 02/04/2016 08:18 PM, Simon Schürg wrote:
> I tried it just now with IPv4.
> With IPv4 everything is working fine, even multicast routing with IGMP and PIM-SM.
>
> I don't understand why it is not working with IPv6 in my setup.
>
>
> Regards,
>
> Simon
>
>> Simon Schürg <simon at schuerg.net> hat am 4. Februar 2016 um 22:08
>> geschrieben:
>>
>> Thanks for your reply Ben.
>>
>> For my tests I am using very small UDP packets with only a small string
>> in the payload and the multicast address ff08::7777 with hop limit 32.
>> I have also set the MTU to the IPv6 minimum of 1280.
>> Large UDP packets should not be the problem in my case.
>>
>> Even with only one router and two switches and hosts connected to it it
>> is not working.
>> MLD detects group memberships but the multicast packets don't get
>> forwarded.
>>
>> How does your virtual testbed look like? Are you also using Mininet
>> or IMUNES?
>> And is IPv6 multicast working in your testbed?
>>
>> I would be grateful if someone would take a look at my XORP config to
>> check if I did no mistake there.
>>
>> Regards,
>>
>> Simon
>>
>>> Ben Greear <greearb at candelatech.com> hat am 3. Februar 2016 um 18:49
>>> geschrieben:
>>>
>>> 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
>
>
>> _______________________________________________ Xorp-users mailing list
>> Xorp-users at xorp.org
>> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-users
>
>
> _______________________________________________
> 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