Check Igmp Groups With Vrfs
The IGMP protocol can be used to control the delivery of IP multicasts. This protocol prevents hosts on a local network from receiving traffic for a multicast group they have not explicitly joined. Therefore, instead of flooding multicast traffic to all the ports in a broadcast domain (or VLAN), multicast traffic will only be forwarded to the links that have requested them.
Test IGMP Groups With VRFs
Description
The following scenario shows how to configure DUT0 to forward the multicast traffic generated by DUT1 to DUT2, when the latter has been previously added to the multicast group and using VRFs
Scenario
Step 1: Set the following configuration in DUT0
:
set interfaces ethernet eth0 vif 101 address 10.0.0.1/24 set interfaces ethernet eth0 vif 101 vrf RED set interfaces ethernet eth1 vif 102 address 20.0.0.1/24 set interfaces ethernet eth1 vif 102 vrf RED set system vrf RED
Step 2: Set the following configuration in DUT1
:
set interfaces ethernet eth0 vif 101 address 10.0.0.2/24 set interfaces ethernet eth0 vif 101 traffic policy out TTL set traffic policy TTL rule 1 set ttl 64 set protocols static route 224.0.0.0/4 interface eth0.101
Step 3: Set the following configuration in DUT2
:
set interfaces ethernet eth0 vif 102 address 20.0.0.2/24
Step 4: Set the following configuration in DUT0
:
set interfaces ethernet eth0 vif 101 ip pim set interfaces ethernet eth1 vif 102 ip igmp query-interval 24 set interfaces ethernet eth1 vif 102 ip pim set protocols vrf RED pim rp address 10.0.0.1 group 224.0.0.0/4
Note
Initially, DUT0 has no information about multicast group 224.0.55.55, since DUT2 has not requested to join that group yet.
Step 5: Run command interfaces ethernet eth1 vif 102 ip igmp show statistics json
at DUT0
and expect this output:
Show output
{ "eth1.102":{ "name":"eth1.102", "queryV1":0, "queryV2":0, "queryV3":0, "leaveV2":0, "reportV1":0, "reportV2":0, "reportV3":6, "mtraceResponse":0, "mtraceRequest":0, "unsupported":0, "totalReceivedMessages":6, "peakGroups":0, "totalGroups":0, "totalSourceGroups":0, "joinsFailed":0, "joinsSent":4, "generalQueriesSent":1, "groupQueriesSent":0 } }
Step 6: Run command protocols vrf RED igmp show groups
at DUT0
and check if output contains the following tokens:
224.0.55.55
Show output
Total IGMP groups: 0 Watermark warn limit(Not Set): 0 Interface Group Mode Timer Srcs V Uptime
Step 7: Run command protocols vrf RED ip show multicast route
at DUT0
and check if output does not match the following regular expressions:
[*]\s+224.0.55.55\s+SC\s+IGMPShow output
IP Multicast Routing Table Flags: S - Sparse, C - Connected, P - Pruned R - SGRpt Pruned, F - Register flag, T - SPT-bit set Source Group Flags Proto Input Output TTL Uptime
Note
So, if DUT1 generates multicast traffic for group 224.0.55.55, DUT0 should not forward it to DUT2.
Step 8: Run command traffic dump monitor interface eth1.102
at DUT0
.
Step 9: Run command monitor test connection client 224.0.55.55 1234 udp source-port 1235
at DUT1
.
Note
After DUT2 requests to join multicast group 224.0.55.55, DUT0 should have information about that group.
Step 10: Run command monitor test connection server 1234 udp local-address 224.0.55.55 local-interface eth0.102 multicast
at DUT2
.
Step 11: Run command interfaces ethernet eth1 vif 102 ip igmp show statistics json
at DUT0
and expect this output:
Show output
{ "eth1.102":{ "name":"eth1.102", "queryV1":0, "queryV2":0, "queryV3":0, "leaveV2":0, "reportV1":0, "reportV2":0, "reportV3":16, "mtraceResponse":0, "mtraceRequest":0, "unsupported":0, "totalReceivedMessages":16, "peakGroups":1, "totalGroups":1, "totalSourceGroups":0, "joinsFailed":0, "joinsSent":4, "generalQueriesSent":2, "groupQueriesSent":0 } }
Step 12: Run command protocols vrf RED igmp show groups
at DUT0
and check if output contains the following tokens:
224.0.55.55
Show output
Total IGMP groups: 1 Watermark warn limit(Not Set): 0 Interface Group Mode Timer Srcs V Uptime eth1.102 224.0.55.55 EXCL 00:00:57 1 3 00:00:03
Step 13: Run command protocols vrf RED ip show multicast route
at DUT0
and check if output matches the following regular expressions:
[*]\s+224.0.55.55\s+SC\s+IGMPShow output
IP Multicast Routing Table Flags: S - Sparse, C - Connected, P - Pruned R - SGRpt Pruned, F - Register flag, T - SPT-bit set Source Group Flags Proto Input Output TTL Uptime * 224.0.55.55 SC IGMP eth0.101 pimreg1011 1 00:00:03 IGMP eth1.102 1 10.0.0.2 224.0.55.55 SFT PIM eth0.101 pimreg1011 1 00:00:13 STAR eth1.102 1
Note
And consequently, if DUT1 generates multicast traffic for group 224.0.55.55, DUT0 should forward it to DUT2, and this traffic should be received by DUT2.
Step 14: Run command traffic dump monitor interface eth1.102
at DUT0
.
Step 15: Run command monitor test connection client 224.0.55.55 1234 udp source-port 1235
at DUT1
.