首页 > 编程知识 正文

bgp工作过程,bgp的状态机

时间:2023-05-05 01:08:53 阅读:253027 作者:1335

成功是留给有准备的人。

文章目录 一、拓扑二、基础配置三、BGP状态停留测试四、总结4.1 BGP5种报文类型4.2 BGP状态机4.3 BGP邻居的建立4.4 BGP邻居关系建立4.5 BGP路由属性及所属类型

一、拓扑

二、基础配置

1、IGP

(1)AR-1,AR-2,AR-3运行OSPF协议
AR-1,AR-2的环回口宣告进OSPF协议,AR-3环回口不要宣告进OSPF
(2)AR-4与AR-5运行IS-IS协议,将各自环回口宣告进IS-IS协议

2、静态路由

在AR3与AR5互相配置指向对方环回接口的静态路由

3、BGP

IBGP: AR-1与AR-3通过环回口建立IBGP邻居(AS 100)
EBGP:AR-3与AR-4通过直连物理接口建立EBGP邻居
AR-3与AR-5通过环回接口建立EBGP邻居

[AR-5]bgp 200[AR-5-bgp]peer 3.3.3.3 connect-interface LoopBack 0[AR-5-bgp]peer 3.3.3.3 next-hop-local[AR-5-bgp]peer 3.3.3.3 ebgp-max-hop 其他设备配置类似

dis bgp peer

三、BGP状态停留测试

IBGP的TTL默认是255
EBGP的TTL默认是1

peer X.X.X.X valid-ttl-hops N

此命令有两个作用:

(1)在向邻居X.X.X.X发送BGP报文时TTL为255

(2)在接收邻居X.X.X.X来的BGP报文时,要求报文的TTL大于等于255-N+1

1、Idel空闲状态(不进行TCP连接也不发送任何BGP报文)

本BGP设备的IP路由表内不存在去往邻居的路由信息

(1)只在设备AR1配置了以下命令,其他设备没有配置BGP的相关信息

[AR-1]bgp 100[AR-1-bgp]router-id 1.1.1.1[AR-1-bgp]peer 3.3.3.3 connect-interface l0[AR-1-bgp]peer 3.3.3.3 next-hop-local

dis bgp peer

(2)在IBGP全互联的情况下,执行以下命令

[AR-1-bgp]undo peer 12.1.1.2 [AR-2-bgp]undo peer 23.1.1.3[AR-2-bgp]undo peer 12.1.1.1[AR-3-bgp]undo peer 23.1.1.2

dis bgp peer

2、Connect连接状态

尝试TCP连接状态

(1)本地设备存在去往指定邻居的路由,但是中间设备不存在去往指定邻居的路由

[AR-1-bgp]undo peer 12.1.1.2 [AR-2-bgp]undo peer 23.1.1.3[AR-2-bgp]undo peer 12.1.1.1[AR-3-bgp]undo peer 23.1.1.2

dis bgp peer

(2)EBGP建立邻居数据包的TTL值消耗殆尽

AR6

isis 1 auto-cost enable network-entity 49.0001.0000.0000.0006.00#interface GigabitEthernet0/0/0 ip address 56.1.1.6 255.255.255.0 isis enable 1#interface LoopBack0 ip address 6.6.6.6 255.255.255.255 isis enable 1#bgp 200 peer 3.3.3.3 as-number 100 peer 3.3.3.3 ebgp-max-hop 255 peer 3.3.3.3 connect-interface LoopBack0 peer 5.5.5.5 as-number 200 peer 5.5.5.5 connect-interface LoopBack0 # ipv4-family unicast undo synchronization peer 3.3.3.3 enable peer 5.5.5.5 enable#ip route-static 0.0.0.0 0.0.0.0 56.1.1.5#[AR-3-bgp]peer 6.6.6.6 ebgp-max-hop[AR-6-bgp]peer 3.3.3.3 ebgp-max-hop

dis bgp peer

修改EBGP数据包中的TTL值为1

[AR-6-bgp]peer 3.3.3.3 ebgp-max-hop 1[AR-3-bgp]peer 6.6.6.6 ebgp-max-hop 1

dis bgp peer

3、Active:活跃状态

TCP连接失败,完成重传计时器后重新发起新一轮TCP连接

dis bgp peer

(1)指定邻居地址错误

[AR-2-bgp]peer 12.1.1.3 as 100[AR-2-bgp]undo peer 12.1.1.1

dis bgp peer

(2)与邻居R-ID重复

[AR-1-bgp]router-id 3.3.3.3

[AR-1]dis bgp peer

会短暂停留在Active状态,然后退到Idle状态;
在BGP初始化状态下,只有在收到本设备的Start事件后,BGP才开始尝试和其他BGP对等体进行TCP连接,并转至Connect状态;如果TCP连接失败,则进入active状态。

AR3的g0/0/1接口,开启抓包;(重新启动邻居状态)

四、总结 4.1 BGP5种报文类型

Open:协商邻居

TCP 会话建立起来自以后,两个邻居都要发送一个 Open 报文,每个邻居都使用该报文标识自己,并且规定自己的 BGP 运行参数。如果 open 消息被接受,则回送一条 keepalive 消息进行确认,确认后就能发送 update

Update:更新路由/撤销路由

Update报文进行路由信息的交换;Update报文既用来通告可用路由信息,也可以通告不可达需要撤销的路由信息

Notification:错误通告

当BGP检测到错误状态时,就会向对等体发出Notification通知报文,之后BGP连接会立即中断

Keepalive:保持邻居关系

如果路由器接受了邻居在 OPEN 消息中的参数,就会应答一个 Keepalive 消息,并且在此后 1/3 的 holdtime(但不小于 1S)为周期发送该消息,华为设备默认 60S一发,保持时间默认180S。如果协商后保持时间为 0,标识此邻居永远UP,则不发送 keepalive 保活消息

Route-refresh:用来刷新路由

路由刷新报文用来要求对等体重新发送指定地址族的路由信息

4.2 BGP状态机

1、Idle状态

Ide-----空闲状态

(1)BGP空闲状态,在Idle状态下BGP拒绝邻居发送的连接请求,此时等待由BGP系统发出的Start事件
(2)Start(管理员配置邻居)事件发生后,BGP会对自己的资源进行初始化,重置连接计时器(Connect Retry 默认32S)发起TCP连接请求,并开始侦听远端对等体发起的连接端口,并转至Connect状态

2、Connect状态

Connect-----连接状态-----发起TCP的三次握手

在Connect状态下,BGP启动连接重传定时器,等待TCP完成连接。
(1)如果TCP连接成功,那么BGP会向对等体发送Open报文,并转至OpenSent状态
(2)如果TCP连接失败,那么BGP转至Active状态
(3)如果连接重传定时器超时,BGP任没有收到BGP对等体的响应,那么BGP继续尝试TCP连接,停留在Connect状态。

3、Active状态

Actieve-----活跃状态-----不断重新发起TCP的三次握手

在Active状态下,BGP总是试图建立TCP连接
(1)如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent
(2)如果TCP连接失败,停留在Active状态
(3)如果连接重传定时器超时,任没有收到BGP对等体的响应,那么BGP转至Connect状态

4、OpenSent状态

openset-----发送open报文协商部居关系

在OpenSent状态,BGP等对等体的Open报文,并对收到的Open报文中的AS号,版本号,认证信息等进行检查
(1)如果收到的Open报文正确,那么BGP发送Keepalive报文,且重置Keepalive定时器,并转至OpenConfirm状态。
(2)如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体。并转至Idle状态。

5、OpenConfirm状态

Openconfim-----自己发送Keeplive-----等待对方的Keeplieve

在OpenConfirm状态下,BGP等待Keepalive或Notification报文。
(1)如果收到Keepalive报文,则转至Established状态(BGP邻居的最终状态)
(2)如果收到Notification报文,则转至Idle状态

6、Established状态

Established-----最终状态----接下来就可以发送UPdate

在Established状态下,BGP对等体之间交互Update,Keepalive,Route-refresh报文和Notification报文。

4.3 BGP邻居的建立

1、通用事项

(1)建立邻居之前请先检查本设备BGP的更新源地址与对端更新源地址网络互通。
(2)确保本设备为任何针对BGP邻居地址的TCP-179的限制或者策略

2、EBGP邻居建立

(1)不同AS号的BGP设备建立EBGP邻居,用于不同AS之间路由信息的传递
(2)EBGP建立邻居建议采用直连物理接口
(3)如果EBGP邻居之间存在多条直连路径,需要指定建立BGP邻居的更新源地址(connect-interface 接口编号)
(4)如果采用环回口建立EBGP邻居,必须补充以下两步
必须指定对等体的更新源地址

[AR-3-bgp]peer 12.1.1.1 connect-interface LoopBack 0 //指定与12.1.1.1建立邻居时更新源地址为本设备的环回口0必须更改建立邻居数据包的TTL值参数(EBGP的数据包,TTL默认为1)[AR-3-bgp]peer 34.1.1.4 ebgp-max-hop //修改与34.1.1.4建立EBGP邻居的数据包TTL值为X,如果不明写则修改为255

(5)如果采用物理接口建立邻居,存在多条路径,且属于非直连状态时,需要指定更新源

3、IBGP邻居建立

(1)同AS号的BGP设备建立IBGP邻居,用来传递本AS内路由信息的传递
(2)IBGP建立邻居建议采用设备环回口,如果采用环回口建立邻居,必须执行以下动作
必须指定对等体的更新源地址

[AR-3-bgp]peer 12.1.1.1 connect-interface LoopBack 0 //指定与12.1.1.1建立邻居时更新源地址为本设备的环回口0(建立IBGP邻居建议采用环回口)

(3)如果采用物理接口建立邻居,存在多条路径,且属于非直连状态时,需要指定更新源

4.4 BGP邻居关系建立

4.5 BGP路由属性及所属类型 类型属性类型代码属性类型公认必须遵循1Origin(源)公认必须遵循2AS-Path(AS路径)公认必须遵循3Next_Hope(下一跳)可选非过渡/可选非传递4Multi_Exit_Dise(多出口区分)公认任意5Local_Pref(本地优先级)公认任意6Atomic_Aggregate公认任意7Aggregator可选过渡/可选传递8Community(团体)可选非过渡/可选非传递9Originator_ID可选非过渡/可选非传递10Cluster_List

本人所有文章都受版权保护,著作权归艺博东所有!未经授权,转载必究或附上其原创链接。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。