BGP状态机
Peer状态名称 |
用途 |
Idle |
开始准备TCP连接和监控远程对等体,启用BGP时,要准备足够的资源,Idel状态会拒绝一切TCP连接。 |
Connect |
正在进行TCP连接,等待完成,认证都在TCP在建立期间完成。包括重传时间,需要32秒。TCP成功建立连接,进入OpenSent状态。如果TCP如果连接建立失败,则进入Active状态,反复尝试连接。 |
Active |
如果Connect中TCP连接没有成功建立,反复尝试TCP连接 |
OpenSent |
TCP连接已成功建立并开始发送Open包,Open协商建立包携带参数对等体。 |
OpenConfirm |
协商成功发送参数和能力特征Keepalive包,等对方Keepalive包 |
Established |
已收到对方的Keepalive经协商发现双方能力特征一致,开始使用Update通知路由信息 |
1.Idle状态
在Idle状态下,。只收到设备
Start事件后,BGP开始尝试和别人一起尝试BGP对等体进行TCP连接,转向Connect状态。
Start事件由操作员配置BGP或重置现有的过程或路由器软件
BGP过程造成的。
2.Connect状态
在Connect状态下,,等待TCP完成连接。
如果TCP连接成功,那么BGP向对等体发送Open报文,OpenSent状态。
如果TCP连接失败(找到对等体)BGP转至Active状态。
若连接重传定时器超时(未找到对等体),BGP仍没有收到BGP对等体的反应,那么BGP继续
尝试和其它BGP对等体进行TCP连接,停留在Connect状态,继续启动连接重传定时器(Connect Retry 32秒),直到找到对等体。
3.Active状态
如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,转移到OpenSent状态。
如果TCP连接失败,那么BGP停留在Active状态。
若连接重传定时器超时(未找到对等体),BGP仍没有收到BGP对等体的反应,那么BGP转至Connect状态。
4.OpenSent状态
如果收到的Open报文正确,那么BGP发送Keepalive报文,OpenConfirm状态。
若发现收到Open报文有错误,那么BGP发送Notification报文交给对等体,转到对等体Idle状态。
5.OpenConfirm状态
在OpenConfirm状态下,BGP等待Keepalive或Notification如果收到Keepalive报文,转到
Established如果收到状态Notification报文,转到Idle状态。
6.Established状态
在Established状态下,BGP可与对等体交换Update、Keepalive、Route-refresh报文和Notification报文。
若收到正确的Update或Keepalive报文,那么BGP认为对端正常运行,将保持BGP连接。
若收到错误Update或Keepalive报文,那么BGP发送Notification报文通知对端,转到Idle状态。
Route-refresh报文不变BGP状态。
如果收到Notification报文,那么BGP转至Idle状态。
如果收到TCP拆链通知,那么BGP断开连接,转到Idle状态。
BGP对等体之间的交互原则
BGP添加最优路由的设备BGP形成路由表BGP路由。BGP与对等体建立邻居关系,采取
以下
1 从IBGP对等体获得BGP路由,BGP设备只发布给它EBGP对等体。
2 从EBGP对等体获得BGP路由,BGP将设备全部发布EBGP和IBGP对等体。
3 当有多条有效路由到达同一目的地址时,BGP设备只向对等体发布最优路由。
4 路由更新时,BGP只发送更新的设备BGP路由。
5 对等体发送的所有路由,BGP设备都会接收。
BGP影响建立平等关系的因素
和必须
的
BGP对等体表
<R1>display bgp peer BGP local router ID : 1.1.1.1 Local AS number : 100 Total number of peers : 3 Peers in established state : 3 Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre fRcv 2.2.2.2 4 100 6167 6168 0 0102h44m Established 1 3.3.3.3 4 100 6167 6169 0 0102h44m Established 1 4.4.4.4 4 100 6135 6133 0 0102h08m Established 2
BGP路由表
<R1>display bgp routing-table 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: 5
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 11.11.11.11/32 0.0.0.0 0 0 i
*>i 22.22.22.22/32 2.2.2.2 0 100 0 i
*>i 33.33.33.33/32 3.3.3.3 0 100 0 i
*>i 44.44.44.44/32 4.4.4.4 0 100 0 i
*>i 55.55.55.55/32 4.4.4.4 0 100 0 200i
BGP详细路由表
<R1>display bgp routing-table 55.55.55.55
BGP local router ID : 1.1.1.1
Local AS number : 100
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 55.55.55.55/32:
From: 4.4.4.4 (4.4.4.4)
Route Duration: 4d04h53m53s
Relay IP Nexthop: 10.1.0.2
Relay IP Out-Interface: GigabitEthernet0/0/1
Original nexthop: 4.4.4.4
Qos information : 0x0
AS-path 200, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, bes
t, select, active, pre 255, IGP cost 3
Not advertised to any peer yet
路由属性
任何一条BGP路由都拥有多个,当路由器通告BGP路由给它的对等体时,该路由将会,这些属性描述了BGP路由的各项特征,同时在某些场景下也。
属性分类
一 公认属性
:在每个Update消息里。
:在某些Update消息里。
二 可选属性
:BGP设备此类属性依然会给其他对等体。
:BGP设备此类属性会,且给其他对等体。
抓包观察
常见路由属性分类
公认必遵属性详解
一 Origin
它标识了BGP路由的起源。根据路由被引入BGP的方式不同,存在三种类型的Origin。
当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下,BGP将按如Origin的下顺序优选路由:。
起源名称 |
标记 |
描述 |
IGP |
i |
如果路由是由始发的BGP路由器使用network命令注入到BGP的,那么该BGP路由的Origin属性为IGP |
EGP |
e |
如果路由是通过EGP学习到的,那么该BGP路由的Origin属性为EGP |
Incomplete |
? |
如果路由是通过其他方式学习到的,则Origin属性为Incomplete(不完整的)。例如通过import-route命令引入到BGP的路由 |
修改Origin
[R1-route-policy]apply origin igp
二 AS_Path
是前往目标网络的路由经过的AS号列表。
路由在被,路由器会在该路由的AS_Path中;路由被,。
在BGP中,当同一目的地存在多条路由时,路由器会AS_Path属性中的路由。
修改AS_Path
[R1-route-policy]apply as-path 100 additive
[R2-route-policy]apply as-path 100 overwrite
[R3-route-policy]apply as-path none overwrite
三 Next_Hop
用于指定到达目标网络的下一跳地址。
当路由器学习到BGP路由后,需对BGP路由的Next_Hop属性值进行检查,该属性值(IP地址)必须在本地路由可达,如果不可达,则这条BGP路由不可用。
修改Next_hop
[R1-bgp]peer 1.1.1.1 next-hop-local