BGP是外部路由协议,用来在AS之间传递路由信息,是一种增强型的距离矢量协议,工作在应用层
可靠的路由更新机制,丰富的metric度量方法(属性),无类支持VLSM
协议号:1-65534,64512-65535是私有协议号
第七层应用层协议,封装进传输层的TCP实现可靠传输,目的端口179
BGP分为IBGP和EBGP
IBGP:不一定直连,TTL值255
EBGP:直连,TTL值=1
基于TCP协议,邻居关系需要手动配置,是一种单播通信
EBGP邻居配置:
1,直连物理接口配置EBGP邻居
peer 1.1.1.1 as-number 2
指定的邻居地址为本端向该邻居发送BGP报文的目的地址,同时这个地址应该为对端向本端发送BGP报文的源地址
源地址默认情况下为去往邻居地址路由的出接口IP
默认下,EBGP邻居之间发送的BGP报文TTL=1,强制要求EBGP邻居直连
peer 1.1.1.1 ebgp-maxhop 2 //当EBGP邻居之间存在多跳时,指定向EBGP邻居发送BGP报文的TTL值
2,使用环回口建立邻居
peer 2.2.2.2 connect-interface Loopback 0 : 指定向邻居发送BGP报文的源地址为loopback0的接口的地址
OutQ : 给邻居发送数据包的链路上停滞了几个数据包等待发送
PrefRcv : 已经发送给几条路由条目给对方
无需周期性更新,只发送增量路由
周期性发送keepAlive报文检测TCP连通性,hello时间60,dead时间180s
BGP报文有五种类型:
open :邻居建立和能力协商的参数,至少要有一个参数协商一致
keepAlive : 默认每隔60s周期性发送,如果·180s没有收到keepalive报文,则认为BGP邻居失效,断开TCP连接
Update : BGP路由传递及撤销
Notification : 通知报文用于报错,收到该报文只有一个结果,就是断开TCP连接
Route-refresh : 用于手动进行BGP路由的触发更新,或者用于ORF功能
OPEN报文:用于邻居关系建立和能力协商的参数
1,邻居参数协商,自身AS号,要和邻居指定的AS号一致,否则邻居无法建立
BGP router id : 不同冲突,否则邻居关系无法建立
hold time : 邻居失效时间,默认180s,如何不一致,则协商小的
BGP version : 默认运行的BGPv4,一般不存在版本不同的情况
2, BGP邻居能力的协议 : 地址族协商一致,不一致邻居无法建立,默认IPv4单播地址族
路由刷新能力,即手动触发更新能力
是否支持4字节AS号的能力
BGP的状态机:
IDLE(空闲):BGP连接的第一个状态,如果一直卡在这个状态则可能是
1,没有前往邻居地址地路由,无法发起TCP三次连接,也无法完成TCP三次连接,
2,邻居发起的TCP握手被本端拒绝,拒绝地原因是邻居发起的TCP报文地源地址不是本端指定地邻居地址。
CONNECT(连接):
ACTIVE(活跃) :
opensent : 代表已经发送open报文,并代表等待接收邻居的open报文
opencofirm : 代表已经收到邻居的open报文,并已经发送keepAlive报文,等待接收邻居的keepAlive报文
Established : 收到; 邻居的KeepAlive报文
BGP路由通告原则:
BGP路由传递给EBGP邻居时,下一跳自动修改为向该EBGP邻居发送BGP报文时的源地址
由EBGP邻居传来的路由转发给IBGP时的下一跳默认保持不变:
解决办法:
undo synchronization 关闭同步功能,华为默认关闭,且无法开启
refresh bgp all export 向所有BGP邻居手动触发路由更新