I'm setting up an MPLS carrier with VPNs in GNS3, using Cisco 7200 routers.
Exact version I'm using is C7200-ADVIPSERVICESK9-M Version 15.2(4)S5
, but I'm willing to upgrade/change if that's needed.
On IPv4 setting up an MPLS carrier carrying multicast is pretty simple. All you need to do is set up the PIM peering between PE and CE, and then enable address-family ipv4 mdt
on the PE-PE iBGP peering.
But how do I do the same thing for carrying IPv6 multicast inside a VPN?
I've tried enabling anything ipv6 & multicast related in the PE-PE iBGP session, but it doesn't appear to work. The two PE routers can only see (with show ipv6 mroute vrf SUB
) the multicast groups that are on the CE routers attached directly to them.
PE config:
vrf definition SUB
rd 1:2
address-family ipv4
mdt default 232.2.0.1
mdt data 232.2.1.0 0.0.0.255 threshold 1
route-target both 1:2
address-family ipv6
mdt default 232.2.0.1
mdt data 232.2.6.0 0.0.0.255
route-target both 1:2
ipv6 multicast-routing
ipv6 multicast-routing vrf SUB
interface Ethernet3/0
description To CE
vrf forwarding SUB
ip address 12.0.13.1 255.255.255.0
ip pim sparse-mode
ipv6 address 2001:12:13::1/64
router bgp 1
neigh 1.0.0.2 remote-as 1
address-family ipv4
neigh 1.0.0.2 activate
neigh 1.0.0.2 send-community both
address-family vpnv4
neigh 1.0.0.2 activate
neigh 1.0.0.2 send-community both
address-family ipv4 mdt
neigh 1.0.0.2 activate
neigh 1.0.0.2 send-community both
address-family vpnv6
neigh 1.0.0.2 activate
neigh 1.0.0.2 send-community both
address-family vpnv6 multicast
neigh 1.0.0.2 activate
neigh 1.0.0.2 send-community both
address-family ipv6 mvpn
neigh 1.0.0.2 activate
neigh 1.0.0.2 send-community both
address-family ipv4 vrf SUB
neigh 12.0.13.3 remote-as 2
neigh 12.0.13.3 activate
neigh 12.0.13.3 send-community both
neigh 12.0.13.3 remote-as 2
address-family ipv6 vrf SUB
neigh 2001:12:13::3 remote-as 2
neigh 2001:12:13::3 activate
neigh 2001:12:13::3 send-community both
I tried:
- Adding
mdt overlay use-bgp
to the VRF definition. - Enabling all of the ipv6 bgp iBGP address families that I could
On the CE router I have joined groups using:
interface Loopback0
ipv6 mld join-group FF35:12::1 2001:2::4
ipv6 mld join-group FF38:20:2001:2::3 2001:2::4
(where 2001:2::4
is the remote CE router)
The equivalent ipv6 mld join-group
but with a source of the local PE works fine, and the PE router can reach the multicast address. The directly connected PE-CE pair agrees in show ipv6 mroute
/ show ipv6 mroute vrf SUB
, so communication works there. That's why I suspect the iBGP configuration.
On the closest PE router I see:
R1# show ipv6 mroute vrf SUB FF38:20:2001:2::3
(2001:2::4, FF38:20:2001:2::3), 00:04:27/00:03:07, flags: ST
Incoming interface: Tunnel2
RPF nbr: ::FFFF:1.0.0.2
Immediate Outgoing interface list:
Ethernet3/0, Forward, 00:04:27/00:03:07
What am I missing? How do I share multicast routing information over iBGP, like how MDT address family does it for IPv4?
I don't want to set up GRE tunnels, since that wastes resources in the carrier.
8
) rather than a Site-Local scope (5
).. Also, your second 16-bit field is incorrect as the next eight bits are Reserved and must be0
. Then, because you are using Prefix-based multicast (Flags =3
), you need the next eight bits as the Prefix Length, then 64 bits for the Prefix, and the final 32 bits for the Group ID. IPv6 multicast is very complex compared to IPv4 multicast.mdt default ff38::33
or anything IPv6 like it, it seems. For the address I triedff38::3
now, and it doesn't seem to work better. Also triedff18::3
in case the "without prefix information" should help.ff38:20:2001:2::3
, but it's also not propagating over the MPLS carrier's iBGP.ff38:20:2001:2::3
is putting a value other than0
in the Reserved eight bits following theff38
.