BGP的路由反射器、联盟、对等体组
BGP的路由反射器、联盟、对等体组
所周知,IBGP2路由器收到IBGP1传来的BGP路由后,不会再传递给其他IBGP路由器。若要获得该路由就需要进行IBGP邻居的全互联。
在网络较大的情况下,使用IBGP全互联的话,就会很复杂,所以出现了路由反射器和联盟技术
路由反射器
作用:
允许将从IBGP邻居学习到的路由发送给特定IBGP邻居,打破了IBGP邻居关系全互联的需求,减少了IBGP会话数量,节约了设备性能,提高了扩展性,路由传递清晰。
角色:
RR----->路由反射器(route reflector)
把从IBGP对等体学到的路由反射到其他IBGP设备
Client----->客户机
与RR形成反射邻居关系的IBGP设备,由RR决定哪些IBGP邻居成为客户机(成为客户机的设备并知道自己是clien)
client与RR建立正常的IBGP邻居
Non-Client----->非客户机
在AS内部,非客户机与RR之间以及所有的非客户机之间必须建立全互联
Originantor----->始发者
在AS内始发某一条路由的设备,用作防止集群内的环路
Cluster----->集群
路由反射器及其客户机的集合。
RR的邻居关系
1、RR要和AS内的所有IBGP设备建立邻居
2、所有的非客户机之间以及RR与非客户机之间都要建立IBGP全互联
RR发布路由规则
RR打破了IBGP的水平分割
(1)从非客户机学到的路由,反射给所有客户机
(2)从客户机学到的路由,反射给所有的非客户机和客户机
也会向发起此路由的客户机发送此路由
<R1>terminal debugging 开启debugg
<R1>debugging bgp update --->bebugg bgp的update报文
<R1>refresh bgp all import
Dec 28 2023 10:29:32.910.1-08:00 R2 RM/6/RMDEBUG:
BGP.Public : Error identified while receiving UPDATE message from the peer 4.4.4.4 and ignored
Reason: (ORIGINATORID equal to RouterID). 忽略从4.4.4.4发来的路由,因为起源ID等于了自己的route ID
(3)从EBGP对等体学到的路由,发送给所有的客户机和非客户机
(4)在RR上network的路由会发送给所有的客户机和非客户机
注意:
从非客户机学习到的路由,不能再传递给非客户机(非非不相传)
路由反射器的防环机制
Originator_ID----->起源ID(可选非过渡属性)
作用:
用于防止集群内产生路由环路
当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。
如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性
当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,则不接收此路由。
Cluster_List-------集群列表(可选非过渡属性)
作用:用于防止集群间产生路由环路
当一条路由第一次被RR反射的时候,RR会把本地Cluster ID添加到Cluster List的前面。如果没有Cluster_List属性,RR就创建一个。
当RR接收到一条更新路由时,RR会检查Cluster List。如果Cluster List中已经有本地Cluster ID,丢弃该路由;如果没有本地Cluster ID,将其加入Cluster List,然后反射该更新路由。
注意:
Cluster_List 可以包含一个Cluster ID,也可以包含多个Cluster ID
当一个网络中有多个RR(防止单点故障)时,可以通过此网络中的RR配置相同的集群ID(Cluster_ID)来减少各RR接收的路由数量
Originator_ID和Cluster_List属性仅在本AS内生效
问题: 经过RR的路由,RR都会添加Originator_ID和Cluster-list这两个属性吗?
答:不一定。
如果是RR路由器从EBGP邻居学习到的路由,经过RR之后不会添加上这两个属性,因为从EBGP邻居学习到的路由,本身就会传递给IBGP邻居;
如果是RR路由器本身network或者import的路由,也不会添加上这两个属性。
RR部署模式的分类
备份RR
为增加网络的可靠性,避免单点故障,需要在一个集群中配置一个以上的RR,同一个集群中所有的RR必须使用相同的Cluster ID
RR1给和RR2之间传递路由时,检查自己的Cluster_list中发现有自己的Cluster_ID,就会丢弃掉该路由。
同级RR
AS中被分成多个集群,各集群的RR之间互为非客户机关系,但是建立IBGP全互联
RR之间全互联,RR之间互为非客户机
非客户机之间全互联
非客户机和RR之间全互联
分级RR
当RR所处的网络层不同时,可以将较低网络层次的RR配成客户机,形成分级RR
路由反射器配置
华为配置
bgp 100
peer X.X.X.X reflect-client 配置自己为RR,并将指定的对等体配置为Client
reflector cluster-id X.X.X.X 配置集群ID
锐捷配置
route bgp 100
neighbor X.X.X.X route-reflector-client 配置自己为RR,并将指定的对等体配置为Client
bgp cluster-id x.x.x.x 配置集群ID
BGP联盟
基础概念:
联盟就是是将一个AS划分为若干个子AS。子AS内部建立IBGP全互联(联盟IBGP邻居),子AS之间建立EBGP连接关系(联盟EBGP邻居关系)。联盟减少了邻居数量,较少了配置,也解决了路由黑洞问题
但联盟外部AS仍认为联盟是一个AS
联盟的特点:
1、通告给联盟内的路由的MED属性、local preference属性在整个联盟范围内保留。
2、在联盟内部将会保留联盟外部的next_hop 属性。
3、联盟内相关的属性传出联盟时将会被自动删除,无需过滤子AS号等操作
AS_Path多种体现形式
1、AS_Path 有序的--->AS-SEQUENCE
2、AS_Set 无序的(聚合路由时产生的)--->AS-SET-SEQUENCE
3、联盟内的AS_Path 有序的--->AS-CONFED-SEQUENCE
4、联盟内的AS_Set 无序的(聚合时产生的)--->AS-CONFED-SET
注意:
联盟AS PATH 仅用于防止环路, 不计入AS PATH 长度
R5收到联盟EBGP邻居R3传来的100.1.1.0和从EBGP邻居R6传来的100.1.1.0,比较AS路径长度时,联盟内传来的路由会优于联盟外传来的。
假设此时,AS相同长度的情况下
R5会选择EBGP邻居传来的路由,联盟的eBGP与联盟的iBGP 都被视为iBGP 邻居, 而eBGP 优于iBGP 。
联盟配置命令:
华为配置
bgp 65002 配置子AS号
confederation id 200 声明自己所属的联盟AS号
confederation peer-as 65002 配置自己相连的其他子AS号
peer X.X.X.X as-number 100
peer X.X.X.X as-number 65002
锐捷配置
route bgp 65002 配置子AS号
bgp confederation identifier 200 声明自己所属的联盟AS号
bgp confederation peer 65002 配置自己相连的其他子AS号
neighbor X.X.X.X remote-as 100 建立BGP对等体
neighbor X.X.X.X remote-as 65002 建立BGP对等体
对等体组
对等体组( Peer Group ) 是一些具有某些相同策略的对等体的集合,当一个对等体加入对等体组中时,此对等体将获得与所在对等体组相同的配置。对等体组中的对等体可以继承对等体组的配置,当对等体组的配置改变时, 组内成员的配置也相应改变。
对等体组可以减少邻居之间的配置命令,实现批量配置,简化管理的难度
配置命令:
group group-name [external | internal]
peer EX as-number 200 ---->对于iBGP 对等体组. AS 号为本地编号,不需配直该步骤.
peer 10. 1.2.2 group EX
peer EX connect-interface LoopBack 0
peer EX ebgp-max-hop
如果不指定对等体组为iBGP 还是eBGP . 那么默认创建iBGP 对等体组。
- 63
- 0
-
分享