BGP——解决路由黑洞问题(路由反射器与联盟)
我们知道,在IBGP 2 设备收到IBGP 1设备传输过来的IBGP路由后,不会将此IBGP路由传递给其它的IBGP设备,所以当其它的IBGP设备需要获得此跳IBGP路由时,就需要与IBGP 1设备建立IBGP邻居关系。既不是RR也不是客户机的IBGP设备(在AS内部需要与RR之间、以及所有的非客户机之间仍然需要全互联)以下的配置只需要在RR上进行路由反射器的配置(客户机只需要配置与RR做IBGP
目录
路由反射器
我们知道,在IBGP 2 设备收到IBGP 1设备传输过来的IBGP路由后,不会将此IBGP路由传递给其它的IBGP设备,所以当其它的IBGP设备需要获得此跳IBGP路由时,就需要单独再与IBGP 1设备建立IBGP邻居关系,也就是IBGP全互联
在网络较大的情况下,使用IBGP全互联的话,就会很复杂,所以出现了路由反射器
路由反射器角色
1.RR-----------路由反射器 允许把从IBGP对等体学来的路由反射到其它IBGP对等体设备
2.Client--------客户机 与RR形成反射邻居关系的IBGP设备(在AS内只需要与RR直连)
3.Non-Client--非客户机 既不是RR也不是客户机的IBGP设备(在AS内部需要与RR之间、以及所有的非客户机之间仍然需要全互联)
4.Originator---始发者 在AS内部始发路由的设备(Originator_ID属性用于防止集群内产生路由环路)
5.Cluster-------集群 路由反射器与客户机的集合(Cluster_List属性用于防止集群间产生路由环路)
路由反射器原理
1.RR从非客户机学到的路由,会反射给所有的客户机
2.RR从客户机学习到的路由,发布给所有的客户机和非客户机(除了发起此路由的客户机除外)
3.从EBGP对等体学习到的路由,发布给所有的非客户机和客户机
4.路由反射过程中,BGP的路径属性没有任何更改
路由反射器的防环机制
Originator_ID-----起源ID
用于防止集群内产生路由环路
- 当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性
- 当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,则不接收此路由。
Cluster_List-------集群列表
用于防止集群间产生路由环路---Cluster-ID就类似于OSPF中的Router-id
- 当一条路由第一次被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接收的路由数量
Cluster ID配置
华为设备配置
reflector cluster-id 1.1.1.5 配置Cluster-id为1.1.1.5
锐捷设备配置
bgp cluster-id 1.1.1.5 配置Cluster-id为1.1.1.5
路由反射器配置命令
以下的配置只需要在RR上进行路由反射器的配置(客户机只需要配置与RR做IBGP邻居的配置)
对于客户机来说,客户机是不知道自己时客户机的,只有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联盟
BGP联盟,将一个AS划分为若干个子AS;被划分的AS就是一个联盟,子AS就是成员AS
如上:子AS之间建立EBGP邻居关系,子AS内建立IBGP邻居关系;这样就可以解决路由黑洞问题
注意事项
- 子AS号一般配置为私有AS号(64512~65535)
- 被划分的AS号作为联盟内每台设备的联盟ID,可以保证在联盟内部保留原有的IBGP属性(例如LP、MED、Next_Hop属性)
- 联盟相关的属性只在联盟内部有效,传出联盟时被自动删除
- 联盟内的AS_Path只在联盟内部有效,只是用来避免联盟内产生环路;传出联盟时会被删除(只携带联盟ID给对等体)
联盟配置
以AS号为65530的设备为例子
华为配置
bgp 65530 配置子AS号
confederation id 200 声明自己所属的联盟AS号
confederation peer-as 65531 配置自己相连的其他子AS号
peer X.X.X.X as-number 100
peer X.X.X.X as-number 65531
锐捷配置
route bgp 65530 配置子AS号
bgp confederation identifier 200 声明自己所属的联盟AS号
bgp confederation peer 65531 配置自己相连的其他子AS号
neighbor X.X.X.X remote-as 100 建立BGP对等体
neighbor X.X.X.X remote-as 65531 建立BGP对等体
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)