OSPF的网络类型
1.P2P:当OSPF运行在PPP,HDLC的环境下的时候,OSPF默认工作在P2P环境下
查看OSPF的网络类型:<AR1>display ospf interface XXX
2.广播型:两台或两台以上的路由器通过共享介质互联,当OSPF运行在以太网的环境下的时候,OSPF默认工作在广播环境下
3.NBMA:当OSPF运行在FR,X.25,ATM..的环境下的时候,OSPF默认工作在NBMA环境下,该环境下不支持广播,组播,因此只能手动建立OSPF的邻居关系
修改OSPF的网络类型:[AR1-Serial4/0/0]ospf network-type nbma/p2p/broadcast/p2mp
注意:OSPF的网络类型是可以根据实际情况手动修改的,不一定和链路层协议100%有关
4.P2MP:点到多点,相当于多个点到点,OSPF只能手动设置为P2MP
OSPF的度量值的运算公式:cost=参考带宽(默认100M)/接口的实际带宽
OSPF的Cost的计算:沿着路由传播的方向,累加入站接口的开销值
修改Cost的方法:1.直接在接口下修改cost
命令:[AR3-GigabitEthernet0/0/0]ospf cost 100(推荐)
2.修改参考带宽
命令:[AR3-ospf-1]bandwidth-reference 2000
注意:需要在所有的OSPF路由器上修改参考带宽,配置量很大,一般不推荐这种做法
OSPF的更新:1.触发更新
2.周期更新:OSPF每1800s刷新一次LSDB,一个LSA通常情况下在1800s内会被刷新,最多一个LSA在LSDB中的存活时间不能超过3600s
DR/BDR:主要为了减少OSPF的邻接关系数量,降低不必要的LSA传播,只在MA网络中需要选举DR/BDR,P2P/P2MP环境中,是不需要选举DR/BDR的
DR/BDR的选举规则:
1.比较接口的OSPF优先级,优先级最大的成为DR,次大的成为BDR
2.比较路由器的RID,RID最大的成为DR,次大的成为BDR
注意:OSPF的DR/BDR一旦选定,则无法被抢占
修改OSPF的接口优先级:[AR3-GigabitEthernet0/0/0]ospf dr-priority 2
修改完OSPF的接口优先级后,需要重启OSPF进程:<AR3>reset ospf process
1类LSA:Router-LSA,是OSPF中最基本的LSA,只要路由器运行OSPF,都会产生1类LSA,1类LSA用来描述网络的拓扑信息和直连网络的路由信息,只能在一个区域内传播
2类LSA:Network-LSA,在MA网络中,由DR产生,用来描述MA网络的拓扑信息和路由信息的LSA,2类LSA只能在一个区域内传播
查看OSPF的LSDB:<AR3>dis ospf lsdb
查看OSPF的LSA的具体内容:<AR3>dis ospf lsdb router/network LSID
SPF算法:
1.由于同一个区域内的路由器的LSDB是相同的,因此每台路由器计算出来的SPF树的形状也是相同的
2.每台路由器都将自己作为SPF树的树根
OSPF的区域划分:OSPF必须保证骨干区域和非骨干区域直接相连
ABR:区域边界路由器,连接骨干区域和非骨干区域的路由器
3类LSA:Network-Summary LSA,由ABR产生,用来传递OSPF区域之间的路由信息
域间路由的计算:由ABR产生的3类LSA,结合区域内产生的1类/2类LSA共同计算出路由
域间路由的防环:OSPF必须保证骨干区域和非骨干区域直接相连
VLink:虚连接,主要用来解决不规范的OSPF区域设计问题,Vlink主要是在两个边界设备之间建立一个永远属于区域0的OSPF邻居
Vlink的配置:[AR1-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
查看Vlink:<AR2>dis ospf vlink
5类LSA:AS-External LSA,由ASBR产生,用来传递OSPF的外部路由,可以在整个
OSPF的路由域内传播
OSPF的外部路由在路由表中以O_ASE的形式表现出来,路由优先级为150
查看OSPF的5类LSA:display ospf lsdb ase LSID
OSPF的外部类型:
外部类型1:OSPF外部路由的度量值=AS外部度量+AS内部度量
外部类型2:OSPF外部路由的度量值=AS外部度量(默认)
4类LSA:ASBR-Summary LSA,由ABR产生,用来描述ASBR的位置
外部路由的计算:
1.本地路由器和ASBR在同一个区域:5类LSA+1/2类LSA
2.本地路由器和ASBR不在同一个区域:5类LSA+4类LSA+1/2类LSA
Forwarding Address:转发地址,又称为FA地址,主要是为了解决外部路由的次
优路径的问题
FA=x.x.x.x:不管路由器从什么地方收到5类LSA,外部路由的下一跳都是
x.x.x.x
FA=0.0.0.0:外部路由的下一跳指向ASBR
x.x.x.x是在ASBR上看到的外部路由的下一跳IP地址,FA地址不为0的条件是:
1.x.x.x.x所在地址段不能是P2P或者P2MP
2.x.x.x.x所在地址段必须参与进OSPF
3.x.x.x.x所在地址段不能被设置为静默接口
以上条件全部满足,则FA=x.x.x.x,否则,FA=0.0.0.0
Stub区域:末节区域,一旦某个区域被设置为Stub区域,则该区域不允许存在5类LSA,也不允许存在ASBR
配置Stub区域:[AR1-ospf-1-area-0.0.0.1]stub
注意:
1.一旦某个路由器被配置为stub,则该区域内的所有路由器必须都被配置为Stub,否则邻居关系无法建立
2.Stub区域会自动的产生一条OSPF的默认路由,来引导Stub区域内的数据去往OSPF的外部
Totally Stub区域:完全末节区域,该区域在Stub区域的基础之上,进一步过滤了3
类LSA
配置:在ABR上:[AR2-ospf-1-area-0.0.0.1]stub no-summary
完全末节区域也会自动的产生一个默认路由,该默认路由引导区域内的数据流量去往OSPF的其他区域以及OSPF的外部
NSSA区域:Not-So-Stuby-Area,次末节区域,该区域可以以7类LSA的形式将外部路由引入进来,从而避免了末节/完全末节区域可能出现的次优路径问题
配置:[AR1-ospf-1-area-0.0.0.1]nssa
注意:当7类LSA抵达ABR的时候,ABR会将7类LSA转变成5类LSA,传递到OSPF路由域的其他地方,这个操作被称为“7转5”
Totally NSSA:完全次末节,同“完全末节”,在NSSA区域的基础之上,进一步
过滤了3类LSA
配置:在ABR上: [AR2-ospf-1-area-0.0.0.1]nssa no-summary
OSPF的域间路由汇总(配置在ABR上):
[AR2-ospf-1-area-0.0.0.1]abr-summary 172.16.0.0 255.255.252.0
其中Area 1为待聚合路由的起源区域
OSPF的外部路由汇总(配置在ASBR上):
[AR1-ospf-1]asbr-summary 172.16.0.0 255.255.252.0
OSPF的区域认证(区域内所有路由器必须配置认证):
[AR1-ospf-1-area-0.0.0.1]authentication-mode md5 1 cipher huawei
OSPF的接口认证(只要求和该接口相连的邻居路由器配置认证):
[AR2-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher huawei
注意:当网络中有Vlink穿越,并且配置了区域0的认证的时候,VLink的两端都需要执行区域0的认证
NET地址的格式:Area ID + System ID + 00
ISIS的路由器分类
1.Level-1:只能建立Level-1的ISIS邻居关系
2.Level-2:只能建立Level-2的ISIS邻居关系
3.Level-1-2:可以同时建立Level-1和Level-2的邻居关系
Level与ISIS区域的关系
1.如果两台ISIS路由器处于同一个区域,则两者之间可以建立Level-1的邻居关系,也可以建立Level-2的邻居关系
2.如果两台ISIS路由器处于不同的区域,则两者之间只能建立Level-2的邻居关系
ISIS的邻居关系建立
1.点到点:ISIS在P2P环境下,支持两次握手和三次握手两种建立邻居关系的方式
两次握手:RTA发送Hello包给RTB,RTB收到后,邻居关系up,同理,RTB发送Hello包给RTA,RTA收到后,邻居关系也up
注意:两次握手虽然效率较高,但是如果遇到链路单通的情况,则会出现邻居关系建立异常的问题,因此推荐使用三次握手、
三次握手:具体过程同OSPF邻居关系建立到2-way的过程
DIS:伪节点,在MA网络中,ISIS设备需要选举一个DIS,首先设备比较MA接口的优先级,优先级最大的成为DIS,如果优先级相同,则比较设备的SID,SID最大的设备成为DIS
DIS和DR的区别:
1.优先级:ISIS设备的所有的优先级均可以参与选择,而OSPF的优先级=0则表示退出选举
2.选举等待时间:ISIS=2倍的Hello时间,OSPF=40s
3.备份:DIS没有备份,DR有一个备份—BDR
4.邻接关系:无论是否存在DIS,ISIS在MA环境中都形成全互联的邻接关系,而OSPF设备只会跟DR/BDR建立邻接关系
5.抢占性:DIS可以被抢占(可预测),DR一旦选定,无法抢占(不可预测)
6.作用:DIS的作用是为了在MA网络中同步LSDB,而DR的作用则是为了在MA网络中,减少邻接关系的数量,从而进一步减少LSA的泛洪
ISIS是基于TLV架构的,因此ISIS的可扩展性很好,可以适应未来网络技术发展的变化
P2P环境下的LSDB的同步:当RTA和RTB邻居关系首次建立成功后,双方互相发送一次CSNP,也仅发送这一次CSNP,RTB收到RTA的CSNP以后,可以和本地的LSDB进行对比,了解本地不具备的LSP,同时发出PSNP报文请求本地不具备的LSP,RTA收到PSNP后,发送对应的LSP,RTB收到LSP后,发送PSNP确认;RTA的过程也是一样的
MA环境下的LSDB的同步:DIS会周期性的发出CSNP报文(默认10s),其他路由器在收到CSNP报文后,和本地LSDB对比,通过PSNP报文向DIS请求本地不具备的LSP,DIS在收到PSNP报文后,发送LSP进行响应
ISIS的接口开销值默认都是10,跟任何参数都没有关系
ISIS的路由分层:ISIS通过Level区分了骨干网和非骨干网,其中物理上连续的Level-2邻接关系形成的网络被称为骨干网,其他部分被称为非骨干网,ISIS的区域边界是在链路上,因此ISIS不存在ABR的说法
ISIS域间路由的传递:
路由传播方向:非骨干---->骨干:直接传递明细路由
骨干------>非骨干:L1-2设备会产生一个ATT=1的LSP发送给L-1设备
Level-1设备收到该LSP后,会自动产生一个默认路由指向L1-2设备
ISIS的基本配置:
[AR1]isis 1 //进入ISIS协议视图
[AR1-isis-1]network-entity 49.0001.0000.0000.0001.00//设置NET地址
其中49.0001为Area ID,0000.0000.0001为System-ID
[AR1-isis-1]is-level level-1 //设置ISIS设备为Level-1设备,默认为L-1-2
[AR1-isis-1]cost-style wide //设置Cost的取值范围为“宽”,默认为“窄”,取值
范围只有1-63,不能满足现网的需求
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]isis enable //在接口上启动ISIS
查看ISIS邻居:<AR2>dis isis peer
查看ISIS的LSDB:<AR2>dis isis lsdb
注意:当网络中存在多个L1-2设备的时候,这些设备都会向L-1设备发布默认路由(ATT=1的LSP),此时L-1设备会选择距离本地最近的L1-2设备转发,这个操作,有可能出现次优路径
ISIS的路由渗透(路由泄露):L-1-2设备将level-2的明细路由泄露给Level-1
从而使得Level-1设备可以看到全局的路径开销值,从而选择出真正意义上的最优路径
配置:[AR3-isis-1]import-route isis level-2 into level-1 //将L-2的路由泄露
给L-1
修改ISIS的网络类型:[AR1-GigabitEthernet0/0/0]isis circuit-type p2p
设置P2P环境下采用3次握手的方式建立邻居关系:
[AR2-GigabitEthernet0/0/0]isis ppp-negotiation 3-way only
修改DIS的优先级:[AR3-GigabitEthernet0/0/0]isis dis-priority 65
修改ISIS的开销值:[AR3-GigabitEthernet0/0/0]isis cost 100
Route-Policy:路由策略,一般用于修改路由条目的属性(例如路由的优先级,开销值,BGP属性值.....),一个route-policy由if-match语句和apply语句构成,其中if-match语句表示条件,而apply语句表示对满足条件的路由执行的动作
Route-policy的基本配置
[AR1]ip ip-prefix 0.1 permit 172.16.0.1 32//定义前缀列表,匹配需要的路由
[AR1]ip ip-prefix 1.1 permit 172.16.1.1 32
[AR1]ip ip-prefix 2.1 permit 172.16.2.1 32
[AR1]route-policy dir permit node 10 //定义一个名为dir的route-policy
[AR1-route-policy]if-match ip-prefix 0.1//匹配一个需要被操作的路由
[AR1-route-policy]apply cost-type type-1 //设置匹配后,配置需要操作的内容
[AR1-route-policy]apply cost 30
[AR1]route-policy dir permit node 20
[AR1-route-policy]if-match ip-prefix 1.1
[AR1-route-policy]apply cost 20
[AR1]route-policy dir permit node 30
Info: New Sequence of this List.
[AR1-route-policy]if-match ip-prefix 2.1
[AR1-route-policy]apply tag 100
[AR1-ospf-1]import-route direct route-policy dir//在路由引入的时候,调用
rotue-policy
[AR1]route-policy dir permit node 40
注意:route-policy按照node编号,从下到大依次配置,如果满足其中一个条件,则执行该route-policy下的动作,如果所有的node都无法匹配该路由,则route-policy执行默认的策略,deny,因此,在书写route-policy的时候,很多时候都需要加一个空的route-policy,使得那些没有编号匹配中的路由也可以被发布到路由表里
Traffic-Policy = Traffic classifier(类别) + Taffic Behavior(行为)
BGP的特点
1.BGP可以“隔空”(非直连设备)建立邻居关系
2.BGP可以通过修改各种属性值来控制BGP路由的选路
BGP邻居关系建立的过程:
1.BGP路由器之间首先通过TCP协议建立TCP的邻接关系(完成TCP的三次握手),先启动BGP的设备先发起TCP的连接,向后启动BGP的设备的TCP 179端口发起连接,从而完成
三次握手
2.完成三次握手后,双方互相发送Open报文,Open报文中包含了本地BGP设备的基本参数,双方检查对方的Open报文中的参数是否合法,如果合法,则互相发送Keepalive消息,从而邻居关系进入到Established状态,该状态表示BGP邻居关系已经完全建立
3.在Established状态的基础之上,BGP设备根据实际情况,发送Update,Keepalive,Route-refresh,Notification报文
Update:BGP的更新报文,用于更新BGP路由/撤销BGP路由
Keepalive:周期性发送,在邻居关系建立的过程中,Keepalive消息可以用来确认对方的Open报文参数完全合法;在邻居关系建立完成以后,Keepalive消息周期性的发送,可以用来检测TCP邻居是否存在
Route-refresh:路由刷新报文,可以在不断开BGP邻居的前提下,刷新BGP路由,使得配置的BGP策略可以尽快生效
Notification:BGP的通知报文,当BGP发生故障的时候,BGP设备会产生Notification报文,通知对方,随后断开BGP的邻居关系
BGP邻居关系的类型
1.IBGP:建立BGP邻居的设备位于同一个AS内,这样的BGP邻居关系被称为IBGP
2.EBGP:建立BGP邻居的设备位于不同的AS内,这样的BGP邻居关系被称为EBGP
BGP路由的生成方式:
1.network:
1.1 network语句所宣告的网段,必须和本地路由表中的存在形式一模一样
1.2 BGP协议不仅仅可以network直连网段,也可以network非直连网段
2.import命令:同IGP中的import命令用法
BGP路由的通告原则:
1.BGP设备只会将本地最优的路由通告出去(BGP表中携带>的路由为最优路由)
2.通过EBGP邻居学来的路由,可以发布给IBGP邻居,也可以发布给其他的EBGP邻居
3.通过IBGP邻居学来的路由,只能发布给EBGP邻居,不能发布给其他IBGP邻居(其目的是为了防止BGP路由环路)
4.BGP与IGP的同步:当路由器从IBGP邻居那里学来一条路由,在发布给EBGP邻居之前,路由器会先检查本地的IGP路由表,判断该条目是否在本地的IGP路由表中存在;如果存在,则可以正常发布该路由,否则,路由器不会发布,也不会使用该路由
注意:由于目前互联网中的BGP路由实在太多了,因此无法满足BGP和IGP的同步的要求,因此大多数厂商的设备,默认情况下,都关闭了BGP的同步功能
BGP属性的分类:
1.公认必遵:BGP设备都能识别且BGP路由必须携带的属性:起源,AS-Path,下
一跳
2.公认任意:BGP设备都能识别,但不强制要求BGP路由携带的属性:本地优先,
原子聚合
3.可选过渡:无论BGP设备是否识别该属性,BGP设备会都传递该属性:团体属性,聚合属性
4.可选非过渡:无论BGP设备是否识别该属性,如果BGP设备不识别该属性,BGP设备也可以不传递:MED
1.Origin:起源代码,表示该路由是如何进入到BGP网络的,如果是通过network语句进入BGP网络的,则起源代码为i;如果是通过import命令引入进BGP的,则起源代码为?,如果是通过EGP协议进入BGP的,则起源代码为e
在其他条件都相同的前提下,i优先于e优先于?
2.AS-Path:当BGP路由离开本AS的时候,BGP路由会将该AS号记录在AS-path中,从而形成一个AS的有序列表,当BGP设备收到一个BGP路由的时候,BGP会检查该路由的AS-Path,如果该设备所在AS号在AS-path中出现,则说明网络中存在BGP环路,该设备会丢弃该BGP路由
在其他条件都相同的前提下,AS-Path短的优先
3.下一跳:当从EBGP邻居那里学来一条路由,传递给IBGP邻居的时候,默认情况下,该路由的下一跳不变
4.Local-Preference:本地优先,只能够在IBGP邻居之间生效,用来判断流量如何离开本AS,在其他条件都相同的前提下,LP越大越优先
5.MED:多出口鉴别器,只能在EBGP邻居之间生效,用来判断流量如何进入本AS,在其他条件都相同的前提下,MED越小越优先(MED类似于BGP的开销值)
6.团体属性:用于给BGP路由打标记,类似于IGP中的Tag,格式是X:Y
BGP的基本配置
[AR1]bgp 100 //进入BGP配置视图,其中100为AS号
[AR1-bgp]peer 10.1.12.2 as-number 200 //指定10.1.12.2为BGP邻居,该邻居在AS
200中
查看BGP邻居:[AR2-bgp]display bgp peer
注意:
1.使用环回口建立IBGP邻居关系的时候,除了要指定对方环回口地址为Peer地址以外,还需要修改BGP报文的更新源(因为默认情况下,设备依然使用物理接口IP地址作为源,发送Open报文)
[AR2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
2.使用环回口建立EBGP邻居关系的时候,除了要修改更新源以外,还需要修改Open报文的TTL(默认情况下,IBGP的Open报文TTL=255,EBGP的Open报文TTL=1)
命令如下:[AR4-bgp]peer 5.5.5.5 ebgp-max-hop
3.从EBGP邻居那里学来的路由,传递给IBGP邻居的时候,默认下一跳不变,而此时可能会因为下一跳不可达,而导致BGP路由不优化(没有>),因此,在这种情况下,需要将BGP路由的下一跳进行修改,命令如下:
[AR2-bgp]peer 4.4.4.4 next-hop-local
查看BGP路由:display bgp routing-table
修改起源代码:
[AR1]ip ip-prefix origin permit 200.0.0.1 32
[AR1]route-policy origin permit node 10
[AR1-route-policy]if-match ip-prefix origin
[AR1-route-policy]apply origin incomplete //修改起源代码为?
[AR1-route-policy]bgp 100
[AR1-bgp]peer 2.2.2.2 route-policy origin import //在BGP中调用route-policy
修改AS-Path:
[AR1]ip ip-prefix as permit 200.0.0.1 32
[AR1]route-policy aspath permit node 10
[AR1-route-policy]if-match ip-prefix as
[AR1-route-policy]apply as-path 200 200 200 additive
[AR1-route-policy]bgp 100
[AR1-bgp]peer 2.2.2.2 route-policy aspath import
修改本地优先(Local-Preference)
[AR4]ip ip-prefix LP per 100.1.1.1 32
[AR4]route-policy LP per n 10
[AR4-route-policy]if-match ip-prefix LP
[AR4-route-policy]apply local-preference 200
[AR4-route-policy]bgp 200
[AR4-bgp]peer 3.3.3.3 route-policy LP import
修改MED:
[AR1]ip ip-prefix med permit 200.0.0.1 32
[AR1]route-policy med permit node 10
[AR1-route-policy]if-match ip-prefix med
[AR1-route-policy]apply cost 100 //修改MED=100
[AR1-route-policy]bgp 100
[AR1-bgp]peer 2.2.2.2 route-policy med import
BGP的聚合
[AR2-bgp]aggregate 172.16.0.0 22 detail-suppressed as-set
其中detail-suppressed关键字表示抑制掉BGP的明细路由
as-set关键字表示聚合后的路由会继承明细路由的AS-Path属性
组播的服务模型:
1.ASM:任意源组播,用户只需要收到组播数据即可,无所谓组播源是什么,大
多数组播都是这样的服务模型
2.SSM:指定源组播,用户只能够从自身指定的合法的组播源那里收到组播数据
其他组播数据,用户主动丢弃
组播IP地址的分类:224.0.0.0-239.255.255.255
224.0.0.X:保留给必要的路由协议使用的组播IP地址,不能用来传递组播业务
232.0.0.0-232.255.255.255:SSM专用的组播IP地址
239.0.0.0-239.255.255.255:类似于私有的组播IP地址,用来传递企业内部的组播流量
剩余部分:ASM使用的组播IP地址
组播MAC地址:第八个bit=1的MAC地址都是组播MAC地址
IPv4组播IP地址对应的组播MAC地址=01-00-5E+0+IPv4组播地址的后23位
举例:求224.1.1.1所对应的组播MAC地址(01-00-5E-01-01-01)
224.00000001.00000001.00000001
01-00-5E-00000001.00000001.00000001
01-00-5E-01-01-01
已知一个IPv4组播地址对应的MAC地址是01-00-5E-01-01-01,求对应的组播地址
1110XXXX.X0000001.00000001.00000001
因此,有32个组播IP地址可以映射到同一个组播MAC地址上,因为在映射的过程中,有5个bit的缺失
IGMPv1的工作原理:IGMPv1路由器周期性的发送IGMP普遍组查询报文(默认60s),查询本地是否存在组成员,组成员在收到该查询报文后,以IGMP成员关系报告响应
当某个主机需要加入到组播组的时候,该主机会主动的发出IGMP成员关系报告,无需被动等到下一个查询周期的到来
成员关系抑制:如果多个主机属于同一个组播组,则这些主机中,只需要有一个主机发送IGMP成员关系报告即可
IGMPv1的不足:
1.组成员离开:IGMPv1中组成员都是静默离开,IGMPv1路由器最多需要花费130s
才能发现组播组中没有组成员的存在,从而切断组播流,对资源和带宽造成了一
定的浪费
2.查询器:当MA网络中存在多个IGMPv1路由器的时候,IGMPv1没有定义查询器的
选举规则,此时,IGMPv1的查询器由上层组播路由协议(例如PIM)的DR充当
IGMPv2:
1.组成员离开:当组成员离开组播组的时候,该成员主动的发送Leave消息,当
IGMPv2路由器收到Leave消息的时候,该路由器会立刻发出特定组查询报文,询
问该组播组中是否还存在其他组成员,如果连续两次特定组查询都没有得到回应
(间隔1s),则路由器中断去往该组的组播流
2.查询器:IGMPv2定义了独立的查询器选举规则,如果MA网络中存在多个IGMPv2
路由器,则这些IGMPv2路由器中,MA接口地址最小的设备成为查询器
IGMPv3:在IGMPv1/IGMPv2的基础上,通过增加了Include(S,G)和Exclude(S,G)模式,来实现了对组播源的过滤,即实现了SSM
注意:IGMPv3取消了成员关系抑制
IGMP Snooping:默认情况下,当交换机收到组播报文的时候,交换机会广播泛洪
处理,因此会造成资源的浪费和安全隐患,因此,在交换机上开启IGMP Snooping
功能后,交换机会根据IGMP报文的具体内容,生成对应的组播MAC地址表项,而组播数据可以查询到对应的组播MAC地址表项,从而实现按需转发
IGMP的配置
[AR2]multicast routing-enable //开启组播功能
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]igmp enable //开启IGMP功能,默认启动IGMPv2
[AR2-GigabitEthernet0/0/0]igmp version x //修改IGMP的版本
RPT:当主机加入组播组G的时候,会主动发送IGMP报文,上游路由器收到后,会主动发送PIM的(*,G)的Join消息去往RP,沿途所经过的设备都会产生(*,G)组播表项,从而形成RPT树
SPT:当组播源产生组播数据后,首先会将该数据封装进单播IP头中,发送给RP,这个过程称为“注册(Register)”,RP收到后,解封装,一方面将该数据还原成组播数据,沿事先建立好的RPT树转发给接收者,另一方面,RP产生PIM的(S,G)Join消息发送给组播源,沿途经过的所有设备形成(S,G)组播表项,后续组播数据,一份会继续封装成单播,发送给RP(即重复上述的注册过程),另一份会直接以组播的形式,沿着刚刚建立的SPT树转发给RP,当RP收到一个纯粹的组播报文后,即表明SPT树构建成功,RP向组播源发送“注册停止”(Register-Stop),后续组播报文不再需要封装成单播即可发送
SwitchOver:有的时候,“源--->RP--->接收者”并非真正意义上的最优路径,因此,当接收者收到组播数据的时候,接收者会主动的将组播源发送(S,G)的Join消息,从而形成真正意义上的从组播源到接收者的最短路径