目录
1.BGP的一些小问题
1.1 BGP的路由黑洞
由于BGP协议可以非直连建立邻居关系,当两台BGP邻居间存在未运行BGP协议的设备时,可能出现路由条目在控制层面正常传播,但数据层面流量在经过未运行BGP协议的设备时将出现不可达现象,这就是BGP的路由黑洞
解决:
- 物理链路全连
- 邻居关系全连,所有设备运行BGP
- 将BGP路由条目重发布到IGP协议中
- 最佳:MPLS,多协议标签交换:https://blog.csdn.net/weixin_43997530/article/details/104501875
1.2 BGP的防环机制
1、EBGP的水平分割
利用BGP条目中的AS-path属性,该属性记录所有经过的AS编号;接收到的路由条目中若AS-path中存在本地AS号,则拒绝接收。
2、IBGP的水平分割
基于AS-BY-AS的特性,默认BGP的路由条目在同一个AS内传递时,其属性不发生变化;IBGP的水平分割:BGP规定从一个IBGP邻居学习到的路由不得传递给本地其他IBGP邻居。
因为BGP协议具有非直连建邻的能力,所以在一个AS内部只要运行BGP协议,那么必然存在EBGP邻居关系(连接了其他的AS);IBGP水平分割导致在一个AS内部所有运行BGP协议的设备,均需要建立IBGP邻居关系才能正常传递路由条目,这也使得BGP的邻居关系呈指数上升。
解决:路由反射器和联邦
2.基本配置
[R1]bgp 1 //启动时定义真实AS号,没有多进程概念;
[R1-bgp]router-id 1.1.1.1 //建议配置route-id,若手工不配置,将自动生成,其生成规则同OSPF一致;
【一】邻居关系的配置
1、直连的EBGP邻居,直接使用直连物理接口的IP地址来作为源、目地址;
[R1-bgp]peer 12.1.1.2 as-number 2 //对端接口IP地址,及所在的AS号
2、IBGP邻居关系的建立
由于IBGP邻居同处于同一个AS,那么将存在大量的备份路径,建议使用双方的环回接口作为源目IP地址来建立邻居关系。
[R2-bgp]peer 3.3.3.3 as-number 2
[R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 //切记:一旦使用环回接口作为目标接口,同时本地的更新源也需要修改为环回
3、EBGP邻居间存在多条链路,为了稳定性和可靠性,依然建议使用环回口来建邻。
(1)IP可达问题建议使用静态路由
[R5]ip route-static 4.4.4.0 24 45.1.1.1
[R5]ip route-static 4.4.4.0 24 54.1.1.1
(2)手动建立邻居关系
[R4]bgp 2
[R4-bgp]peer 5.5.5.5 as-number 3
[R4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
(3)注:BGP协议中,IBGP邻居关系间TTL值255,EBGP邻居为1;故使用环回建立EBGP邻居时,必须修改TTL值。
[R4-bgp]peer 5.5.5.5 ebgp-max-hop 2 //修改跳数为2跳
【二】两端配置完邻居关系后,首先通过TCP三次握手建立TCP会话;TCP会话建立后,BGP协议收发一次Open报文,建立邻居关系,生成邻居表;
[R1]display tcp status //查看tcp会话状态
[R2]display bgp peer //查看邻居表
BGP local router ID : 2.2.2.2
Local AS number : 2
Total number of peers : 2 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.3 4 2 0 0 0 00:00:10 Idle 0
12.1.1.1 4 1 14 14 0 00:12:07 Established 0
【三】路由条目宣告:BGP中邻居关系的建立和路由条目的宣告是分开进行的。
BGP需要逐条宣告本地路由表中的路由条目,无论这些条目的产生方式,只要在本地的路由表中及可宣告;宣告时,条目的内容必须和本地路由表中完全一致;本地一旦进行的路由条目的收发,生成BGP表;该表记录本地接收和传输的所有的条目信息 ;
[R1-bgp]network 1.1.1.1 //宣告路由条目
[R1]display bgp routing-table //查看BGP路由表
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.1/32 0.0.0.0 0 0 i
*> 12.1.1.0/24 0.0.0.0 0 0 i
状态 网络号 属性
*标识条目可用 >标识条目优秀 i本地通过IBGP邻居关系学习
注:条目若不是最优将不能加载到本地路由表,也不能传递给任何邻居;无效路由必然不优;因为AS-BY-AS的规则,导致在一个AS内部传递时属性不变,可能导致下一跳不可达,路径不优;在EBGP邻居关系间传递路由时下一跳将自动被修改为本地。若BGP存在同步问题时,条目也不能优(Cisco和HUAWEI默认均关闭了同步)。
[r2-bgp]peer 3.3.3.3 next-hop-local //将路由传递给该邻居时,下一跳修改为本地;