One of the items on the current CCIE R&S blueprint is IPv6 multicast. Many people are concerned about this topic, but they really shouldn’t be. Here’s why.
If you know and understand multicast in IPv4 networks, chances are that you know and understand it in IPv6. Yes, there are some notable differences and added complexities in more advanced configurations, but on a basic level, we’re dealing with the same old IP multicast. Except there’s no dense-mode. Let’s take a look at the practical example.

In this network, we have very basic IPv6 connectivity. Between all the routers, we have simple OSPFv3 running. On top of those links, each router has Loopback0 with the address 2001:DB8::X, where X is the router number. In the entire network, we have full IPv6 unicast reachability. To test that, we’ll quickly run the TCL script below from R9. It should work from any other router, too.
foreach mip {
2001:DB8::2
2001:DB8::4
2001:DB8::5
2001:DB8::6
2001:DB8::9
2001:DB8:52::2
2001:DB8:52::5
2001:DB8:54::4
2001:DB8:54::5
2001:DB8:96::6
2001:DB8:96::9
2001:DB8:642::2
2001:DB8:642::4
2001:DB8:642::6
} { ping $mip source Loopback0 repeat 3 timeout 1 }
Let’s see it in action.
R9:
R9#tclsh R9(tcl)#foreach mip { +>(tcl)# 2001:DB8::2 +>(tcl)# 2001:DB8::4 +>(tcl)# 2001:DB8::5 +>(tcl)# 2001:DB8::6 +>(tcl)# 2001:DB8::9 +>(tcl)# 2001:DB8:52::2 +>(tcl)# 2001:DB8:52::5 +>(tcl)# 2001:DB8:54::4 +>(tcl)# 2001:DB8:54::5 +>(tcl)# 2001:DB8:96::6 +>(tcl)# 2001:DB8:96::9 +>(tcl)# 2001:DB8:642::2 +>(tcl)# 2001:DB8:642::4 +>(tcl)# 2001:DB8:642::6 +>(tcl)#} { ping $mip source Loopback0 repeat 3 timeout 1 } Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8::2, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 4/4/4 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8::4, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 12/13/16 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8::5, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 4/6/12 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8::6, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 0/1/4 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8::9, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 0/0/0 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8:52::2, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 4/4/4 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8:52::5, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 4/9/12 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8:54::4, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 12/14/16 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8:54::5, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 8/12/16 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8:96::6, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 0/1/4 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8:96::9, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 0/0/0 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8:642::2, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 4/4/4 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8:642::4, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 16/16/16 ms Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to 2001:DB8:642::6, timeout is 1 seconds: Packet sent with a source address of 2001:DB8::9 !!! Success rate is 100 percent (3/3), round-trip min/avg/max = 0/1/4 ms
This is very important step in configuring any multicast network. Prerequisite for multicast is perfectly working unicast routing. We can see that in place, so, let’s see what we need to do to make basic IPv6 multicast routing working.
Configuring IPv6 Multicast Routing
Before we proceed, let’s write a quick checklist. This checklist could easily be used for IPv4, as well.
- Working unicast routing
- Enable multicast routing on routers
- Enable PIM on appropriate interfaces
- Configure RP
- Make sure the configuration works
Let’s continue with our checklist. Enabling multicast routing on all routers is a matter of one command. To enable IPv6 multicast routing, we use “ipv6 multicast-routing”. Now, what happens next is magical. When we do that, PIM will be enabled on all IPv6 enabled interfaces! So, we don’t even have to worry about step 3! Let’s do all that and run some very basic verification.
R2, R4, R5, R6, R9:
ipv6 multicast-routing
R2:
R2#show ipv6 pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, G - GenID Capable
Neighbor Address Interface Uptime Expires Mode DR pri
FE80::6 Serial0/1/0 00:00:25 00:01:20 B G DR 1
FE80::5 Serial0/2/0 00:00:25 00:01:20 B G DR 1
R4:
R4#show ipv6 pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, G - GenID Capable
Neighbor Address Interface Uptime Expires Mode DR pri
FE80::6 Serial0/0/0 00:00:25 00:01:20 B G DR 1
FE80::5 Serial0/1/0 00:00:25 00:01:19 B G DR 1
R5:
R5#show ipv6 pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, G - GenID Capable
Neighbor Address Interface Uptime Expires Mode DR pri
FE80::4 Serial0/0/0 00:00:25 00:01:20 B G 1
FE80::2 Serial0/2/0 00:00:24 00:01:20 B G 1
R6:
R6#show ipv6 pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, G - GenID Capable
Neighbor Address Interface Uptime Expires Mode DR pri
FE80::2 Serial0/1/0 00:00:25 00:01:20 B G 1
FE80::4 Serial0/1/0 00:00:25 00:01:20 B G 1
FE80::9 Serial0/2/0 00:00:24 00:01:20 B G DR 1
R9:
R9#show ipv6 pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, G - GenID Capable
Neighbor Address Interface Uptime Expires Mode DR pri
FE80::6 Serial0/2/0 00:00:25 00:01:21 B G 1
Next, let’s add RP to our network. Let’s use R6′s Loopback0 for that.
R2, R4, R5, R6, R9:
ipv6 pim rp-address 2001:db8::6
Next, let’s make R5 join FF04::5 and let’s run the ping test from R9. In the IPv4 world, we would use “ip igmp join-group” command. IGMP-equivalent in IPv6 is called MLD. Otherwise, command is exactly the same. Let’s take a look.
R5:
interface Loopback0 ipv6 mld join-group ff04::5 !
Let’s ping FF04::5 from R9.
R9:
R9#ping ff04::5 repeat 3 timeout 1 Output Interface: Serial0/2/0 Type escape sequence to abort. Sending 3, 100-byte ICMP Echos to FF04::5, timeout is 1 seconds: Packet sent with a source address of 2001:DB8:96::9 Reply to request 0 received from 2001:DB8::5, 8 ms Reply to request 1 received from 2001:DB8::5, 8 ms Reply to request 2 received from 2001:DB8::5, 4 ms Success rate is 100 percent (3/3), round-trip min/avg/max = 4/6/8 ms 3 multicast replies and 0 errors.
There we go – very, very basic IPv6 multicast network, fully operational!
–
Marko Milivojevic – CCIE #18427
Senior Technical Instructor – IPexpert
Join our Online Study List
Tags: CCIE Routing & Switching, IPv6, multicast








hello, I have a question and I hope to help me.
Imagine you put a server to stream in R9 broadcasts in FF04:: 5 and connected to R5 two VLANs, as I make just one of those receiving the streamig if I put the two to hear the same thing.
Greetings and thanks
Enrique,
I didn’t fully understand the question… If you connect two VLANs to R5 and only one of them is supposed to receive the traffic, only the one that needs the traffic will receive it. That’s how multicast works, regardless of IPv4 or IPv6.
Perhaps you could clarify the questions a little bit…
This is a great example of IPv6 multicast. Thanks!