网络双栈BGP双栈

举报
xcc-2022 发表于 2022/07/31 20:32:39 2022/07/31
【摘要】 NLRI:网络层可达信息<前缀,前缀长度>MP-NLRI:携带IPv6和VPNv4、VPNv6路由信息BGP原理:BGP工作原理:BGP特点:1.使用TCP作为传输协议,端口号1792.BGP路由聚合方式:静态路由(直接在network聚合路由)、手动聚合、自动聚合3.BGP不会周期性泛洪,只传递更新的路由信息4.矢量路由协议:BGP向外通告路由时必须保证该路由在自己的BGP表中是最优的5....

NLRI:网络层可达信息<前缀,前缀长度>
MP-NLRI:携带IPv6和VPNv4、VPNv6路由信息
BGP原理:
BGP工作原理:
BGP特点:
1.使用TCP作为传输协议,端口号179
2.BGP路由聚合方式:静态路由(直接在network聚合路由)、手动聚合、自动聚合
3.BGP不会周期性泛洪,只传递更新的路由信息
4.矢量路由协议:BGP向外通告路由时必须保证该路由在自己的BGP表中是最优的
5.无环路:
BGP如何防止路由环路:
a.水平分割:从IBGP学来的路由不会在发送给IBGP邻居
b.AS之间,AS-Path防环:收到相同的AS号的丢弃
c.汇总路由,设置as-set携带明细的as号码
d.RR反射器,簇列表防环:收到相同的丢弃
起始者id防环
e.联盟,联盟as列表防环
联盟路由聚合防环
f.MPLS VPN,SOO属性防环
MP-NLRI domain-tag防环
6.路由策略丰富
7.可防止路由震荡
8.易于扩展

BGP报文:
1.OPen报文:协商BGP能力参数:版本-必须一致
BGP router-id-不能一致
MY as-要求和对端配置一致
Hold time-向小兼容
BGP能力选项:
a.多协议能力,每个BGP路由器可以支持多种不同的地址簇,不需要完全相同,只需有一个相同即可
参数内容:AFI:主地址族标识(1:IPv4、2:IPv6、128:MAC)
SAFI:子地址族标识(1:单播、2:组播、128:VPN)

                                                                b.路由刷新能力:设备能否识别route-fresh报文(不需要协商)
                                                                c.4字节AS号码支持能力:标识设备能否识别4字节AS号码(不需要协商)
                                                                         支持2字节的AS路由器如何识别4字节的AS号码的路由器:
                                                                                    2字节AS统一把4字节AS号码当作23456处理

2.Update报文:更新和撤销BGP路由信息
更新路由时,携带路径属性完全相同的多个路由条目
参数:路径属性
NLRI:网络层可达信息
撤销路由:撤销路由时只携带路由信息进行撤销
参数:withdrawn-route(撤销路由前缀)

3.Keepalive报文:维护BGP邻居关系,默认周期性60s发送一次

4.Notification报文:差错通知,报告BGP报文出现的错误

                                     Error code:错误类型
                                     Error subcode:引起错误原因

5.Route-Refresh报文:用于在改变路由策略后请求对等体重新发送路由信息
激活Route-Refresh命令:Refresh bgp all import //发送Route-Refresh
对端收到Route-Refresh报文之后,立即把自己的BGP路由重新传递给邻居

BGP状态机:

  Idle状态:BGP初始状态,管理员配置BGP的过程
                       在Idle状态下,BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件(管理员配置BGP的过程)后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态
                      任何状态中收到Notification报文、TCP拆除链路通知、TCP连接断开等Error事件后,BGP都会转至Idle状态
               什么情况下会停在Idle状态?:没有去往对端的路由信息、没有开启相关地址族
  Connect状态:BGP启动连接重传定时器(Connect Retry,缺省为32秒),等待TCP完成连接
          此阶段主动发起TCP连接:
                      如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态
                      如果TCP连接失败,那么BGP转至Active状态
                      如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态
                      如果发生其他事件(由系统或者操作人员启动的),则退回到Idle状态
               什么情况会停留在connect状态?:一端配置了BGP另一端没有配置、没有指定更新源、策略把BGP的TCP请求消息过滤、开启了BGP认证功能(认证参数带在TCP的option选项中)
  Active状态:BGP总是在试图建立TCP连接
         此阶段等待对方发起TCP连接:
                     如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态
                     如果TCP连接失败,那么BGP停留在Active状态
                     如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态
               什么情况停留在Active状态?:收到TCP请求消息认证失败、发送的TCP确认包被过滤
  OpenSent状态:BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查
                     如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态
                     如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态
  OpenConfirm状态:BGP等待Keepalive或Notification报文
                     如果收到Keepalive报文,则转至Established状态
                     如果收到Notification报文,则转至Idle状态
  Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文
                     如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接
                     如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态
       Route-refresh报文不会改变BGP状态

BGP数据库:
IP路由表 (IP-RIB):全局路由信息库,包括所有IP路由信息
BGP路由表 (Loc-RIB):BGP路由信息库,包括本地BGP Speaker选择的路由信息
邻居表:对等体邻居清单列表
Adj-RIB-In:对等体宣告给本地BGP Speaker的未处理的路由信息库
Adj-RIB-Out:本地BGP Speaker宣告给指定对等体的路由信息库

BGP路由信息处理:针对每个邻居都会有Adj-RIB-In、Adj-RIB-Out

                 (1)当从对等体接收到更新数据包时,路由器会把这些更新数据包存储到路由选择信息库(Routing Information Base, RIB)中,并指明是来自哪个对等体的(Adj-RIB-In)。这些更新数据包被输入策略引擎过滤后,路由器将会执行路径选择算法,来为每一条前缀确定最佳路径
                 (2)得出的最佳路径被存储到本地BGP RIB (Loc-RIB)中,然后被提交给本地IP路由选择表(IP-RIB),以用作安装考虑
                 (3)除了从对等体接收来的最佳路径外,Loc-RIB也会包含当前路由器注入的(被称为本地发起的路由),并被选择为最佳路径的BGP前缀。Loc-RIB中的内容在被通告给其他对等体之前,必须通过输出策略引擎。只有那些成功通过输出策略引擎的路由,才会被安装到输出RIB (Adj-RIB-Out)中

对等体之间的交互原则:
从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体
从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体
当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体
路由更新时,BGP设备只发送更新的BGP路由
IBGP与IGP的同步(从IBGP邻居学到的路由,只有当IGP中也存在相同的路由时才会宣告给EBGP对等体)

IBGP与IGP的同步:在IBGP路由加入路由表并发布给EBGP对等体之前,会先检查IGP路由表。只有在IGP也知道这条IBGP路由时,它才会被加入到路由表,并发布给EBGP对等体

                             目的:避免误导外部AS的路由器
                 VRP平台缺省情况下BGP与IGP是取消同步机制的,并不可改变。但取消同步是有条件的,在以下两种情况下可以取消同步:
                                        本AS不是过渡AS
                                        本AS内所有路由器建立IBGP全连接
                             解决BGP路由黑洞:BGP全互联、使用GRE隧道、使用MPLS标签转发(把BGP路由迭代到MPLS中)

BGP属性特点:
公认必遵:所有BGP路由器都必须识别,且必须存在于Update消息中,如果缺少这种属性,路由信息就会出错,立即中断邻居关系变成idle
Origin:标识路径信息的来源(优先级:i>e>?)
i:通过路由始发AS的IGP得到的路由信息,如network
e:通过EGP得到的路由信息
?: Incomplete,通过其他方式学习到的路由信息,如import-route
AS_Path:按矢量顺序记录某条路由从本地到目的地址所要经过的所有AS编号(BGP路由离开AS时,把本端AS号添加到AS_Path最左边)
在AS间使用,在离开AS时打上,在AS内不会修改AS号
作用:
1.选路比较:AS_Path长度越短越优先
2.域间防环:当BGP路由器从EBGP对等体接收路由时,如果发现AS_Path列表中有本AS号,则不接收该路由,从而避免了AS间的路由环路
AS_Path参数:
1.AS-sequence:放置有序的AS列表
2.AS-set:把明细路由的AS号放在AS-set中,是一个无序列表
3.AS_Confed_Sequence:联盟的有序AS列表,离开联盟的时候会清除
4.AS_Confed_Set:联盟内发生路由聚合时,参加路由聚合的联盟的子AS号放在AS_Confed_Set
Next_Hop:记录了路由的下一跳信息

            1.自己宣告的路由信息向外通告,下一跳变成自己的更新源(和对端建立BGP邻居关系的地址)
            2.从邻居学来的路由再通告给EBGP邻居,下一跳变成自己的更新源
            3.从EBGP学来的路由再发布给IBGP邻居,下一跳不会改变(可使用:peer next-hop-local 把下一跳强制修改为自己的更新源)

公认任意:所有BGP路由器都可以识别,但不要求必须存在于Update消息中,即就算缺少这类属性,路由信息也不会出错
Local_Pref:本地优先级,表明BGP路由器的优先级,该值越大越优先,默认为100,仅在IBGP对等体之间有效,只能在AS内通告,不通告给其他AS
当BGP路由器通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由
本地优先级最大的路由器将会成为整个自治系统的出口(优先级小的路由器作为备份)
配置:BGP视图下:[R2-bgp]default Local_Preference 200 //配置本路由器默认的本地优先级
可选过渡:在BGP对等体之间具有可传递性的属性,BGP路由器可以不支持此属性,但它仍然会接收这类属性,并传递给其他对等体
community:
可选非过渡:如果BGP路由器不支持此属性,则相应的这类属性会被忽略,且不会传递给其他对等体
MED:类似于IGP的cost,用于AS间的路由选路;默认为0,值越小越优先
仅在相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS(为了保证后续流量都走MED值小的路径)
判断流量选择哪个路由器进入本地AS
默认只能判断来自同一AS内的流量的MED值(要求AS-path最左端的AS号保持一致)
命令:compare-different-as-med //强制比较来自不同自治系统中的邻居的路由的MED值
Originator_ID
Cluster_List

***PrefVal 权重值:协议首选值,是华为设备的特有属性,该属性仅在本地有效,不会传递给BGP邻居。因为协议首选值是人为主动设置的,代表本地用户的意愿,因而在BGP进行选路时会优先比较协议首选值;默认情况下均为0,该值越大越优先
配置方式:1.BGP视图下:peer 1.1.1.1 preferred-value 100
2.在route-policy修改

BGP选路规则:当到达同一目的地存在多条路由时,BGP依照如下策略顺序进行路由选择(第2-8条:PLLAOMEN)
如果此路由的下一跳不可达,忽略此路由
优选协议首选值(PrefVal)最高的路由
优选本地优先级(Local_Pref)最高的路由
优选手动聚合路由、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由(本地产生的)
优选AS路径(AS_Path)最短的路由
比较Origin属性,依次优选Origin类型为IGP、EGP、Incomplete的路由
优选MED值最低的路由
优选从EBGP邻居学来的路由(EBGP路由优先级高于IBGP路由)
优选到下一跳IGP Metric较小的路由
优选Cluster_List最短的路由(比较簇列表)
优选Orginator_ID最小的路由(比较起始者id)
优选Router ID最小的路由器发布的路由(比较对端BGP router id)
比较对等体的IP Address,优选从具有较小IP Address的对等体学来的路由(比较对端更新源的大小)

BGP 4+原理:
BGP 4+ 概述:BGP 4 的扩展版本
扩展能力自协商机制:
当两台BGP对等体之间需要传输IPv6地址族的地址时,需要在OPEN Message 中进行扩展能力的协商

                           OPEN消息中的Capabilities Advertisement字段用于扩展能力的协商
						![](https://img-blog.csdnimg.cn/22e8b126a32841f5952067b334bf138c.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pif56m65LqI6JOd,size_20,color_FFFFFF,t_70,g_se,x_16)

           MP-reach-NRLI:为了携带路由信息和下一跳地址(BGP4+使用此属性来通告IPv6 路由)(Type Code=14)
					![](https://img-blog.csdnimg.cn/ba1078152e034544adae758cb51989c9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pif56m65LqI6JOd,size_20,color_FFFFFF,t_70,g_se,x_16)

                     地址族信息(Address Family Information)域:由2字节的地址族标识AFI(Address Family Identifier)和1字节的子地址族标识SAFI(Subsequent Address Family Identifier)组成
                                当传递IPv6路由时:AFI=2 ,SAFI=1(Unicast) ,SAFI=2(Multicast
                    下一跳长度(Length of Next Hop Network Address)域:1字节长度,表示下一跳地址的长度,通常情况下为16
                                            下一跳地址长度字段决定了下一跳地址的个数
                                                           长度字段=16,下一跳地址为下一跳路由器的全球单播地址
                                                           长度字段=32,下一跳地址为下一跳路由器的全球单播地址和链路本地地址
                    下一跳地址(Network Address of Next Hop)域:长度由上一个字段决定,一般情况下为全球单播地址
                    保留字段(Reserved)域:一字节,必须为0 
                    网络层可达信息(Network Layer Reachability Information)域:表示含有匹配相同属性的路由信息。当此字段为0时,表示为缺省路由
                                                       
               MP-unreach-NRLI:只携带撤销的路由条目(BGP 4+用该属性撤销路由)(Type Code= 15 )
				![](https://img-blog.csdnimg.cn/d07e61ceb7604b758f166bab5a071b80.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pif56m65LqI6JOd,size_20,color_FFFFFF,t_70,g_se,x_16)

                                       地址族信息(Address Family Information)域:由2字节的地址族标识AFI(Address Family Identifier)和1字节的子地址族标识SAFI(Subsequent Address Family Identifier)组成
                                       撤销路由(Withdrawn Routes)域:表示撤销的路由条目。格式为<掩码长度,路由前缀> ,当此掩码长度为0时,表示为缺省路由
				![](https://img-blog.csdnimg.cn/4c10da7a55394398a40b2a9bcf9deaa9.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pif56m65LqI6JOd,size_20,color_FFFFFF,t_70,g_se,x_16)

                                      当撤销IPv6路由时:
                                                AFI=2 ,SAFI=1(Unicast) ,SAFI=2(Multicast)
                                                Withdrawn Routes 字段代表需要撤回的路由前缀及掩码

支持传递多种地址族地址(IPv6、VPNv4、VPNv6等)
新增属性用以支持多地址族地址传递

作用:为了支持各类地址族(MAC、VPN路由、IPv6路由)

open报文
AFI 为2 IPv6
SAFI 为1 单播

ip as-path-filter huawei permit ^100
Router-policy
If-match as-path-filter huawei

as-path-filter:AS路径过滤器
AS路径过滤器是一组针对BGP路由的AS_Path属性进行过滤的规则
AS路径过滤器的默认行为是deny,即路由如果没有在某一次过滤中被permit则最终不能通过该过滤器的过滤。
AS路径过滤器的匹配条件使用正则表达式指定
举例:① ^10_ 匹配AS_Path属性以AS10开头的路由
 20 匹配AS_Path属性中包含AS20的路由
③.* 匹配所有AS_Path属性
配置:ip as-path-filter { as-path-filter-number | as-path-filter-name } { deny | permit } regular-expression 创建AS路径过滤器

正则表达式:

BGP &BGP 4+基本配置:
配置BGP基本功能:

配置BGP– PrefVal属性:

配置BGP–Local_Pref属性:

配置BGP– MED属性:

配置BGP– BGP AS_Path属性:



配置BGP–负载分担:

BGP故障诊断:
BGP邻居状态无法到达Established状态:
IGP不通
ACL过滤了TCP的179端口
邻居的Router ID冲突
配置的邻居的AS号错误
用Loopback口建立邻居时没有配置peer connect-interface
用建立EBGP邻居时未配置peer ebgp-max-hop
peer valid-ttl-hops配置错误
对端发送的路由数量是否超过peer route-limit命令设定的值
对端配置了peer ignore
两端的地址族不匹配

BGP邻居关系正常的情况下,但是BGP路由表没有该表项:
下一跳地址是否可达
入口是否进行了策略限制
接收前缀的条目是否进行了限制
对端出口是否进行了策略限制
该前缀在对端BGP路由表中是否最优
对端是否配置了active-route-advertise

BGP邻居关系正常的情况下,BGP路由表存在某些表项不是最优:
根据选路原则,某些表项不是最优
某些前缀是否为抑制状态

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。