BGP - 2,BGP报文和BGP状态
1,BGP报文
Open:建邻居,交换version、AS号、holdtime、BGP identifier(即RouterID)、可选参数长度、可选参数。
Keepalive:保持邻居 ,即和BGP对等体的keepalive消息。
Update:路由更新 ,NLRI(前缀和前缀长度)、路径属性、被撤销路由。每个update只有一个路径信息。
Notification:出错关闭连接 ,检测到错误条件时发送notification,然后立即关闭BGP连接。
Route-refresh:路由策略变化时,重新请求。
备注:
BGP RouterID选择方法同OSPF。
IGP建邻居和保持邻居都是hello包;BGP建邻居open,保持邻居keepalive。
思科默认keepalive是60s,holdtime是180s,即180s收不到keepalive即失效。
2,BGP状态
Idle:初始状态,查找邻居路由。
Connect:已找到路由,开始发送TCP包。尝试TCP三次握手,成功则进入OpenSent,失败则进入Active反复尝试。
Active:继续发送TCP包。TCP连接建立失败,反复尝试。
OpenSent:发送Open包,等待对方Open包。收到对端Open后,成功则进入OpenConfirm,出错则发送notification。
OpenConfirm:发送keepalive包,等待对端keepalive/notification。前者则进入established,后者则进入idle。
Established:收到keepalive,开始交换update。show ip bgp summary最后一列会显示数字
状态迁移表:
状态 | 操作 | 成功 | 失败 |
idle | 查邻居路由 | 进入connect | 进入idle |
connect | 发TCP包建TCP | 进入opensent | 进入active |
active | 发TCP包建TCP | 进入opensent | 进入active |
opensent | 发open等待一致open | 进入openconfirm | 发送notification |
openconfirm | 发keepalive等待keepalive/notification | 前者进入established | 后者进入idle |
established | 交互update | 无 | 无 |
停在idle:本端问题,没有路由,查看IGP是否有问题
停在active:对端问题,邻居没有本端路由表,邻居配错了对端地址,邻居没有配命令,邻居AS号配错,neighbor对端与更新源不对。
3,建邻居和通告路由使用命令
|
IGP | BGP |
建邻居,即发hello包 | network | neighbor |
通告路由 | network | network |
备注:建邻居后,一端TCP179,另一端随机端口,另外建立两条链路,然后随机拆掉一条