基础理论:
IGMP是因特网组管理协议,是用来管理组播接收者的, 运行在最后一跳路由器和接收者之间,只要有接收者存在的地方,都需要运行IGMP协议,
IGMP报文:
实验环境:
实验步骤:
1,配置IP地址
2,在R1 -2-3 上开启组播功能和PIM , 使用PIM DM 模式,需要使用PIM的DR作为查询器
3,在R 2 和R3 连接成员接口开启IGMPv1
4,PC加入组播组,验证R1 -23 的IGMP表项
5,验证:通过命令查看查询器
配置:
1,根据拓扑配置IP地址,三台路由器都运行OSPF 1 , 所有接口宣告进area 0
信源和接收者都加组224.1.1.1, 所有接口启用PIM DM 模式, R2-3连接接收者的接口启用IGMPv1
----------------------------------------------------------------------------------------------------------------
IGMPv1
R1 :接口配置IP地址并启用PIM DM 模式
interface GigabitEthernet0/0/0
ip address 10.1.1.254 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/1
ip address 192.168.1.254 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/2
ip address 192.168.2.254 255.255.255.0
pim dm
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
ospf 1 router-id 1.1.1.1 -------------OSPF 部分全部宣告进OSPF 1 area 0
0 area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.1.1.254 0.0.0.0
network 192.168.1.254 0.0.0.0
network 192.168.2.254 0.0.0.0
-----------------------------------------------------------------------
R2:和R3 配置相同, 只有IP地址部分配置不一样,
interface GigabitEthernet0/0/0
ip address 192.168.1.1 255.255.255.0
pim dm----------接口启用PIM DM 模式
#
interface GigabitEthernet0/0/1
ip address 192.168.3.253 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.3.252---------配置vrrp
pim dm
igmp enable-----启用IGMP
igmp version 1---启用版本1
#
interface GigabitEthernet0/0/2
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
ospf 1 router-id 2.2.2.2 ---启用OSPF
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 192.168.1.1 0.0.0.0
network 192.168.3.253 0.0.0.0
----------------------------------------------------------
R3:
interface GigabitEthernet0/0/0
ip address 192.168.2.1 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/1
ip address 192.168.3.254 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.3.252
pim dm
igmp enable
igmp version 1
#
interface GigabitEthernet0/0/2
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 192.168.2.1 0.0.0.0
network 192.168.3.254 0.0.0.0
---------------------------------------------------------------
信源部分配置:
接收者部分配置, 接收者配置都是一样的,
------------------------------------------------------------------------
当我们在信源点击运行后,, 在接收者点击启用VLC后, 信源的视频就开始播放了,接收者也开始播放视频了,实验完成
--------------------------------------------------------------------------
查看IGMP 接口信息, 查看查询者
[R2]display igmp interface GigabitEthernet 0/0/1
Interface information of VPN-Instance: public net
GigabitEthernet0/0/1): -----------接口地址
IGMP is enabled--------接口已经启用IGMP
Current IGMP version is 1 目前使用版本1
IGMP state: up
IGMP group policy: none
IGMP limit: -
Value of query interval for IGMP (negotiated): -
Value of query interval for IGMP (configured): 60 s--IGMP 查询60S一次
Value of other querier timeout for IGMP: 0 s
Value of maximum query response time for IGMP: -
Querier for IGMP: 192.168.3.254 -------查询者选举, 比IP地址, 比大, R3是查询者
Total 1 IGMP Group reported-----收到的加组信息中, 只有一个组
---------------------------------------------------------------------------
[R2]display igmp group
Interface group report information of VPN-Instance: public net
GigabitEthernet0/0/1):
Total 1 IGMP Group reported
Group Address Last Reporter Uptime Expires
224.1.1.1 192.168.3.6 00:37:49 00:01:48
可以看到目前我们运行的是IGMP v1 , 也有last reporter,是PC6, 是使用PC6 的IP地址来标识的
----------------------------------------------------------------------------------------
查看PIM 路由表项
[R2]display pim routing-table
VPN-Instance: public net
Total 1 (*, G) entry; 1 (S, G) entry
(*, 224.1.1.1)
Protocol: pim-dm, Flag: WC
UpTime: 00:31:57
Upstream interface: NULL
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information:
Total number of downstreams: 1
1: GigabitEthernet0/0/1
Protocol: igmp, UpTime: 00:31:57, Expires: never
, 224.1.1.1)-----------当前有一股数据流, 源是10.1.1.1, 组播组是224.1.1.1
Protocol: pim-dm, Flag: ACT ------运行的协议是PIM, 模式是DM, flag是ACT
UpTime: 00:00:14
Upstream interface: GigabitEthernet0/0/0
Upstream neighbor: 192.168.1.254----上游接口, 是连接上游的R1 的接口
RPF prime neighbor: 192.168.1.254----RPF 接口,
Downstream interface(s) information: None
---------------------------------------------------------------------
抓包查看流量信息
-------------------------------------------------------------------------------------------
查看PIM 邻居
[R2]display pim neighbor
VPN-Instance: public net
Total Number of Neighbors = 2
Neighbor Interface Uptime Expires Dr-Priority BFD-Session
192.168.1.254 GE0/0/0 01:34:48 00:01:27 1 N
192.168.3.254 GE0/0/1 01:34:10 00:01:35 1
修改pim DR优先级, 目前R3 是查询者, 我们修改R2 为查询者,
接口DR优先级默认是1 , 我们修改R2 G0/0/1 接口PIM DR优先级为2
[R2-GigabitEthernet0/0/1]pim hello-option dr-priority 2
可以看到修改R2 的接口DR优先级之后, IGMP查询者修改为了R2, 之前是R3 的,
这里验证了IGMPv1 是使用PIM 的DR 作为查询者的,PIM DR优先级一致的情况下, 比较PIM路由器接口IP地址,比大, IP地址大的选举为为DR, 作为查询者,, 如果优先级不一致, 优先级比较DR优先级, 默认值是1 ,比大,
---------------------------------------------------------------------------------------------
IGMPv2
接下来我们把IGMP 版本切换为版本2, 所有启用IGMP的地方都切换为版本2
[R3]interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1]igmp version 2
通过抓包, 我们抓到了一个查询和3个应答,
可以看到查询的源地址是查询者, 目的地址2层地址是组播MAC, 3层地址是要加入的这个组
离组报文源地址是接收者地址, 目的地址是离开的这个组播组地址
--------------------------------------------------------------------------------
现在我们验证查询者选举情况
我们把PIM DR 优先级改回默认值1, 发现 R2 是查询者,这里是比IP地址, 比小,
为了证明IGMPv2 不是使用PIM DR 做查询器, 我们把R3的PIM DR优先级改大
[R3-GigabitEthernet0/0/1]pim hello-option dr-priority 2
可以看到R3 PIM DR优先级是2,比R2 PIM DR优先级默认值1还大,如果是使用PIM DR做查询者,那么,查询者就应该是R3, 但是R2 是查询者, 说明这里IGMPv2 不是使用PIM DR做查询者,是使用IGMP自己的选举机制, 选举查询者, 这里是比较IP地址, 比小,验证完毕。
-------------------------------------------------------------------------------------------
IGMP snooping
由于交换机是2层设备, 不能学习组播的arp表项, 也不能识别3层报头, 所以, 数据转发只能泛洪,对设备的转发资源和带宽比较浪费, 为了解决这个问题, 开发了IGMP snooping
这个技术是应用在交换机上的,
[SW1]multicast routing-enable 启用组播路由功能
[SW1]igmp-snooping enable 启用igmp-snoop ing
[SW1-vlan1]igmp-snooping enable 在vlan内启用
查看这个vlan内的路由器接口
查看关于IGMP-snoop ing的接口信息
今天的分享就到这里了!