multicast - 14 nbma mode
NBMA_mode
通过一个小实例来分享一下
左侧为单播,右侧为DMVPN,R4 是Hub,下面两台是spoke,DMVPN部份使用什么协议没有限制,无所谓,
我们现在先要做的就是实现单播的互通,SERVER--- PC之间
1、单播
单播就不用说了吧,简单的要死,但是要注意,此时R4上面不要将F0/1口宣告到左侧的单播路由协议中,因为它是公网接口。
2、然后就是DMVPN了,
R5做为internet设备,只能提供直连的路由,所以不可以运行动态路由协议,怎么办呢?
要么是静态,要么是BGP,然后下放默认路由
这里我选择的是第一种,静态,
Ip route 0.0.0.0 0.0.0.0 45.0.0.5 56.0.0.5 57.0.0.5 三台设备上各一条
然后就是tunnel 口的配置了,
还用说吗?
得了,说一下吧
HUB
Inter tun 0 Tun mode gre multipoint Tun source 45.0.0.4 ip add 100.1.1.4 255.255.255.0 ip nhrp network-id 123 ip nhrp map dynamic ip nhrp authentitation 123
SPOKE
Inter tun 0 Tun mode gre multipoint Tun source 56.0.0.6 Ip add 100.1.1.6 255.255.255.0 Ip nhrp network-id 123 Ip nhrp map 100.1.1.4 45.0.0.4 Ip nhrp map multicast 45.0.0.4 Ip nhrp nhs 100.1.1.4 Ip nhrp authentication 123
另外一台也一样,
配置完NHRP之后就可以通信了,
然后来建立动态路由协议,
我这里选择的还是OSPF ,不知道为什么对OSPF情有独钟,
然后两个OSPF之间进行双向重分布,实现单播互通
还记得DMVPN中配置OSPF的要点吗?
1 必须是broadcast网络类型,
2 HUB 必须是DR
然后就是在R4上完成两个不同OSPF进程之间的双向重分布,以完成单播的通信
单播通了,就要配置组播了,
首先所有的设备上开启组播路由功能,
但是R5上面不可以,因为R5是internet设备,如果在现实中我们也摸不到呀~
Ip multicast-routing
3、然后是sparse-mode
在哪里接口开启,没问题吧,单播就不用说了,
需要说一下的是,在R4,R6,R7 三台设备上,DMVPN部份的接口是tunnel 接口,并不是物理接口,更不是公网地址,一定要注意
Inter tun0
Ip pim sparse-mode
都开启了之后,就要定义RP,
这次我想想用什么呢?
为了干净点儿,还省事儿点儿,我们使用BSR吧,因为我讨厌224.0.1.39和224.0.1.40那两个表。
R4的lo1 接口成为BSR和RP吧
Ip pim bsr-candidate lo 1 Ip pim rp-candidate lo 1
查看RP map 是否正常,所有的组播路由器是否都认定了R4为RP
确认完成之后让PC加组
Inter f0/0 Ip igmp join-group 224.1.1.1
什么RPT啊,*,G表项啊,都没有问题
但是有一处需要注意,就是R4的OIL
此时会有一个问题
R4从OIL发出数据,出来的时候是tunnel0 ,但是我tunnel 口下面有两个路由器呢
到底给谁呢?这时就比较尴尬了,
给R6 ??它连接收者都没有,
给R7 ,那是对的,没问题
现在看一下
可以清楚的看到,两边都收到了组播流量,只不过是只有R7这边有回复,为啥?因为只有R7这边有接收者啊~只有接收者才会回复啊~
但是我们之前一直在说,组播里面重复报文是大忌,不好,
那么现在R6上根本就不需要这些流量,是不是就浪费了,
如何来解决呢?
在DMVPN 的HUB上面,输入一条命令 nbma-mode
R4(config)#inter tun 0 R4(config-if)#ip pim nbma-mode
完成之后会有哪些变化呢?
直接看组播路由表项就知道了
可以看到,tunnel0 后面加上了一个IP地址,这就是因为NBMA网络输入了nbma-mode 之后的功劳
说白了,输入这么一条命令的目的就是把流量发给真正需要流量的人,不需要的就不给,由于这种特殊的网络架构下没有办法将接口Prune掉。
--------------------------------------------
CCIE成长之路 --- 梅利