BGP基础(1)

BGP简介

互联网定义:
边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,BGP属于外部或域间路由协议。BGP的主要目标是为处于不同AS中的路由器之间进行路由信息通信提供保障。BGP既不是纯粹的矢量距离协议,也不是纯粹的链路状态协议,通常被称为通路向量路由协议。

协议特点:

(1)BGP支持基于策略的选路(policy-base routing)。
(2)可靠的传输。BGP路由信息的传输采用了可靠地TCP协议。端口号为179
(3)BGP支持无类型编制(CIDR)及VLSM方式。

协议报文

BGP 对等体间通过以下 5 种报文进行交互,其中 Keepalive 报文为周期性发送,其余报文为触发式发送:

Open 报文:用于建立 BGP 对等体连接。

Update 报文:用于在对等体之间交换路由信息。

Notification 报文:用于中断 BGP 连接。

Keepalive 报文:用于保持 BGP 连接。

Route-refresh 报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的 BGP 设备会发送和响应此报文。

报文交互角色

BGP 报文交互中分为 Speaker 和 Peer 两种角色。
Speaker:发送 BGP 报文的设备称为 BGP 发
(Speaker),它接收或产生新的报文信息,并发布(Advertise)给其它 BGP Speaker。
Peer:相互交换报文的 Speaker 之间互称对等体(Peer)。若干相关的对等体可以构成对等体组(Peer Group)。

链接状态过程

1、Idle 状态是 BGP 初始状态。在 Idle 状态下, BGP 拒绝邻居发送的连接请求。只有在收到本设备的 Start 事件后, BGP 才开始尝试和其它 BGP 对等体进行 TCP 连接,并转至 Connect状态。

2、在 Connect 状态下, BGP 启动连接重传定时器(Connect Retry),等待 TCP 完成连接。

如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,并转至 OpenSent 状态;

如果 TCP 连接失败,那么 BGP 转至 Active 状态;

如果连接重传定时器超时, BGP 仍没有收到 BGP 对等体的响应,那么 BGP 继续尝试和其它 BGP 对等体进行 TCP 连接,停留在 Connect 状态。

3、在 Active 状态下, BGP 总是在试图建立 TCP 连接。

如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,关闭连接重传定时器,并转至 OpenSent 状态;

如果 TCP 连接失败,那么 BGP 停留在 Active 状态;

如果连接重传定时器超时, BGP 仍没有收到 BGP 对等体的响应,那么 BGP 转至 Connect状态。

4、在 OpenSent 状态下, BGP 等待对等体的 Open 报文,并对收到的 Open 报文中的 AS 号、版本号、 认证码等进行检查。

如果收到的 Open 报文正确,那么 BGP 发送 Keepalive 报文,并转至 OpenConfirm 状态;

如果发现收到的 Open 报文有错误,那么 BGP 发送 Notification 报文给对等体,并转至Idle 状态。

说明:
任何状态中收到 Notification 报文 或 TCP 拆链通知等 Error 事件后, BGP 都会转至 Idle状态。

5、在 OpenConfirm 状态下, BGP 等待 Keepalive 或 Notification 报文。如果收到 Keepalive 报文,则转至 Established 状态,如果收到 Notification 报文,则转至 Idle 状态。

6、在 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 状态。

邻居关系

相同AS号的称为:IBGP
不同AS号的称为: EBGP
说明:
通常情况下我们EBGP建立时用直连接口,IBGP建立时用环回接口
EBGP建立时也可以用环回接口,但路由器必须配置多跳。

BGP四类属性

公认必遵(Well-known mandatory)

公认强制所有BGP路由器都可以识别,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错。

1、 ORIGIN

ORIGIN可以是以下三种值:

1)IGP:表示网络层可达信息来源于AS内部

2)EGP :表示网络层可达信息通过AS外部学习

3)incomplete:表示网络层可达信息来源无法确定

路由注入途径:

一般情况下

1、把通过network命令指定注入到BGP中的路由的ORIGIN属性设置为IGP;

2、把通过EGP注入BGP中的路由ORIGIN属性设置为EGP;

3、把由IGP协议引入到BGP中的路由的ORIGIN属性设置为Incomplete。
例如:通过import-router引入到BGP的路由的ORIGIN属性Incomplete
   
   说明:
   在路由选择的时候,IGP>EGP>incomplete

2、AS_PATH

一条路由在传输过程中经历了哪些AS(不算自己的)顺序是最近经过as的排前面。
发布路由给IBGP对等体时,不修改路由的AS_PATH属性。
发布路由给EBGP对等体时,本地系统应该把自己的AS号作为序列的最后一个元素加在序列的最后面。

AS_PATH可以用来作为路由选路的一种度量。经过更少AS路径的路由更优先。

EBGP防环:
如果路由器从EBGP对等体收到一条路由,它的AS_PATH包含自己的AS号,就说明这条路由曾经从本AS发出过,将其丢弃,同时不再进行转发。

解决办法:
配置路由传递时下一跳改为自己

BGP   100
		peer    x.x.x.x   next-hop-local	

IBGP防环:
默认情况下,BGP从IBGP收到的路由,不会在发布给自己的邻居。
解决办法:
配置路由反射器x.x.x.x

BGP   100
		peer   x.x.x.x	reflect-client

NEXT_HOP

定义了到达目的地下一跳的设备IP地址

如果是发布给EBGP对等体,NEXT_HOP填写BGP发布者的IP地址

如果是发布给IBGP对等体,且路由来自AS外部,则NEXT_HOP保留原始的AS外部对等体的IP地址

公认任意(Well-known discretionary)

公认非强制所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来决定是否添加到Update消息中。

Local-Preference
用来通告路由的优先程度, 默认值是100
Atomic-Aggregate(as-set)
用来通告路由接收者,该路由是经过聚合的,标识汇总路由

可选非传递属性
多种协议扩展都用到了这两个属性,不常见,但是IE考试会考
扩展协议可达 NLRI(MP_REACH_NLRI)
扩展协议不可达 NLRI(MP_UNREACH_NLRI)

可选过渡(Optional transitive)

BGP的路由器可以选择是否在Update消息中携带这种路由属性。接收的路由器如果不识别这种属性,可以转发个邻居路由器,邻居路由器可能会识别并使用到这种属性。

Aggreagator
聚合者,标识聚合路由的来源AS和聚合者。通告汇总设备的Router-ID。

Community
用于标识具有相同特征的BGP路由,使路由策略的应用更加灵活,是一组共享相同属性的目的地集合,是可选过渡属性。

可选非过渡(Optional non-transitive)

BGP路由器可以选择是否在Update消息中携带这种属性。在整个路由发布的路径上,如果部分路由器不能识别该属性,可能会导致该属性无法发挥效用。因此接收的路由器如果不识别这种属性,将丢弃这种属性,不必在转发给邻居路由器。

MED
属性用于判断流量进入AS时的最佳路由,当一个运行BGP的设备通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。

MED属性仅在相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS。MED属性可以手动配置,不配置缺省为0

Originator-ID
标识路由的来源设备

Cluster-List
防止路由的反射回路

BGP选择路由的策略

1.优选协议首选值(PrefVal)最高的路由。
协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。2.优选本地优先级(Local_Pref)最高的路由。
如果路由没有本地优先级,BGP选路时将该路由按缺省的本地优先级100来处理。
3.依次优选手动聚合路由、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由。
4.优选AS路径(AS_Path)最短的路由。
5.依次优选Origin类型为IGP、EGP、Incomplete的路由。
6.对于来自同一AS的路由,优选MED值最低的路由。
7.依次优选EBGP路由、IBGP路由、LocalCross路由、RemoteCross路由。
8.优选到BGP下一跳IGP度量值(metric)最小的路由。
9.优选Cluster_List最短的路由。
10.优选Router ID最小的设备发布的路由。
11.优选从具有最小IP Address的对等体学来的路由。

BGP 与IGP交互

1.BGP引入IGP路由

当一个AS需要将路由发布给其他AS时,AS边缘路由器会在BGP路由表中引入IGP的路由。为了更好的规划网络,BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置,也可以设置MED值指导EBGP对等体判断流量进入AS时选路。

BGP引入路由时支持Import和Network两种方式:

Import方式是按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中。为了保证引入的IGP路由的有效性,Import方式还可以引入静态路由和直连路由。

Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确。

IGP引入BGP路由

当一个AS需要引入其他AS的路由时,AS边缘路由器会在IGP路由表中引入BGP的路由。为了避免大量BGP路由对AS内设备造成影响,当IGP引入BGP路由时,可以使用路由策略,进行路由过滤和路由属性设置。

**关于BGP其他特点,下期在讲,累了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
BGP中的Keepalive是一种定期发送的报文,用于维持BGP邻居关系。如果收到正确的Update或Keepalive报文,BGP就认为对端处于正常运行状态,并保持BGP连接。Keepalive报文的格式只包含报文头,没有附加其他任何字段。该报文的目的是确保BGP会话的连通性,并及时检测到邻居的异常情况。如果收到错误的Update或Keepalive报文,BGP将发送Notification报文通知对端,并转至Idle状态。而Route-refresh报文不会改变BGP状态。如果收到Notification报文,BGP会转至Idle状态。另外,如果收到TCP拆链通知,BGP会断开连接并转至Idle状态。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [BGP的5种交互报文、6种状态机、对等体关系建立与路由交互过程介绍](https://blog.csdn.net/qq_45443704/article/details/129895505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [BGP基础](https://blog.csdn.net/zljszn/article/details/124732057)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青春一张会老的脸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值