BGP学习笔记记录

前言

本次我们主要通过BGP协议的六大属性来贯穿和了解BGP,并在其中夹杂一些基本配置。

基本概念

BGP是一种用于自治系统( Autonomous System )之间的动态路由协议。早期发布的三个版本分别是BGP-1 ( RFC1105)、BGP-2 ( RFC1163 )和BGP-3( RFC1267 ) , 主要用于交换AS之间的可达路由信息,构建AS域间的传播路径,防止路由环路的产生,并在AS级别应用- -些路由策略。当前使用的版本是BGP-4 ( RFC4271 )。

BGP作为事实上的Internet外部路由协议标准,被广泛应用于ISP之间。

BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。

BGP提供了防止路由振荡的机制,有效提高了Internet网络的稳定性。

BGP易于扩展,能够适应网络新的发展。主要是通过TLV进行扩展。

BGP概述

  ■BGP是一种外部网关协议( EGP) ,与OSPF、RIP等内部网关协议( IGP )不同,其着眼点不在于自动发现网络拓扑,而在于在AS之间选择最佳路由和控制路由的传播。

  ■BGP使用TCP作为其传输层协议(监听端口号为179) ,提高了协议的可靠性,且不需要专门的机制来确保连接的可控性。BGP进行域间的路由选择 ,对协议的稳定性要求非常高。 因此用TCP协议的高可靠性来保证
BGP协议的稳定性。

  ■BGP的对等体之间必须在逻辑上连通,并进行TCP连接。目的端口号为179 ,本地端口号任意。

  ■路由更新时, BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。BGP从设计上避免了环路的发生。

  ■AS之间: BGP通过携带AS路径信息来标记途经的AS ,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。

  ■AS内部: BGP在AS内学到的路由不再通告给AS内的BGP邻居,避免了AS内产生环路。

工作原理

●BGP的运行是通过消息驱动的,共有Open、 Update、 Notification. Keepalive和Route-Refresh等5种消息类型。

  ■Open消息 :是TCP连接建立后发送的第一个消息 ,用于建立BGP对等体之间的连接关系。对等体在接收到Open消息并协商成功后,将发送Keepalive消息确认并保持连接的有效性。确认后,对等体间可以进行Update、Notification、 Keepalive和Route-Refresh消息的交换。

  ■Update消息:用于在对等体之间交换路由信息。一条Update消息可以发布多 条属性相同的可达路由信息,也可以撤销多条不可达路由信息。

     ■  ■一条Update消息可以发布多条具有 相同路由属性的可达路由,这些路由可共享一组路由属性。所有包含在-个给定的Update消息里的路由属性适用于该Update消息中的NLRI ( Network Layer Reachability Information )字段里的所有目的地(用IP前缀表示)。

     ■  ■一条Update消息可以撤销多条不可达路由。每一个路由通过目的地(用IP前缀表示),清楚的定义了BGP Speaker之间先前通告过的路由。
     ■  ■一条Update消息可以只用于撤销路由, 这样就不需要包括路径属性或者NLRI。相反,也可以只用于通告可达路由,就不需要携带撤销路由信息了。

  ■Keepalive消息 : BGP会周期性的向对等体发出Keepalive消息,用来保持连接的有效性。

  ■Notification消息 :当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。

  ■Route-Refresh消息 :通过OPEN消息告知BGP peer本地支持路由刷新能力( Route-Refresh capability )。在所有BGP路由器使能Route-Refresh能力的情况下,如果BGP的入口路由策略发生了变化,本地BGP路由器会向对等体发布Route- Refresh消息,收到此消息的对等体会将其路由信息重新发给本地BGP路由器。这样,可以在不中断BGP连接的情况下,对BGP路由表进行动态刷新,并应用新的路由策略。

BGP报文应用

  ●BGP使用TCP建立连接,本地监听端口为179.和TCP连接建立相同, BGP连接的建立也要经过一系列的对话和握手。TCP通过握手协商通告其端C等参数, BGP的握手协商的参数有: BGP版本、BGP连接保持时间、本地的路由器标识( RouterID)、授权信息等。这些信息都在Open消息中携带。

  ●BGP连接建立后,如果有路由需要发送则发送Update消息通告对端。Update消息发布路由时,还要携带此路由的路由属性,用以帮助对端BGP协议选择最优路由。在本地BGP路由变化时,要通过Update消息来通知BGP对等体。经过一段时间的路由信息交换后 ,本地BGP和对端BGP都无新路由通告,趋于稳定状态。此时要定时发送KEEPALIVE消息以保持BGP连接的有效性。对于本地
BGP ,如果在保持时间内,未收到任何对端发来的BGP消息,就认为此BGP连接已经中断,将断开此BGP连接,并删除所有从该对等体学来的BGP路由。

  ●当本地BGP在运行中发现错误时(如对端BGP版本本地不支持、本地BGP收到了结构非法的Update消息等) ,要发送Notification消息通告BGP对等体。本地BGP退出BGP连接时,也需发送Notification报文。

BGP报头

  ●Marker (标记) : 16字节,固定为1。

  ●Length (长度) :两字节无符号整数。指定了消息的全长,包括头部。

  ●Type (类型) : 1字节,指示报文类型:

    ■Open

    ■Update

    ■Keepalive

    ■Notification

    ■Route- Refresh

●Open报文结构

    ■Version : BGP的版本号。对于BGPv4来说,其值为4。

    ■My Autonomous System :本地AS编号。通过比较两端的AS编号可以确定是EBGP连接还是IBGP连接。Hold Time :在建立对等体关系时两端要协商Hold time ,并保持致。如果两端所配置的Hold time时间不同,则BGP会选择较小的值作为协商的结果。如果在这个时间内未收到对端发来的Keepalive消息,则认为BGP连接中断。如果保持时间为0 ,则标识不发送Keepalive报文。

    ■BGP Identifier : BGP路由器的Router ID ,以IP地址的形式表示,用来识别BGP路由器。

    ■Opt Parm Len ( Optional Parameters Length) :可选参数的长度。如果为0则没有可选参数。

    ■Optional Parameters :是一个可选参数用于BGP验证或多协议扩展( Multiprotocol Extensions )等功能。每个参数为一个( Parameter Type-Parameter Length-Parameter Value )三元组。

●Update报文结构

    ■Withdrawn Routes Length : ( 2字节无符号整数)不可达路由长度,表示Withdrawn Routes字段的数据长度。如果Withdrawn Routes Length字段数值为0 ,则表示Withdrawn Routes字段没有任何数据,在UPDATE消息中不会被显示。

    ■Withdrawn Routes : (变长)撤销路由。该字段包括一系列的IP地址前缀信息,以<length, prefix>的格式来表示,比如<19,198.18.160.0>表示个198.18.160.0 255.255.224.0的网络。

    ■Path Attribute Length : ( 2字节无符号整数)路由属性长度,表示Path Attribute字段的数据长度。如果Path Attribute Length数值为0 ,则表示Path Attribute字段没有任何数据,在UPDATE消息中不会被显示。

    ■Network Layer Reachability Information : (长)网络可达信息。包括一系列的IP地址前缀。格式与撤消路由字段- -样<length, prefix>.

●Keepalive报文结构

    ■KeepAlive 报文的组成只包括-个BGP数据报头。

    ■缺省情况下,发送KeepAlive的时间间隔为60秒, Hold Time是180秒。每次从邻居处接收到KeepAlive报文将重置Hold Time定时器,如果Hold Time定时器超时,就认为对等体Down掉。

●Notification报文结构

    ■Errorcode :错误码。1字节长的字段。每个不同的错误都使用唯一的代码表示 ,而每一个错误码都可以拥有一个或多 个错误子码,但如果某些错误码并不存在错误子码的话,则该错误子码字段以全0表示。

    ■Errsubcode :错误子码。

状态机

●BGP有限状态机共有六种状态 ,分别是Idle、Connect. Active、 OpenSent、 OpenConfirm和Established.

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

  ■  ■Start事件是由一个操作者配置一个BGP过程 ,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。

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

  ■在Connect状态下, BGP启动连接重传定时器( Connect Retry ,缺省为32秒) , 等待TCP完成连接。

  ■  ■此阶段主动发起TCP连接;

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

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

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

  ■  ■如果发生其他事件(由系统或者操作人员启动的) , 则退回到Idle状态。

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

  ■  ■此阶段等待对方发起TCP连接;

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

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

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

  ■在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报文通知对端,并转至ldle状态。

  ■  ■Route-refresh报文不会改变BGP状态。

  ■  ■如果收到Notification报文,那么BGP转至Idle状态。

  ■  ■如果收到TCP连接断开消息,那么BGP断开连接,转至Idle状态。

数据库

●IP路由表(IP-RIB)     全局路由信息库.包括所有P路由信息

●BGP路由表(Loc-RIB)     BGP路由信息库,包括本地BGP Speaker选择的路由信息

●邻居表     对等体邻居清单列表

●Adj-RIB-In     对等体宣告给本地BGP Speaker的未处理的路由信息库

●Adj-RIB-Out     本地BGP Speaker宣告给指定对等体的路由信息库

BGP路由处理

BGP对等体交互路由原则:

●从IBGP对等体获得的路由,只发布给EBGP对等体

●从EBGP对等体获得的路由,发布给所有EBGP和IBGP对等体

●只将BGP的最优路由发布给对等体

●只发送更新的BGP路由

●IBGP与IGP的同步

BGP建邻配置

物理接口建邻

r1]bgp 1                                            //启动时需要定义真实的AS号,没有多进程概念

[r1-bgp]router-id 1.1.1.1                     //建议手工配置RID,--手工—环回最大值---物理接口最大值

[r1-bgp]peer 12.1.1.2 as-number 2    //  对端IP地址,及对端所在的AS号

环回接口建邻

[r3]bgp 2                                                                          //启动时需要定义真实的AS号,没有多进程概念

[r3-bgp]router-id 3.3.3.3                                                  //建议手工配置RID,--手工—环回最大值---物理接口最大值

[r3-bgp]peer  2.2.2.2 as-number 2                                  //  对端IP地址,及对端所在的AS号

[r3-bgp]peer  2.2.2.2 connect-interface LoopBack 0       //修改源为本地的环回接口ip地址

[r3-bgp]peer  2.2.2.2 next-hop-local                            //将BGP路由传输给邻居2.2.2.2时修改下一跳属性为本地地址

对等体组

[r6-bgp]group IBGP internal    //创建本AS内的对等体组,名为IBGP

[r6-bgp]group EBGP external    //创建AS之间的对等体组,名为EBGP

之后配置相同,我们以本AS为例

[r6-bgp]peer IBGP connect-interface LoopBack 0   //组以环回建邻

[r6-bgp]peer 10.1.3.3 group IBGP   //这个邻居为本组组员

BGP属性

●BGP路由属性是一套参数,它是对路由的进一 步的描述

●公认必遵

  ■所有BGP路由器都必须识别,且必须存在于Update消息中

  ■如果缺少这种属性,路由信息就会出错

●公认任意

  ■所有BGP路由器都可以识别,但不要求必须存在于Update消息中

  ■即就算缺少这类属性,路由信息也不会出错

●可选过渡

  ■在BGP对等体之间具有可传递性的属性

  ■BGP路由器可以不支持此属性,但它仍然会接收这类属性,并传递给其他对等体

●可选非过渡

  ■如果BGP路由器不支持此属性,则相应的这类属性会被忽略,且不会传递给其他对等体


常用的属性类别如下所示:

●Origin为公认必遵属性

●AS_Path为公认必遵属性

●Next_ Hop为公认必遵属性

●Local_ Pref为公认任意属性

●community为可选过渡属性

●MED为可选非过渡属性

●Originator_ ID为可选非过渡属性

●Cluster_ List为可选非过渡属性

选路规则

●PrefVal

●协议首选值( PrefVal )是华为设备的特有属性,该属性仅在本地有效,不会传递给BGP邻居。因为协议首选值是人为主动设置的,代表本地用户的意愿,因而在BGP进行选路时会优先比较协议首选值。

在BGP进行选路时会优先比较协议首选值。默认情况下均为0 ,该值越大越优先。

route-policy调用命令:

●Local_ Pref

●Local Pref属性表明BGP路由器的优先级,该值越大越优先。该属性为公认任意。

●Local_ Pref属性

  ■该属性仅在IBGP对等体之间有效,不通告给其他AS,一般出去时用。它表明路由器的BGP优先级。

  ■当BGP路由器通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择Local_ Pref属性值较高的路由,缺省情况下该值为100

route-policy调用命令:

●AS_Path

●AS_ Path属性按矢量顺序记录某条路由从本地到目的地址所要经过的所有AS编号。该属性为公认必遵。

●AS_ Path属性可以当做BGP选路的参考属性之一, AS_ Path长度越短越优先。此外,当BGP路由器从EBGP对等体接收路由时,如果发现AS_ Path列表中有本AS号,则不接收该路由,从而避免了AS间的路由环路。

洗掉AS-path方法:

1、下发缺省,汇总

2、可接受带有自己AS号的路由,命令如下:

[r3-bgp]peer 1.1.1.1 allow-as-loop 3  //数字3是重复次数,可根据具体进行更改

让对方接受带有自己AS号的路由,命令如下:

[r3-bgp-vrf1]peer 1.1.1.1 substitute-as   //此命令需要在vrf空间中才可

 

 

route-policy调用命令:

[r3-route-policy]apply as-path 3 3 additive     //在路径中增加两个区域3

通常我们会在里面加已经过的AS号,不会加未经过的

●Origin

●Origin属性 用来定义路径信息的来源,标记一条路由是怎么成为BGP路由的。 它有以下3种类型:

  ■IGP :具有最高的优先级。通过路由始发AS的IGP得到的路由信息,比如通过network命令注入到BGP路由表的路由,其Origin属性为IGP。

  ■EGP :优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。

  ■Incomplete :优先级最低。通过其他方式学习到的路由信息。比如BGP通过import- route命令引入的路由,其Origin属性为Incomplete.

route-policy调用命令:

●MED

●MED属性类似于IGP的代价值,用于AS间的路由选路。该属性为可选非过渡。

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

●MED属性仅在相邻两个AS之间传递,收到此属性的AS-方不会再将其通告给任何其他第三方AS。MED属性可以手动配置,如果路由没有配置MED属性, BGP选路时将该路由的MED值按缺省值0来处理。

route-policy调用命令:

●Next_ Hop

●Next_ Hop属性记录了路由的下一跳信息,该属性为公认必遵

●Next_ Hop属性记录了路由的下一跳信息。BGP的下一跳属性和IGP的有所不同,不一定就是邻居设备的IP地址。通常情况下, Next Hop属性遵循下面的规则:

  ■BGP Speaker将本地始发路由发布给IBGP对等体时,会把该路由信息的下一-跳属性设置为本地与对端建立BGP邻居关系的接口地址。

  ■BGP Speaker在向EBGP对等体发布某条路由时,会把该路由信息的下- -跳属性设置为本地与对端建立BGP邻居关系的接C ]地址。

  ■BGP Speaker在向IBGP对等体发布从EBGP对等体学来的路由时,并不改变该路由信息的下一跳属性。

route-policy调用命令:

指定下一跳

指定备份下一跳

通过属性干涉算路

这里我们以local-preference为例,具体选路应用可见实验:https://blog.csdn.net/weixin_45873676/article/details/107449772


###抓取AS1的流量
[r2]ip ip-prefix 12 permit 10.1.0.0 24 greater-equal 25
[r2]ip ip-prefix 12 permit 10.2.0.0 24 greater-equal 25
 
###增大local-preference值,默认为100
[r2]route-policy 12 permit node 10
Info: New Sequence of this List.
[r2-route-policy]if-match ip-prefix 12
[r2-route-policy]apply local-preference 150
[r2]route-policy 12 permit node 20
[r2-route-policy]q
 
###在邻居中调用
[r2]bgp 1
[r2-bgp]peer 10.0.24.1 route-policy 12 import

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路由表存在某些表项不是最优

➢根据选路原则,某些表项不是最优

➢某些前缀是否为抑制状态

BGP其他技术

●在较大规模组网或者路由条目较多的情况下,出于简化配置,减少路由条目,提升设备性能等等因素的考虑,会需要用到以下几种工具或技术:

➢路由聚合( Aggregation )

➢对等体组( Peer Group )

➢团体属性( Community )

➢路由反射( Route Reflection )

➢BGP联盟( Confederations )

➢路由聚合( Aggregation )

●在大规模的网络中, BGP路由表十分庞大,给设备造成了很大的负担,同时使发生路由振荡的几率也大大增加,影响网络的稳定性。

●路由聚合是将多条路由合并的机制,它通过只向对等体发送聚合后的路由而不发送所有的具体路由的方法,减小路由表的规模。并且被聚合的路由如果发生路由振荡,也不再对网络造成影响,从而提高了网络的稳定性。

●路由聚合是会使用Aggregator属性(可选过渡属性) , 该属性标识发生聚合的节点,携带发生聚合节点的route-id和AS号。

自动聚合

●自动聚合注意事项:

  ■该命令对BGP引入的路由进行聚合,引入的路由可以是直连路由、静态路由、OSPF路由、IS-IS路由。配置聚合后, BGP将按照自然网段聚合路由,明细路由在BGP路由更新中被抑制。

  ■该命令对network命令弓|入的路由无效。

  ■BGP只向对等体发送聚合后的路由;

  ■缺省情况下BGP不启用自动聚合;

  ■聚合之后的路由将带有atomic_ aggregate和aggregator属性。

手动聚合

●可通过命令决定是否抑制明细路由,抑制后该聚合后的路由会携带atomic _aggregate属性。

●聚合路由不会携带成员明细路由的AS_ _PATH属性。

●通过AS_ SET属性来携带AS号,以避免环路。SET和SEQUENCE的不同之处在于, SET选项下的AS列表通常用于路由聚合,将来自不同AS的AS号无序排列在AS列表里;而SEQUENCE选项下的AS列表是有序的,每经过一个AS都会将其AS号排列在列表的前端。

●可通过命令决定是否抑制明细路由,抑制后该聚合后的路由会携带atomic_aggregate属性。

●聚合路由不会携带成员明细路由的AS_ PATH属性。

●通过AS_ SET属性来携带AS号,以避免环路。SET和SEQUENCE的不同之处在于, SET选项下的AS列表通常用于路由聚合,将来自不同AS的AS号无序排列在AS列表里;而SEQUENCE选项下的AS列表是有序的,每经过一个AS都会将其AS号排列在列表的前端。

配置命令:

[r1-bgp]aggregate 20.1.0.0 22                                      //配置完成后,本地自动生成空接口防环路由

[r1-bgp]aggregate 20.1.0.0 22 detail-suppressed        //仅发送聚合条目,不转发明细条目

➢对等体组( Peer Group )

●对等体组( Peer Group )是- -些具有某些相同策略的对等体的集合。

●此功能可以简化BGP的配置,同时减少路由性能损耗。

●对等体组( Peer Group )是一 些具有某些相同策略的对等体的集合。当-个对等体加入对等体组中时,此对等体将获得与所在对等体组相同的配置。当对等体组的配置改变时,组内成员的配置也相应改变。

●在大型BGP网络中,对等体的数量会很多,其中很多对等体具有相同的策略,在配置时会重复使用一些命令,利用对等体组可以简化配置。

●对等体组中的单个对等体也可以配置自己的发布路由与接收路由的策略。

配置命令:

[r6-bgp]group IBGP internal    //创建本AS内的对等体组,名为IBGP

[r6-bgp]group EBGP external    //创建AS之间的对等体组,名为EBGP

➢团体属性( Community )

●团体属性用于标识具有相同特征的BGP路由,该属性为可选过渡

●团体属性分为:

  ■自定义团体属性

  ■公共团体属性

  ■  ■- Internet                  //默认的公共团体属性

  ■  ■- No_Advertise                  //不传给IBGP邻居

  ■  ■- No_ Export                  //不出AS

  ■  ■- No_ Export_Subconfed                  //不出联邦

●团体属性是一组有相同特征的目的地址的集合。团体属性用一组以4字节为单位的列表来表示,设备中团体属性的格式是aa:nn或团体号。

  ■aa:nn : aa和nn的取值范围都是0 ~ 65535 ,管理员可根据实际情况设置具体数值。通常aa表示自治系统AS编号, nn是管理员定义的团体属性标识。例如,来自AS100的一条路由,管理员定义的团体属性标识是1 ,则该路由的团体属性格式是100:1。

  ■团体号:团体号是0 ~ 4294967295的整数。RFC1997中定义, 0 ( 0x00000000 ) ~ 65535( 0x0000FFFF )和4294901760 ( 0xFFFF0000 ) ~ 4294967295 ( 0FxFFFFF )是预留的。

●团体属性用来简化路由策略的应用和降低维护管理的难度,利用团体可以使多个AS中的一组BGP设备共享相同的策略。团体是一个路由属性,在BGP对等体之间传播,且不受AS的限制。BGP设备在将带有团体属性的路由发布给其它对等体之前,可以先改变此路由原有的团体属性。

配置命令:

###抓流量
[r9]ip ip-prefix 1 permit 10.1.0.0 16 greater-equal 17
[r9]ip ip-prefix 2 permit 10.2.0.0 16 greater-equal 17
 
###加团体属性
[r9]route-policy 1dbj permit node 10
Info: New Sequence of this List.
[r9-route-policy]if	
[r9-route-policy]if-match ip-prefix 1
[r9-route-policy]apply community 1:3
[r9-route-policy]route-policy 1dbj permit node 20
Info: New Sequence of this List.
[r9-route-policy]q


###抓取带团体属性的流量
[r7]ip community-filter 100 permit 1:.*
[r7]ip community-filter 101 permit 2:.*

###bgp配置,需要允许带标签的流量通过
[r3-bgp]peer 1.1.1.1 advertise-community 

➢路由反射( Route Reflection )

●在向IBGP邻居发布学习到的路由信息时, RR按照以下规则发布路由:

●●从EBGP对等体学到的路由,发布给所有的非客户机和客户机。

●●从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机。

●●从客户机学到的路由,发布给此RR的所有非客户机和客户机(发起此路由的客户机除外)。

简单来说,非客户机学来的路由不传给非客户机,其他均传。

防环机制:

配置命令:

[r3-bgp]peer 1.1.1.1 reflect-client        //R3作为邻居1.1.1.1的路由反射器,邻居为它的客户机。

➢BGP联盟( Confederations )

AS内部的小AS,拥有单独的小AS号,小IBGP邻居、EBGP邻居。

配置命令:

所有配置全部基于小as号进行

[r3]bgp 64512                                         //定义小AS号

[r3-bgp]router-id 3.3.3.3                        //手工配置RID

[r3-bgp]confederation id  2                     //说明本机器属于的大AS

[r3-bgp]confederation peer-as 64513            //若存在小EBGP邻居,需说明对端小AS号

[r3-bgp]pe 2.2.2.2 as-number 64512               //小IBGP邻居所处小AS号

·路由反射器和联盟比较

➢路由衰减

●路由衰减( Route Dampening )用来解决路由不稳定的问题。多数情况下, BGP协议都应用于复杂的网络环境中, 路由变化十分频繁。为了防止持续的路由振荡带来的不利影响, BGP使用路由衰减来抑制不稳定的路由。

●BGP衰减使用惩罚值( Penalty Value )来衡量一 条路由的稳定性,惩罚值越高则说明路由越不稳定。路由每发生- -次振荡 (路由从激活状态变为未激活状态,称为-次路由振荡) , BGP便会给此路由增加一定的惩罚值( 1000 )。当惩罚值超过抑制阈值( Suppress Value )时,此路由被抑制,不加入到路由表中,也不再向其他BGP对等体发布更新报文。

●当某条路由的惩罚值到达最大抑制值( Maximum Suppress Value ) ,便不会再增加,这样就可以确保某路由在非常短的时间内翻动十几次之后,不会将惩罚值累加到一个很高的、使路由始终保持被抑制状态的值。

●被抑制的路由每经过一段时间,惩罚值便会减少一半,这个时间称为半衰期( Half-life)。当惩罚值降到再使用阈值( Reuse Value )时,此路由变为可用并被加入到路由表中,同时向其他BGP对等体发布更新报文。上文提到的惩罚值、 抑制阈值和半衰期都可以手动配置 。

●路由衰减只适用于EBGP路由。对于从IBGP收来的路由不能进行衰减,因为IBGP路由经常含有本AS的路由,内部网络路由要求转发表尽可能一致, IGP快速收敛就是为了达到信息同步,转发一致。如果衰减对IBGP路由起作用,不同设备的衰减参数不-致时,会导致转发表不一致。

关于BGP协议,我们暂时只说这么多,BGP还有增强特性之类技术我们下次再更新。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

先剃度再出家

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

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

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

打赏作者

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

抵扣说明:

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

余额充值