一、BGP水平分割的作用及特点:
BGP水平分割的核心作用是防止路由环路,保障网络稳定,特点是分层防环、兼顾可靠性同时存在扩展限制,具体整理如下:
(一)、核心作用
- 最核心作用:防止路由环路:避免路由信息在不同自治系统(AS)之间、AS内部反复循环传递,导致路由计算错误、网络瘫痪。
- 减少资源浪费:阻断无效循环的路由更新,降低路由器CPU、带宽资源的无效消耗。
- 维持路由拓扑稳定:保证互联网庞大的路由体系始终保持无环状态,让数据包可以正常转发不迷路。
(二)、主要特点
- 分层设计,分场景防环:分为EBGP(跨AS)和IBGP(同AS内部)两种水平分割,分别解决不同场景下的环路问题:
- EBGP水平分割靠路由自带的AS_PATH路径标签防环,逻辑简单可靠
- IBGP水平分割因为同AS内无法靠标签防环,直接采用"从内部学的路由不再传给其他内部邻居"的规则,从传播层面阻断环路
- 规则简单可靠:实现逻辑清晰,防环有效性经过大规模互联网验证,是BGP默认开启的基础机制。
- 存在扩展性局限:IBGP水平分割会带来"路由无法完整传递"的问题,想要在大型AS内部署BGP,必须配合路由反射器或者BGP联邦才能使用。
- 兼容性强:和BGP其他机制(如路由聚合、选路规则)可以兼容工作,不会干扰其他功能的运行。
二、实验拓扑:
三、实验命令:
R1:
<Huawei>sys
[Huawei]undo in en
[Huawei]sys R1
[R1]interface g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.1.1.1 24
[R1-GigabitEthernet0/0/0]quit
[R1]interface loopback 0
[R1-LoopBack0]ip address 1.1.1.1 32
[R1-LoopBack0]quit
[R1]ospf router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]quit
[R1-ospf-1]q
[R1]bgp 123
[R1-bgp]undo summary automatic
[R1-bgp]undo synchronization
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 2.2.2.2 as-number 123
[R1-bgp]peer 2.2.2.2 connect-interface loopback
[R1-bgp]quit
R2:
<Huawei>sys
[Huawei]un in en
[Huawei]sys R2
[R2]interface g0/0/1
[R2-GigabitEthernet0/0/1]ip add 12.1.1.2 24
[R2-GigabitEthernet0/0/1]quit
[R2]interface g0/0/0
[R2-GigabitEthernet0/0/0]ip add 23.1.1.2 24
[R2-GigabitEthernet0/0/0]quit
[R2]interface loopback 0
[R2-LoopBack0]ip address 2.2.2.2 32
[R2-LoopBack0]quit
[R2]ospf router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
[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]quit
[R2-ospf-1]q
[R2]bgp 123
[R2-bgp]undo synchronization
[R2-bgp]undo summary automatic
[R2-bgp]peer 1.1.1.1 as-number 123
[R2-bgp]peer 1.1.1.1 connect-interface loopback 0
[R2-bgp]peer 3.3.3.3 as-number 123
[R2-bgp]peer 3.3.3.3 connect-interface loopback 0
[R2-bgp]quit
R3:
<Huawei>sys
[Huawei]undo info-center enable
[Huawei]sys R3
[R3]interface g0/0/1
[R3-GigabitEthernet0/0/1]ip add 23.1.1.3 24
[R3-GigabitEthernet0/0/1]quit
[R3]interface loopback 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]quit
[R3]ospf router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]quit
[R3-ospf-1]q
[R3]bgp 123
[R3-bgp]undo synchronization
[R3-bgp]undo summary automatic
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 2.2.2.2 as-number 123
[R3-bgp]peer 2.2.2.2 connect-interface loopback 0
[R3-bgp]quit
四、实验测试:
在R2上查看BGP的对等体关系,可以看到R2已经和R1,R3建立了联系
在R1上创建一个环回接口,IP地址为100.100.100.100并宣告
[R1]interface loopback 100
[R1-LoopBack100]ip address 100.100.100.100 32
[R1-LoopBack100]quit
[R1]bgp 123
[R1-bgp]network 100.100.100.100 32
[R1-bgp]quit
然后分别在R1,R2和R3上查看BGP路由表,可以看到R1和R2上的BGP路由表都有刚宣告的环回接口,R3上没有
R3上的路由表为空,这是因为BGP水平分割导致的,水平分割是从一个IBGP邻居学到的路由,不会再通告给其他IBGP邻居(俗称"内内不相传"),以此避免AS内部形成路由环路
下面我们在R2上使用路由反射来解决BGP水平分割的问题
[R2]bgp 123
[R2-bgp]peer 1.1.1.1 reflect-client
[R2-bgp]quit
然后再在R3上查看BGP路由表,可以看到R3上的BGP路由表里已经获取到了宣告的环回接口
五、总结:
BGP水平分割简单说就是BGP里防止路由绕圈子出bug的规则,一句话讲就是"不让消息绕回出发地",分两种情况:
1. 不同大网络(AS自治系统)之间
就像你给隔壁公司发通知,对方又把写了你的公司名的通知发回来给你,你一看这本来就是我发的,直接扔了不收——这就是靠路由自带的"路过名单"防绕圈,就是EBGP水平分割。
2. 同一个大网络内部
就像公司里,你从同事A那收到了消息,不能再把这个消息转给另一个同事B,避免传来传去绕出死循环——本来要求公司所有人都得直接拿到消息,得每个人都互相打招呼,人多了根本忙不过来,后面就有了路由反射器(专门的消息中转站)来解决这个问题,这就是IBGP水平分割。
路由反射就是选一个人当"消息中转站":所有人只需要跟这个中转站传递消息,中转站再把收到的消息转发给所有人,其他人不用挨个开会了,这个中转站就是路由反射器,来中转站传话的人就是客户端。