文章目录
前言
组播是计算机网络中数据传输的一种基本方式,组播结合了单播的点对点和广播的广泛覆盖的优点,是一种高效的数据传输方式,适用于需要向多用户发送相同内容的场景。相比之下,单播适合一对一的通信,而广播则在网络上发送给所有设备,可能导致资源浪费和网络拥堵。
一、服务类型
ASM:任意组播,任意发送者都可以成为组播源。
SSM:指定源组播,用户可能仅对某些源发送组播信息,而不愿接受其他源发送的信息。
二、组播地址范围
三、IGMP版本区别
Igmp v1 224.0.0.1:向所有主机发送成员关系查询信息,周期性60s。
问题
静默离开组成员离开不送报文。超时时间130=60*2+10,造成流量浪费
查询器选举,无查询路由器选举机制
Igmp v2 224.0.0.2:对igmp v1 不足进行了改进和优化。路由器选举,IP地址小的成为查询器。
Igmp v3 224.0.0.3:支持ssm(指定源)模型需求。查询报文和成员报告报文。一个成员可以携带多个组播信息。
验证版本信息
igmp v1
加入igmp v1
[R3-GigabitEthernet0/0/1] igmp version 1
查看igmp信息
[R3-GigabitEthernet0/0/1]display igmp group
Interface group report information of VPN-Instance: public net
GigabitEthernet0/0/1(192.168.2.254):
Total 1 IGMP Group reported
Group Address Last Reporter Uptime Expires
239.1.1.1 192.168.2.2 00:03:03 00:00:34
离开igmp v1
查看igmp信息时,发现组成员离开不送报文信息还在,当超时时间130=60*2+10后再次查看才没有。
igmp v2
加入igmp v2
[R3-GigabitEthernet0/0/1] igmp version 2
查看igmp信息
[R3-GigabitEthernet0/0/1]display igmp group
Interface group report information of VPN-Instance: public net
GigabitEthernet0/0/1(192.168.2.254):
Total 1 IGMP Group reported
Group Address Last Reporter Uptime Expires
239.1.1.1 192.168.2.1 00:04:39 00:01:45
当两个终端加入组播时,IP地址小的成为查询器。
离开igmp v1
[R3-GigabitEthernet0/0/1]display igmp group
Interface group report information of VPN-Instance: public net
GigabitEthernet0/0/1(192.168.2.254):
Total 1 IGMP Group reported
Group Address Last Reporter Uptime Expires
239.1.1.1 192.168.2.2 00:07:38 00:01:49
当地址小的终端(查询器)离开时,Last Reporter立马变成了192.168.2.2
四、PIM原理与配置
Pim-dm
原理:小规模,接收者密集,周期性的“扩散—剪枝”。相互发送hello,优先级高或IP地址大的成或cost值小为DR。选举完后不能替换,只有发生故障才重新选举。
Assert竞选结束后,该网段上只存在一个下游接口,只传输一份组播报文,避免资源的浪费。
配置
在上面实验中我们创建2个组播源,分别是139.1.1.1与138.1.1.1他们的网关分别是AR1的GE0/0/0和GE0/0/2。要求AR3设备下的终端访问239.1.1.1,AR4设备下的终端访问238.1.1.1。
基础配置
- 在各路由器上运行ospf并把各接口宣告进去
- 配置组播源
配置好组播源的基础配置和组播源视频位置,然后点运行
- 配置终端设备
源,目的IP和MAC要核对好,不能出错。
配置组播协议
AR1
#
multicast routing-enable ##组播路由使能
#
#
interface GigabitEthernet0/0/0
ip address 192.168.1.254 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/1
ip address 192.168.12.1 255.255.255.0
pim dm
#
interface GigabitEthernet0/0/2
ip address 192.168.4.254 255.255.255.0
pim dm
#
AR2
## 与AC1配置相似
AC3
#
multicast routing-enable ##组播路由使能
#
#
interface GigabitEthernet0/0/0
ip address 192.168.23.3 255.255.255.0
pim dm
#
interface Gig。abitEthernet0/0/1
ip address 192.168.2.254 255.255.255.0
igmp enable ##开启igmp功能,这里默认是igmp2
#
AC4
## 与AC1配置相似
配置完成后,在AR4查看igmp接口信息
<R4>display igmp interface
Interface information of VPN-Instance: public net
GigabitEthernet0/0/1(192.168.3.254):
IGMP is enabled
Current IGMP version is 2
IGMP state: up
IGMP group policy: none
# 目前没有配置任何 IGMP 组策略。
IGMP limit: -
Value of query interval for IGMP (negotiated): -
Value of query interval for IGMP (configured): 60 s
# 配置的 IGMP 查询间隔为 60 秒。
Value of other querier timeout for IGMP: 0 s
Value of maximum query response time for IGMP: 10 s
# 最大查询响应时间设置为 10 秒。
Querier for IGMP: 192.168.3.254 (this router)
Total 1 IGMP Group reported
# 报告总共有 1 个 IGMP 组。
查看动态加入信息
[R3]display igmp group
Interface group report information of VPN-Instance: public net
GigabitEthernet0/0/1(192.168.2.254):
Total 1 IGMP Group reported
Group Address Last Reporter Uptime Expires
239.1.1.1 192.168.2.1 00:07:43 00:01:35
Total 1 IGMP Group reported:报告总共有 1 个 IGMP 组。
Last Reporter: 192.168.2.1 表示最后一个向该 IGMP 组报告的主机 IP 地址
在R2上查看邻居关系
<R2>display pim neighbor
VPN-Instance: public net
Total Number of Neighbors = 3
Neighbor Interface Uptime Expires Dr-Priority BFD-Session
192.168.12.1 GE0/0/0 00:12:28 00:01:16 1 N
192.168.23.3 GE0/0/1 00:12:23 00:01:22 1 N
192.168.24.3 GE0/0/2 00:12:21 00:01:24 1 N
在R3上查看组播路由表信息
<R3>display pim routing-table
VPN-Instance: public net
Total 1 (*, G) entry; 1 (S, G) entry
(*, 239.1.1.1) ##(*, G) 显示的是对于某个多播组的无源多播流的路由。
Protocol: pim-dm, Flag: WC EXT
UpTime: 00:13:44
Upstream interface: NULL
Upstream neighbor: NULL
RPF prime neighbor: NULL
Downstream interface(s) information: None
(192.168.1.1, 239.1.1.1) ##(S, G) 显示的是对特定源 (S) 和目标组 (G) 的多播流的路由。
Protocol: pim-dm, Flag: EXT ACT
UpTime: 00:13:48
Upstream interface: GigabitEthernet0/0/0
Upstream neighbor: 192.168.23.2
RPF prime neighbor: 192.168.23.2
Downstream interface(s) information: None
最终效果图
Pim-sm
原理:PIM-SM是一个有效且灵活的多播路由协议,适合于稀疏的网络环境,通过使用Rendezvous Point、共享树和源特定树的机制,实现了一种高效的多播流量管理和分发方式。
配置:
在上面实验中我们创建了2个组播源,分别是238.1.1.1与239.1.1.1。要求vlan 10的业务访问组播地址238.1.1.1,vlan 20的业务访问组播地址239.1.1.1,并启用IGMP Snooping记录MAC地址和其要加入的多播组。重要用户192.168.3.1始终接收发往该多播地址的流量,而不会等待接收到IGMP报告。AR2为RP。
基础配置
- 配置各接口ip并全网运行ospf。
AR1
#
sysname R1
#
interface GigabitEthernet0/0/0
ip address 10.0.112.112 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.12.1 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 10.0.13.1 255.255.255.0
#
interface GigabitEthernet1/0/0
ip address 10.0.113.113 255.255.255.0
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.0.12.0 0.0.0.255
network 10.0.13.0 0.0.0.255
network 10.0.112.0 0.0.0.255
network 10.0.113.0 0.0.0.255
#
AR2
#
sysname R2
#
interface GigabitEthernet0/0/0
ip address 10.0.12.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.2.20 255.255.255.0
#
interface GigabitEthernet1/0/0
ip address 10.0.23.2 255.255.255.0
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 10.0.2.0 0.0.0.255
network 10.0.12.0 0.0.0.255
network 10.0.23.0 0.0.0.255
AR3
#
sysname R3
#
interface GigabitEthernet0/0/0
ip address 10.0.13.3 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.3.30 255.255.255.0
#
interface GigabitEthernet2/0/0
ip address 10.0.36.3 255.255.255.0
#
interface GigabitEthernet2/0/1
ip address 10.0.23.3 255.255.255.0
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
#
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 10.0.3.0 0.0.0.255
network 10.0.13.0 0.0.0.255
network 10.0.23.0 0.0.0.255
network 10.0.36.0 0.0.0.255
#
AR6
#
sysname R6
#
interface GigabitEthernet0/0/0
ip address 10.0.36.6 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 192.168.3.254 255.255.255.0
#
interface LoopBack0
ip address 6.6.6.6 255.255.255.255
#
ospf 1 router-id 6.6.6.6
area 0.0.0.0
network 6.6.6.6 0.0.0.0
network 10.0.36.0 0.0.0.255
network 192.168.3.0 0.0.0.255
#
LSW 2
#
sysname LSW2
#
VLAN BATCH 10 100
#
interface Vlanif10
ip address 192.168.1.1 255.255.255.0
#
interface Vlanif100
ip address 10.0.2.2 255.255.255.0
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 100
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 10
#
interface LoopBack0
ip address 22.22.22.22 255.255.255.255
#
ospf 1 router-id 22.22.22.22
area 0.0.0.0
network 22.22.22.22 0.0.0.0
network 10.0.2.0 0.0.0.255
network 192.168.1.0 0.0.0.255
#
LSW 3
#
sysname LSW3
#
vlan 20 100
#
interface Vlanif20
ip address 192.168.2.254 255.255.255.0
#
interface Vlanif100
ip address 10.0.3.3 255.255.255.0
#
interface GigabitEthernet0/0/1
port link-type access
port default vlan 100
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 20
#
interface LoopBack0
ip address 33.33.33.33 255.255.255.255
#
ospf 1 router-id 33.33.33.33
area 0.0.0.0
network 33.33.33.33 0.0.0.0
network 192.168.2.0 0.0.0.255
network 10.0.3.0 0.0.0.255
#
LSW1
#
sysname S1
#
vlan batch 10 20
#
interface Ethernet0/0/1
port link-type trunk
port trunk allow-pass vlan 20
#
interface Ethernet0/0/2
port link-type trunk
port trunk allow-pass vlan 10
#
interface Ethernet0/0/3
port link-type access
port default vlan 10
#
interface Ethernet0/0/4
port link-type access
port default vlan 20
配置组播协议
AR1 AR2 AR3在各接口下配置
#
multicast routing-enable
#
interface GigabitEthernet0/0/x
pim sm
#
pim
static-rp 2.2.2.2 ##配置静态 RP 的命令
AR6
#
multicast routing-enable
#
#
interface GigabitEthernet0/0/0
pim sm
#
interface GigabitEthernet0/0/1
igmp enable
igmp static-group 238.1.1.1 ##配置该接口静态加入一个多播组,保证接收发往该多播地址的流量
igmp static-group 239.1.1.1
#
pim
static-rp 2.2.2.2
抓包查看结果
发现有两个组播地址,终端在不加入组播地址的情况下就会有组播地址流入。
LSW 2
#
multicast routing-enable
#
interface Vlanif10
igmp enable
igmp static-group 238.1.1.1
#
interface Vlanif100
pim sm
#
pim
static-rp 2.2.2.2
#
LSW 3
#
multicast routing-enable
#
interface Vlanif20
igmp enable
igmp static-group 239.1.1.1
#
interface Vlanif100
pim sm
#
pim
static-rp 2.2.2.2
#
LSW 1
#
igmp-snooping enable
#
#
vlan 10
igmp-snooping enable ##启用IGMP Snooping的交换机会记录下这个设备的MAC地址和其要加入的多播组。
vlan 20
igmp-snooping enable
#
interface Ethernet0/0/1
igmp-snooping static-router-port vlan 20 ##将 VLAN 20 中的某个端口标记为静态路由端口,以便处理 IGMP Snooping 相关的多播流量。
#
interface Ethernet0/0/2
igmp-snooping static-router-port vlan 10
#
interface Ethernet0/0/3
l2-multicast static-group group-address 238.1.1.1 vlan 10 ##用于在网络设备上静态配置 L2 多播组,使得所有到达 VLAN 10 的流量从源(发送者)发送到目标多播地址(238.1.1.1)时能够被正确处理和转发。
#
interface Ethernet0/0/4
l2-multicast static-group group-address 239.1.1.1 to 239.1.1.2 vlan 20 ##创建一个静态的L2多播组,允许多播地址范围 239.1.1.1 到 239.1.1.2 的流量在 VLAN 20 中被正确处理和转发。
#
最终效果图: