BGP协议

BGP:
外部网关协议:用于各AS之间的协议
使用TCP作为传输层协议:可靠
增量更新:不同于OSPF需要周期性通告,
支持CIDR
路径矢量路由协议
无环路
可扩展


报文类型:
Open:类似于OSPF的Hellow报文,建立邻居的作用
Keepalive:类似于OSPF的Hellow报文,保持邻居关系,(周期)
Update:包含交换路由的信息
Notification:用来发送差错通知
Route-Refresh:改变路由策略后重新发送路由信息


BGP邻居建立过程:
Idle状态:初始状态
Connect:连接状态,成功发送Open报文,失败转为 -----> Active:正在进行TCP连接,超时则返回Connect状态
OpenSent:等待对等体 Open报文,并进行检查,正确发送 Keepalive报文,错误发送 Notification报文
OpenConfirm:等待上边两个报文,选择转至连接成功状态或者 Idle 状态
Established:连接成功,如果收到 Notification报文 则转至 Idle 状态


交互原则:
从IBGP获得的BGP只发布给EBGP,防止IBGP的内部环路
从EBGP获得的BGP发布给所有的IBGP和EBGP


EBGP用于AS之间:推荐使用直连(可以静态路由连接),注意:EBGP之间 TTL=1
IBGP用于AS内:可用直连和非直连:地址可达建立BGP(TTL:255)


EBGP配置 :邻居需要互相指向,环回改更新源、多跳
IBGP配置 :peer [ip]要可达 as-n [对方as号]

配置注意事项:
推荐使用环回接口配置邻居,但是要注意open协商邻居时会使用出口地址作为源地址,!!!需要改更新源 !!!
:peer 邻居 connect-interface 源地址或者源接口或环回接口


IBGP之间 保证可达性:
1.接口:直接连接
2.环回:更新源

EBGP之间推荐使用直连
1.接口:出口指向邻居
2.环回:如果使用环回
1)更新源
2)ttl≥2

 

>:最优路由,只有最优路由会写入路由表
*:下一跳地址,只有下一跳可达,该条路由有效
path/Ogn:as-path记录经过的AS号,相同不接收。
(1) i 表示network(IGP->BGP)方式注入
(2) ? 表示import方式注入

从EBGP学到的路由下一跳为EBGP出口,IBGP中需要将下一条路由改为与EBGP直连路由
水平分割:IBGP避免防环,所以其他IBGP也需要配置邻居。peer 邻居 next-hop-loc

 


BGP路径选择问题:从BGP邻居传来的Update报文时,会将最优路由写入路由表,并且发送给其他邻居,得出最佳路径

大致过程:对等体更新信息 -> Adj-RIB in(输入策略) ----> 路由 ----> Adj-RIB out(输出策略) -> 对等体更新信息


BGP属性:
公认必遵:大家都支持,且必须遵守,必须携带(起源、path、下一跳)Next-hop属性从EBGP学到的路由下一条不变
公认任意:大家都支持,但可以携带或不携带,Local-Preference/(用于在AS内)优先选择值大的(出)
可选过渡:接收的路由器如果不识别这种属性,可以转发给邻居路由器,Community/团体属性()
可选非过度:不会传递给其他对等体,如MED:只传一跳(入)

 

部分参考:BGP协议总结(比较详细,好理解)_Looo~ye的博客-CSDN博客

posted @ 2023-04-19 10:42  四个春天  阅读(77)  评论(0编辑  收藏  举报