登录站点

用户名

密码

组播学习笔记-2

热9已有 79 次阅读  2012-11-08 14:21   标签:  组播 
组播在帧中继环境下的组播问题
1.注册口(DR)和源端口不能在一起,通过修改两端的DR的优先级来分离,否则不通
2.在NBMA的HB环境中,
a.S端入口和出口是一个端口,导致RPF检测失败,因此标记为P
b.一个没有加入组但已经启用了pim,按照通常的是作为P处理,但是在MA环境中没有其他设备收不到,会导致上游被P
需要在在HUB端修改为ip pim nbma-mode
c.H端启用是默认网络环境FR的OSPF,下一跳是对端的IP,会导致RPF检测失败,需要修改HUB端的网络环境为PTMP
一些不需要数据的spoke会向上裁剪掉端口,而环境是NBMA,其他spoke是不知道被裁剪掉的,HUB端收到后裁剪掉,在PIng时会是好是坏,也正是这个原因导致其他spoke不正常,
3.EIGRP默认开启的next-hop-self,正常不用修改的,如果被No掉的话需要启动


组播的负载均衡
由于存在RPF检测的存在,通常方法无法实现负载均衡,因此需要利用Tunnel技术来实现中间路径的穿越,
步骤1,建立Tunnel
步骤2,在Tunnel启用PIM
步骤3,使用静态mroute解决RPF检测失败问题
利用隧道技术,使组播封装在单播数据包中来实现,期间中间路径设备不需要启用组播协议,也是一个穿越
完成后查看mrouter发现
解决RPF检测失败,使用静态mroute路由
ip mroute y x tunnel 0
show ip mroute static


RIP与Tunnel问题
由于底部是RIP,由原有到达对端lo口RIP跳数是2,而现在tunnel建立后为1,导致Tunnel会因封装问题而失败
解决方法
1.pass掉tunnel端口,
2.offset-list改大其中一边的Metric

检测mroute工具
mtracert 
mstat


组播过滤
控制组播路由表大小
ip multicast route-limit x > 限制组播路由表接收为x条上限
限制IGMPreport
ip igmp report limit x except y> 防止DOS攻击,限制report数量为x,可选excopt是排除y的ACL不受限制

组过滤方法
1.路由器端设置
在路由器的最后一跳设备进行设置,在端面对组成员的接口来过滤组
1(sourse)---2---3(setting)---4(group)
ip igmp access-group x 指定ACL可加入或不可以加入的组,以ACL为准
2.交换机上设置
a.定义IGMP profile
ip igmp profile 1
permit
range 224.1.1.1 224.1.1.100
默认deny
2.接口下应用
int\ip igmp filter 1

交换机中限定组数量
ip igmp max-group x deny/replace
deny 即超过后全部拒接
replace即超过后替换之前已加入的

大范围组播控制
ip multicast ttl-threshold x, 当大于x时才可以被转发,否则就不再转发
计算方式:源不计算其中,第一台转发设备开始计算

组播边界
指定组播边界,用ACL来指定哪些可以走,哪些不能走
int\ip multicast boundary x
ACL允许才能通过

RP和组限制
不管是静态RP还是动态的,后面有个group-list,即指定的组可以用此RP

限定map agent接收那个RP的announce
在map agent上设置ip pim rp-announce-filter rp-list x group-list y
rp-list只接受指定RP,ACL中被Permit被拒接,
group-list组地址
而两者一起使用,RPlist和group-list都匹配才方向

限定信息,很多信息
int\ip multicast limit

组播流量速率限制
注意方向问题
int\ip multicast rate-limit in/out 


MBGP
多协议BGP,其中一个地址族为组播地址族,这个地址族可以成为组播BGP
他可以单独建立一条独立的组播的BGP邻居,使用MBGP来检测,从而代替传统RPF的单播检测,可使得单播组播在BGP多线路上分离可以实现

建立组播邻居
router bgp x
nei x remote y
address-family ipv4 multicast
nei x active

查看组播BGP邻居关系
show ipv4 bgp multicast sum

通告源,注意,需要在组播BGP地址族中通告
address-family ipv4 multicast
net x mask y
同样的,需要PING同组播地址,而返回的是单播地址,需要在单播中添加源
address-family ipv4 un
net x mask y


MSDP
解决2个问题
1.组播源和目的地址不再一个AS中
2.每个AS不希望使用其他AS中RP,需要使用MSDP来相互沟通

MSDP使用TCP 639端口,由于较低的IP地址向较高的IP地址发起连接建立邻居
通常在RP之间建立,但其他也可以,只要通过RP即可
当建立639完成后,当源向本地RP发送数据,本地RP向邻居RP发送SA消息(源激活消息,包含组播源地址,组地址,首跳RP地址)SA消息最终发送给有组成员的RP,有组成员的RP最后找到首跳RP,从而建立转发路径
邻居RP收到后,缓存信息并查找接收者,如有接收者,则邻居RP向源RP注册,形成RPT,最后切换到SPT
ip msdp cache-sa-state:默认开启缓存
ip msdp sa-request:在没有SA的情况或对方不支持缓存时,直接发送request信息(默认60秒轮询一次)

MSDP建立
在MSDP中,他利用AS号码进行防环,
MSDP通常会用在BGP环境中,先找组播BGP,再找单播BGP
如果没有使用BGP,则需要跳过RPF检测,需要使用ip msdp default-peer x,但前提还是需要ip msdp peer x存在
此命令只用于末节或无BGP环境
查看show ip msdp peer x
ip msdp peer x > 如果有路由支持,可以直接建立邻居,否则需要逐跳建立,默认是物理端口
ip msdp peer x connect-source INT > 更改更新源

MSDP的sa过滤
ip msdp redistribute 过滤本地发起的SA消息
ip msdp saf-filter in/out 过滤所有包含本地和转发的SA消息
-list 是扩展ACL,从源到组
ip msdp default-peer 不执行RPF检测,即可接收sa消息msdp对等体

Anycast中的MSDP
MSPD建立时,他会利用RP来防环,如果有相同的RP地址在anycast环境中,是不会收取对方过来的sa消息
需要在peer之间originator-id int来替代RP地址
而sa信息中包含源RP地址(这里是指originator id)需要通告给后面的设备,后面设备需要可达到他,因此需要将originator id的地址通告进BGP,否则后面设备将收不到MSDP信息

SSM特定源组播
在sparse-mode内建立一个和源直接通讯,但前提需要知道源在那。
SSM无需RP,SSM使用保留地址段232/8的地址

SSM加组
ip igmp join-group x source y > 加入x组,指定源为y

沿途所有设备路径启用SSM
ip pim ssm default/acl

末跳设备面向组的端口启用IGMPv3

ssm-map
当有成员加入时候,直接指定源,而无需在接口中添加
ip igmp ssm-map x y > 指定x的ACL地址加入y源

开启SSM支持应用
ip igmp v3lite
ip urd

IPV6组播
大体和IPV4差不多
组播地址:以FF开头,
后第一位0永久,1临时
后第二位1节点本地,2链路本地,等等

二层转换
前16为固定,后32从IPV6后32位转来

MLD,multicast listen discovery,等于IGMP
MLDv1=IGMPv2, asm only
MLDv2=IGMPv3, ssm+asm

M
配置
ipv6 multicast-routing > 启用IPV6组播
int\ipv6 mld join-group x > 加组
ipv6 pim rp-address > 静态指定RP
ipv6 pim bsr rp announced rp x group-list > 选举RP
ipv6 pim bsr canditidate bsr x > 选举BSR
分享 举报

发表评论 评论 (4 个评论)

涂鸦板