BGP RR和联邦

    由于IBGP的水平分割问题,所以IBGP需要Full Mesh。由于整个IBGP full mesh的话,需要建的session数为n*(n-1)/2。不具有扩展性。所以产生两种解决方法,路由反射器是其中一种,而另一种则是联邦。

反射器/RR
从EBGP邻居学习过来的路由(或RR本地注入的路由)RR不会创建cluster-list,这时候的环路避免依靠的originator-id
originator-id由第一个RR创建且不能更改,orig-id是以这些路由器的BGP RID
      >本地AS始发路由的BGP宣告者
      >EBGP学习到的路由,就是学习到该路由的边界路由器

RFC1966中定义了3条RR用来决定要宣告哪条路由的规则,具体使用时取决于路由是如何学习到的。
1,如果路由学习自非客户IBGP对等体,则仅反射给客户路由器。
2,如果路由学习自某客户,则反射给所有非客户和客户路由器(发起该路由的客户除外)。
3,如果路由学习自EBGP对等体,则反射给所有非客户和客户路由器

总结:
反射器和它的客户端就组成一个簇
反射器从簇里的任何路由器学到的路由相当于发起于反射器本身
反射器除了从非客户端学习过来的路由不传给非客户端以外,其他路由都传(因为非客户端于非客户端之间存在水平分割原则)

反射器是打破了IBGP的水平分割机制,所以必须有自己的防环机制

路由反射器的客户并不知道自己是客户。客户和非客户经过路由反射器反射的路由更新将会带上cluster-list和originator,可用于IBGP防环。Cluster-id默认为路由反射器自己的router-id,可以通过命令bgp cluster-id 1.1.1.1来修改,cluster-id为32位的值,可以写成点分十进制,也可以写成十进制数;originator为IBGP内起源路由器的router-id。路由反射器是IBGP的特性,出了IBGP后,路由反射器所有的特性消失(即路由携带的cluster-list和originator全部消失)。

反射器不会改变路由的下一跳(因为内部的IGP都有路由条目)

R3(config-router)#nei 2.2.2.2 route-reflector-client (说明R2/2.2.2.2是Local的发射器客户端)
R3(config-router)#nei 4.4.4.4 route-reflector-client 

联邦/Confederation
即是使用一个大的AS号拆分为多个小AS号
两个小AS之间使用eBGP来发送更新(相当于两个AS号运行EBGP)

联盟增加了两种类型的AS_PATH属性
AS_confed_sequence:一个去往特定目的地所经路径上的有序AS号列表,其用法与AS_SEQUENCE完全一样,区别在于该列表中的AS号属于本地联盟中的自治系统。
AS_confed_set:一个去往特定目的地所经路径上的无序AS号列表,其用法与AS_SET完全一样,区别在于该列表中的AS号属于本地联盟中的自治系统。
由于AS_PATH发生被用于成员自治系统之间,因而保留了环路预防功能。将Update消息发送给联盟之外的对等体时,将从AS_PATH属性中剥离AS_CONFED_SEQUENCE和AS_CONFED_SET信息,而将联盟ID附加到AS_PATH中。
Local_preference和MED可以在联邦内传递。联盟内的小AS号,在as-path里显示在小括号里,在as-path计算长度时,不被考虑。下一跳在联邦内传递不会改变。

Confederation配置的步骤:
Router bgp 小AS号(私有AS号)
声明所在的大AS号
小AS号之间互指peer

联邦注意事项:
小AS之间学习过来的路由不再是IBGP路由
联邦中的AS号不做为选路参考
C-BGP继承所在AS号内的IBGP属性!比如local-preference / 不改变next-hop

R1(config-router)#bgp confederation identifier 100


解决BGP收敛无限循环和BGP路由震荡的解决方案
使用全互联的iBGP——和路由反射器一样,如果一开始就选择联盟来增强扩展性,那么这种方法也许不能被接受
打开alway-compare-MED——因为成员自治系统不修改MED,因此应用在路由反射上的设计指南和告诫也同样适用于联盟
打开deterministic-MED比较——打开确定性的MED比较几乎总是一种好的做法,尽管在某些情况下单独使用这一方法不会解决问题
把MED值重置为0——这消除了MED对确定路径的影响。应用在路由反射上的设置指南也同样适用于联盟
使用团体属性——在外部邻居之间交换的团体属性主要是私有团体属性,因此,引用在路由反射上的设计指南也同样适用于联盟
设置适当的IGP度量——在所有其他的高优先级的比较因子相等的情况下,如果把成员AS内的度量设置为小于成员AS间的度量,那么成员AS内路径将优于成员AS的路径。这就打破了路由选择环路

<think>我们正在配置华为eNSP中的BGP联邦。根据引用内容,BGP联邦是将个大的自治系统(AS)划分为多个小AS的技术,这些小AS使用私有AS号,内部运行iBGP,小AS之间通过联邦内的eBGP建立邻居关系,但对外部AS隐藏内部结构。 步骤: 1. 规划拓扑:如引用[4]中的拓扑,假设我们有AS200(大AS),内部分为小AS234(包含R2,R3,R4)AS567(包含R5,R6,R7)。R1在AS100,R8在AS300。 2. 配置IP地址底层IGP(如OSPF):在AS200内,先配置OSPF保证内部可达性。 3. 配置联邦内的BGP邻居: - 在小AS内部建立iBGP邻居(全互联或使用路由反射器)。 - 在小AS之间建立联邦eBGP邻居(如R2-R5,R4-R7)。 4. 配置联邦与外部AS(R1R8)的eBGP邻居。 具体配置(以R2、R5为例): 在R2上: bgp 234 // 小AS号 router-id 2.2.2.2 confederation id 200 // 声明大AS号为200 confederation peer-as 567 // 声明联邦内的小AS邻居(即另个小AS567) peer 10.0.25.5 as-number 567 // 配置与R5(在AS567)的联邦eBGP邻居 peer 10.0.25.5 connect-interface LoopBack0 // 建议使用环回口建立邻居,需要保证底层IGP可达 在R5上: bgp 567 router-id 5.5.5.5 confederation id 200 confederation peer-as 234 peer 10.0.25.2 as-number 234 // 配置与R2的邻居 注意:联邦内的eBGP邻居,虽然AS号不同,但在联邦内,它们传递路由时不改变AS_PATH属性(不像真正的eBGP那样添加AS号),而是使用联邦特定的属性(如AS_CONFED_SEQUENCE)来避免环路。 另外,在AS200内部,小AS内部运行iBGP,因此需要建立全互联或使用路由反射器(因为iBGP默认水平分割,需要全互联或使用RR)。如果小AS内部只有两台设备(如R2R3),则可以直接建立iBGP邻居;如果多于两台,则需考虑路由反射器(如引用[1]所述,联邦路由反射器可以结合使用)。 配置与外部AS的邻居(以R2R1为例): 在R2上: peer 192.168.12.1 as-number 100 // 直接使用大AS200的ID(因为对外隐藏了内部联邦结构) 在R1上: peer 192.168.12.2 as-number 200 // 因为R2对外显示为AS200 这样,当R1发送路由给R2时,R2在AS200内部传播时,会保留AS_PATH中的100,然后在小AS内部小AS之间传播。当路由传递到另个小AS(如567)时,由于联邦内的eBGP邻居关系,不会添加AS号,而是使用联邦AS_PATH属性(在联邦内传递时,不会在AS_PATH中添加AS号,而是使用联邦段)。当路由从AS200传递到AS300(R8)时,AS_PATH显示为200(而不是内部的小AS号)。 注意:配置联邦时,需要确保底层IGP(如OSPF)已经建立,保证邻居建立所使用的地址可达(尤其是使用环回口建立邻居时)。 下面给出个简化的配置示例(以R2为例): 假设R2的配置: ``` [R2] interface GigabitEthernet0/0/0 // 连接R1的接口 [R2-GigabitEthernet0/0/0] ip address 192.168.12.2 24 [R2] interface LoopBack0 [R2-LoopBack0] ip address 2.2.2.2 32 [R2] ospf 1 // 配置OSPF,在AS200内部通告环回口内部链路 [R2-ospf-1] area 0 [R2-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0 [R2-ospf-1-area-0.0.0.0] network 10.0.23.0 0.0.0.255 // 假设与R3的链路 [R2] bgp 234 // 进入BGP视图,小AS为234 [R2-bgp] router-id 2.2.2.2 [R2-bgp] confederation id 200 // 配置联邦ID [R2-bgp] confederation peer-as 567 // 指定联邦内的小AS邻居 [R2-bgp] peer 10.0.25.5 as-number 567 // 配置与R5(在AS567)的邻居,R5的地址为10.0.25.5(假设是R5的环回口,且底层OSPF已通) [R2-bgp] peer 10.0.25.5 connect-interface LoopBack0 // 指定源接口为LoopBack0 [R2-bgp] peer 192.168.12.1 as-number 100 // 配置与R1(外部AS100)的邻居 [R2-bgp] import-route direct // 引入直连路由(仅为示例,实际按需引入) ``` 同样,在R5上需要配置相应的邻居关系。 注意:联邦内的eBGP邻居默认不会改变下,因此可能需要配置`peer next-hop-local`(在iBGP传递路由时,默认不改变下,但联邦内的eBGP邻居传递路由时会改变下,所以通常不需要额外配置)。但是,当路由从联邦eBGP邻居传递到iBGP邻居时,下可能不会被改变(因为iBGP默认不改变下),所以可能需要在小AS的边界路由器上(如R2R5)向内部iBGP邻居发布路由时,配置`peer <内部邻居> next-hop-local`。 最后,测试连通性,并检查BGP路由表。 相关问题: 1. 在配置BGP联邦时,如何解决小AS内部的多台设备之间的iBGP水平分割问题? 2. BGP联邦路由反射器在解决iBGP水平分割问题时有何异同? 3. 在eNSP中配置BGP联邦时,如何验证配置是否正确? 4. 联邦内的eBGP邻居真正的eBGP邻居在路由传递时有何区别? 5. 在BGP联邦中,如何控制路由的传播路径(如使用MED、Local Preference等属性)?</think>### ENSP 配置 BGP 联邦指南 在华为 eNSP 中配置 BGP 联邦需遵循以下步骤(以引用[3][4]的拓扑为例): #### 1. **拓扑规划** - **大 AS 200**:包含两个小联邦 AS(AS 234 AS 567) - **设备分配**: - AS 234:R2、R3、R4 - AS 567:R5、R6、R7 - 外部邻居:R1(AS 100)、R8(AS 300) - **关键连接**: - 联邦内 eBGP:R2-R5、R4-R7 - 外部 eBGP:R1-R2(AS100-AS200)、R7-R8(AS200-AS300) #### 2. **基础配置** ```bash # 以 R2 为例(小 AS 234): sysname R2 interface GigabitEthernet0/0/0 # 连接 R1 ip address 192.168.12.2 24 interface GigabitEthernet0/0/1 # 连接 R5 ip address 10.0.25.2 24 interface LoopBack0 ip address 2.2.2.2 32 # 配置 AS200 内 OSPF(保证联邦内可达) ospf 1 router-id 2.2.2.2 area 0 network 2.2.2.2 0.0.0.0 network 10.0.0.0 0.255.255.255 ``` #### 3. **BGP 联邦核心配置** ```bash # R2 配置(小 AS 234) bgp 234 router-id 2.2.2.2 confederation id 200 # 声明大 AS 编号 [^3] confederation peer-as 567 # 指定联邦内邻居 AS [^1] # 联邦内 eBGP(R2-R5) peer 10.0.25.5 as-number 567 peer 10.0.25.5 ebgp-max-hop 2 # 允许非直连 # 外部 eBGP(R2-R1) peer 192.168.12.1 as-number 100 # 联邦内 iBGP(R2-R3/R4) peer 3.3.3.3 as-number 234 # 使用环回口 peer 3.3.3.3 connect-interface LoopBack0 peer 4.4.4.4 as-number 234 peer 4.4.4.4 connect-interface LoopBack0 ``` #### 4. **关键注意事项** 1. **联邦标识声明**: - 所有小 AS 设备(如 R2-R7)必须配置 `confederation id 200`[^3] - 外部设备(如 R1/R8)仅识别大 AS 200[^4] 2. **路由传递优化**: ```bash # 在边界设备(如 R2)添加: peer 10.0.25.5 next-hop-local # 联邦 eBGP 路由传给 iBGP 时重置下 peer 192.168.12.1 route-policy EXPORT out # 控制外部路由发布 ``` 3. **防环机制**: - 联邦内 eBGP 使用 `AS_CONFED_SEQUENCE` 属性替代标准 AS_PATH[^1] - 外部 AS 看不到小 AS 编号(AS 300 收到的路由 AS_PATH=200)[^3] #### 5. **验证命令** ```bash display bgp peer # 检查邻居状态 display bgp routing-table # 查看路由的 AS_PATH 属性 ping -a 2.2.2.2 10.0.25.5 # 测试联邦内连通性 ``` > **故障排查**:若邻居无法建立,检查: > 1. 底层 OSPF 是否互通 > 2. `confederation peer-as` 是否对称配置 > 3. eBGP 非直连时是否配置 `ebgp-max-hop`[^4]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值