BGP边界网关协议(华为面试)

一、BGP基本特性

1、实现自治系统间的通信,传播网络的可达信息。
2、可靠的传输。BGP是基于TCP协议承载的,179端口,TCP采用单播建立连接,因此BGP只能手动指定邻居。
3、更新方式:增量路由更新
4、路由附带丰富的属性
5、支持CIDR和路由聚合
6、提供路由环路避免机制,能够有效的传递路由,维护大量的路由信息。
7、BGP可以跨越多跳路由器建立邻居

二、BGP报文

1、报文头部

在这里插入图片描述

2、五种报文及作用

Open:用于邻居关系的建立 Keepalive:周期性的向BGP对等体发出KeepAlive消息,来保持链接的有效性
Update:携带的是路由更新(增加或减少)信息
Notification:当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即被关闭
Route-refresh:用于在改变路由策略后请求对等体重新发送指定地址族的路由信息

在这里插入图片描述
BGP所有的消息格式都是“消息头+消息体”的形式,消息头的长度为19个字节。

①、Open消息:Open消息是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的链接关系并进行参数协商。内容包括使用的BGP版本号、自己所属的AS号、路由ID、HoldTime值、认证信息等信息。
②、Keepalive消息:BGP会周期性的向对等体发出Keepalive消息,主要作用就是让BGP邻居知道自己的存在,保持邻居关系的稳定;另外一个作用就是对收到的Open消息的回应。消息格式中只包含消息头,没有附件任何字段。长度为19字节,消息只有标记、长度、类型,不包括数据域。
③、UPdate消息:主要用于在对等体之间交换路由信息。它既可以发布可达路由信息,也可以发布不可达路由消息;一条Update消息可以通过一类具有相同路径属性的可达路由,同时还可以携带多条不可达路由。
④、Notification消息:Notification的作用就是错误通知。BGP发言者如果检测到对方发过来的消息有错误或者主动断开BGP链接,都会发出Notification消息来通知BGP邻居,并关闭链接回到idle状态;如果收到邻居发来的 Notification消息,也会将链接状态变为idle。Notification消息的内容包括错误代码和错误子代码及错误数据等信息。
⑤、Route-refresh消息:Route-refresh用来要求对等体重新发送指定地址族的路由信息。

三、BGP状态机

在这里插入图片描述

①、Idle状态(空闲状态):是初始状态,不接受任何BGP连接,等待start时间的产生。如果有start事件产生则系统开启ConnectRetry定时器,向邻居发起TCP连接,将状态变为Connect。
②、Connect状态(连接状态):在Connect状态,BGP路由启动重传计时器,等待TCP完成链接。
如果TCP状态为Established,则拆除ConnectRetry定时器,并发送OPEN消息,将状态变为Opensent状态;
如果TCP连接失败则重置ConnectRetry定时器,并发送OPEN消息,将状态变为Active; 如果ConnectRetry timer expired(重传定时器)超时,则重新连接,扔处于Connect状态
③、Active状态(活跃状态):如果有启动时间但是TCP连接未完成则处于Active状态,在Active状态系统会响应ConnectRetry timer expired事件,重新进行TCP连接,同时重置ConnectRetry定时器,变为Connect状态;
如果与对方的TCP连接成功建立则会发送OPEN消息,将状态变为OpenSend,并清除ConnectRetry定时器,重置HoldTime定时器。
④、Openset状态(OPEN消息已发送):此状态表明系统已经发出Open消息,在等待BGP邻居发给自己的OPEN消息。
如果收到BGP邻居发来的OPEN消息,并且没有错误的话,则转向Openconfirm状态,同时将HoldTime定时器的值置为协商值,发送Keepalive消息并置Keepalive定时器; 如果有错误则发送Notification消息并断开链接。
⑤、OpenConfirm状态(OPEN消息确认):此状态表明系统已经发出Keepalive消息,并等待BGP邻居的Keepalive消息。
如果收到邻居的Keepalive消息则转向Established状态并重置HoldTime定时器;
如果KeepAlive定时器超时则重置并发送KeepAlive消息; 如果收到Notification消息,则断开链接。
⑥、 Established状态(连接建立):如果处于Established状态,则说明BGP链接建立完成,可以发送Update消息交换路由信息;
如果KeepAlive定时器超时则重置KeepAlive定时器并发送KeepAlive消息;
如果收到KeepAlive消息则重置HoldTime定时器: 如果检测到错误或者收到Notification消息则断开链接。

四、BGP路由的生成方式

BGP路由的生成方式有两种:

①、使用配置命令 network
②、使用配置命令 import

五、BGP通告原则

  1. 仅将自己最优的路由发不给邻居
  2. 通过 EBGP 获得的最有路由发布给所有 BGP 邻居
  3. 通过 IBGP 获得的最优路由不会发布给其他的 IBGP 邻居
  4. BGP 与 IGP 同步:一条从IBGP邻居学来的路由在发布给一个BGP邻居之前,通过IGP必须知道该路由,即 BGP 与 IGP 同步。华为路由器上默认是将 BGP 与 IGP 同步关闭的

六、BGP的丰富属性

在这里插入图片描述
公认属性:所有BGP路由都必须识别并支持的属性

  1. 公认必遵属性:BGP的Update消息中必须包含的属性。
  2. 公认任意属性:不必存在于BGP的Update消息中,可以根据需求自由选择属性。

可选属性:不要求所有的BGP路由器都能够识别的属性

  1. 可选过度:BGP 不能识别该属性,但可以接收该属性并将其发布给其他邻居的属性。
  2. 可选非过度:BGP可以忽略包含该属性的消息并且不向他的邻居发布

6.1、 Origin 属性

携带 Origin 属性的路由是通过以下三种方式注入到 BGP 中的

1. i :表示 BGP 路由通过network命令注入的。IGP:优先级最高,路由产生于AS内部

2. e :从EGP学来的路由
3. ?:即Incomplete,表示通过iimport命令引入的路由

三种 Origin 属性的优先级为:i > e > Incomplete

6.2、 AS-Path 属性
(1)AS-Path 作用:

①、用于选路,路由的选择和过滤。BGP会优先选择AS_PATH最短的路由
②、用于AS 之间的 防止环路 ,当发现AS号在路由的AS属性中已经存在,边界路由就会丢弃这个路由。

(2)在AS序列上,本地AS 号添加在AS_PATH列表的最前面。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。
(3)BGP发言者在向EBGP邻居发送路由更新时修改AS_PATH属性,向IGP邻居发送时不修改该属性。
(4)AS-Path 的四种类型

①、AS_Sequence :以序列的方式进行记录as号,聚合时生成。
②、AS_Set :用于BGP聚合时防止环路,聚合时生成。
③、AS_Confed_Sequence :应用于联盟
④、AS_Confed_Set :应用于联盟

6.3、 Next_hop 属性
(1)从EBGP学到的路由,在传递给IBGP对等体时,默认下一跳不改变,需要通过Next_hop_local 修改
(2)从IBGP学到的路由信息,默认不会传递给其他IBGP对等体
(3)从IBGP对等体学到的路由,在传递给EBGP对等体时,下一跳不改变。

EBGP多跳
由于默认BGP中EBGP邻居之间的TTL值为1,(TTL,数据包的生命周期值,每经过一个路由器该值会-1,当该值为0后,数据包将会被丢弃)。若EBGP对等体非直连(通信时需要经过一个以上的路由器,TTL值就不够用了),TTL值限制会使非直连的对等体无法正常建立邻居关系,所以需要用EBGP多跳的命令来解决非直连的邻居关系。

[R]bgp 100
[R-bgp]peer 2.2.2.2 ebgp-max-hop 2  

6.4、 Local-Preference 属性

(1)Local-Perf属性仅在IBGP对等体之间有效,不会通告给其他AS,本地优先级在AS内部传递,数值越大越优先。默认优先级为100,可以手动更改。
(2)用于判断流量离开AS时的最佳路由

6.5、 MED 属性
(1)仅在两个相邻的AS之间传递,收到此属性的AS不会在通告给其他的AS。3
(2)MED属性相当于IGP的度量值(metric),用于判断流量进入AS时的最佳路由
(3)越小越优先,默认为0

6.6、 Community 团体属性
(1)作用:

①、限定路由的传播范围
②、打标记,便于对符合相同条件的路由进行统一处理

(2)Community 属性分为两类:

①、公共团体属性
②、扩展团体属性

(3)公共团体属性分为

①、Internet :缺省属性,所有路由都属于Internet,此属性的路由可以通告给所有BGP的邻居
②、No_Export :收到此属性的路由后,不会将该路由发布给其他的AS。
③、No_Advertise :收到此属性的路由后,不会将该路由通告给任何BGP邻居。
④、No_Export_Subconfed :在联盟中使用

(4)扩展团体属性用一组4字节为单位列表表示,扩展团体属性格式为:aa:nn 或团体号:
(5)aa : nn 中,aa通常为AS编号,nn是定义的团体属性标识
(6)团体号范围为 0-4294967295

6.7、 Atomic_aggregate 原子聚合属性
(1)Atomic_aggregate:用来通告路由接收者,该路由是经过聚合的,是公认任意属性。
(2)有时BGP发布者会收到两条重叠的路由,其中一条路由包含的地址是另一条路由的子集。一般情况下BGP发布者会优选更精细的路由(前者),但是在对外发布时,如果它选择发布更粗略的那条路由(后者),这时需要附加上Atomic_aggregate 属性,以通知对等体。它实际上是一种警告,因为发布更粗略的路由意味着更精细的路由信息在发布过程中丢失了。在进行路由聚合时,对于聚合的路由信息会添加Atomic_aggregate 属性。

6.8、 Preferred-Value 权重属性
(1)华为私有属性,仅在本地路由器有效。
(2)Preferred-Value 值越大越优先。

6.9、 Orinator-id 起源者属性
(1)越小越优先
(2)用于集群内的防环,由路由反射器RR产生,携带本地AS内该路由发送者的Router ID
6.10、Cluster-list 反射器列表属性
(1)每一个 cluster-id 计数为 1,长度最小的优先。
(2)用于集群间的防环,有每个路由反射器RR产生,记录反射路由经过的集群.

七、BGP路由选路原则

13条选路原则
(1)丢弃下一跳不可达的路由
(2)优选 Preferred-Value 值最高的路由 (私有属性,仅本地有效)
(3)优选本地优先级(Local-Preference)最高的路由
(4)优选手动聚合 > 自动聚合 > network > import > 从对等体学习到的
(5)优选 AS-Path 短的路由
(6)起源类型 IGP > EGP > Incomplete
(7)对于来自同一AS的路由,优选MED值小的
(8)优选从EBGP学来的路由(EBGP > IBGP)
(9)优选AS 内部 IGP 的 Metric 值最小的路由
(10)优选 Cluster-list 最短的路由
(11)优选 Orinator-id 最小的路由
(12)优选 Router-ID 最小的路由器发布的路由
(13)优选IP地址最小的邻居发布的路由

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值