华为数通HCIE面试看这个就够了系列——BGP

一、BGP基础。

  BGP是一种增强的路径矢量路由协议,同时BGP是拥有丰富的策略控制技术的外部网关协议。

1. BGP的报文。
  • Open消息:用于建立BGP对等体连接和对等体协商一些能力。`
    在这里插入图片描述

  • Update消息:用于在对等体之间交换路由信息。携带路由信息的属性。
    在这里插入图片描述

  • Notification报文:用于中断BGP连接。携带有连接中断的原因。

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

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

2.BGP路由更新机制。
  • 邻居关系建立后进行全量更新,互相发送best的BGP路由,后续只做增量触发更新。

  • 以下两条命令用于手动实现BGP的触发更新。

    • refresh bgp 10.1.12.2 import (使用Route-Refresh消息)
    • refresh bgp 10.1.12.2 export(使用Update消息)
  • 增量触发更新,没有周期性更新机制。这是因为BGP路由数量太大,稳定BGP网络中,无需周期性更新。
    在这里插入图片描述

3.Hold time协商规则。

在这里插入图片描述

  • 如果双方的Open报文中包含该计时器不同,则会进行协商,选择一个小的hold time,keep-alive interval 默认是hold time时间的1/3。
  • 可以在BGP视图下使用timer keepalive x hold x修改,两边选择最小的hold time,默认keepalive为协商的最小的1/3。
  • 如果Keepalive被配置为小于协商holdtime的1/3则按配置keepalive使用,keepalive时间本地生效,如果配置的keepalive大于协商hold time的1/3,则按照holdtime的1/3来是作为keepalive发送周期。
4.BGP发布和撤销路由。

  一条Update消息可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。

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

在这里插入图片描述

  • 一条Update消息可以撤销多条不可达路由。通过Update消息中的withdrawn_routes字段,携带需要撤销的路由的前缀信息(不需要包括路径属性或者NLRI)。
    在这里插入图片描述
5.BGP对等体之间的交互原则。
  • 从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。
  • 从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体。
  • 当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体。
  • 路由更新时,BGP设备只发送更新的BGP路由。
  • 所有对等体发送的路由,BGP设备都会接收。
6.BGP与IGP交互。
  • Import方式是按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中。为了保证引入的IGP路由的有效性,Import方式还可以引入静态路由和直连路由。
  • Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确。

二、邻居关系的建立和状态机。

1.BGP邻居关系建立。

在这里插入图片描述

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

  • 先启动BGP的一启动连接重传定时器,先发起TCP连接,如图所示,RTB先启动BGP协议,RTB使用随机端口号向RTA的179端口发起TCP连接。

  • 如果TCP连接成功,那么BGP路由器向邻居发送Open报文,并转至OpenSent状态。

  • 如果TCP连接失败,那么BGP路由器转至Active状态。

  • 在Active状态下,BGP路由器总是在试图建立TCP连接。

  • 如果TCP连接成功,那么BGP路由器向邻居发送Open报文,关闭连接重传定时器,并转至OpenSent状态。

  • 如果TCP连接失败,那么BGP路由器停留在Active状态。

  • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在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报文。

2.BGP状态机。

  BGP对等体的交互过程中存在6种状态机:空闲(Idle)、连接(Connect)、活跃(Active)、Open报文已发送(OpenSent)、Open报文已确认(OpenConfirm)和连接已建立(Established)。在BGP对等体建立的过程中,通常可见的3个状态是:Idle、Active和Established。
在这里插入图片描述
(1)Idle状态。

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

  • Start事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。
  • 任何状态中收到Notification报文或TCP拆链通知等Error事件后,BGP都会转至Idle状态。

  路由器卡在Idle状态的原因:

  • 没有去往邻居地址的路由,无法发起TCP三次握手,也无法完成TCP的三次握手。
  • 邻居发起的TCP握手,被本端拒绝,拒绝的原因是邻居发起TCP报文的源地址,不是本端指定的邻居地址。

(2)Connect状态。

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

  • 如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。
  • 如果TCP连接失败,那么BGP转至Active状态。
  • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。

  路由器卡在Connect状态的原因:

  • 当发起TCP连接路由器,无法收到邻居TCP回应报文时,就会卡在connect状态,并且5秒后重传一次TCP连接请求,再等待32秒左右,重新再次发起TCP连接请求,通常是由于发起端存在邻居地址的路由,并能主动发送TCP 3次握手,但无法从邻居接收第二次握手的报文。通常是由于邻居缺乏到对端的路由,或者是应答报文中途被丢弃。

(3)Active状态。

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

  • 如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态。
  • 如果TCP连接失败,那么BGP停留在Active状态。
  • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。

   邻居状态卡在Active的原因:

  • 当发送TCP连接路由器,能收到相应的邻居应答报文,代表两台路由器能正常交互报文,但是依然无法建立起TCP的3次握手,将会进入到Active。
  • 邻居之间地址可达,但建立BGP邻居的源目地址不匹配导致。本端主动发起TCP连接的源地址和对端指定的邻居地址不匹配,导致本端处于active,对端处于idle状态。

(4)OpenSent状态。

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

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

(5)OpenConfirm状态。

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

(6)Established状态。

  在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状态。
3.BGP影响邻居建立的因素。
  • 建立邻居的地址的路由可达,端口可达。
  • Open报文中:
    • My AS 要和邻居配置匹配
    • Hold time 协商小的holdtime做为双方的holdtime
    • BGP router id 不能冲突
  • 可选能力中至少要有一个地址族能力要匹配。可选能力默认:
    • 支持IPv4单播地址族
    • 支持路由刷新功能
    • 支持4字节AS号功能
      在这里插入图片描述

三、BGP路由属性。

  路由属性是对路由的特定描述,所有的BGP路由属性都可以分为以下4类:

  • 公认必须遵循:所有BGP设备都可以识别此类属性,且必须存在于Update报文中。如果缺少这类属性,路由信息就会出错。
  • 公认任意:所有BGP设备都可以识别此类属性,但不要求必须存在于Update报文中,即就算缺少这类属性,路由信息也不会出错。
  • 可选过渡:BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,但它仍然会接收这类属性,并通告给其他对等体。
  • 可选非过渡:BGP设备可以不识别此类属性,如果BGP设备不识别此类属性,则会被忽略该属性,且不会通告给其他对等体。
    在这里插入图片描述
1.PrefVal协议首选值。

  华为路由器PrefVal的生成和传递原则:

  • 默认情况下华为设备通过network,import,aggregate命令引入BGP表中的路由,协议首选值为0,通过其他BGP邻居传来的BGP路由本地默认值为0。
  • 该属性仅本地有效,不会传递给任何邻居。
  • 只能在import方向设置协议首选值,使用于IBGP和EBGP,不能在export方向上设置。
  • 当路由器自身存在多条可用BGP路径需要进行选路,但又要避免对其他路由器产生选路影响时,可以使用该属性。
2.Next_hop属性。

  Next_hop属性为公认必遵属性。Next_Hop属性记录了路由的下一跳信息。BGP的下一跳属性和IGP的有所不同,不一定就是邻居设备的IP地址。

(1)华为BGP路由下一跳特点。

  • 默认情况下传给EBGP邻居的BGP路由的下一跳设置为自身向这个EBGP邻居发送BGP报文的源地址。
  • 默认情况下从EBGP邻居得到的BGP路由再传给IBGP邻居时,此BGP路由的下一跳默认不变,可以使用peer next-hop-local修改下一跳。(此命令仅对从EBGP邻居得到的路由传给IBGP邻居的时候生效)
  • 默认情况下自身起源BGP路由传给任何BGP邻居时,总是把此路由的下一跳设置为向BGP邻居发送BGP报文的源地址。

(2)修改。

  在IBGP,EBGP邻居之间的import或export都可以对BGP下一跳做修改,但要保证修改后的下一跳可达。

			route-policy next_hop permit node 10 
				apply ip-address next-hop 172.16.1.1 

(3)特殊场景。
在这里插入图片描述
  C路由器将172.30.0.0这条路由传递给B路由器时下一跳属性为10.10.10.2,当B路由器将这条路由传递给A路由器时,会对下一跳属性做一个判断,发现C传给B的下一跳属性和A路由器建立邻居的接口地址在同一个网段,所以B在向A这个EBGP邻居传递路由时不会修改下一跳属性。

3.Origin属性。

  Origin属性为公认必遵属性。Origin属性用来定义路径信息的来源,标记一条路由是怎么成为BGP路由的。

(1)属性来源。

  • 将IGP路由network到BGP中,起源属性为--------------i
  • 将IGP路由import-route到BGP中,起源属性为--------?
  • 将EGP路由import-route到BGP中,起源属性为-------e
    在这里插入图片描述

(2)三种起源属性的定义。

  • IGP:具有最高的优先级。通过路由始发AS的IGP得到的路由信息,比如通过network命令注入到BGP路由表的路由,其Origin属性为IGP。
  • EGP:优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。
  • Incomplete:优先级最低。通过其他方式学习到的路由信息。比如BGP通过import-route命令引入的路由,其Origin属性为Incomplete。

(3)属性修改。

  由于是公认必遵属性所以在IBGP邻居和EBGP邻居的export/import方向都可以修改。

			[R1]route-policy  origin permit  node  10
							[R1-route-policy]apply origin ?
							  egp         Remote EGP
							  igp         Local IGP
							  incomplete  Unknown heritage

(4)应用场景。

在这里插入图片描述

4.AS_path属性。

  公认必遵属性。AS_Path属性按矢量顺序记录了某条路由从本地到目的地址所要经过的所有AS编号。在接收路由时,设备如果发现AS_Path列表中有本AS号,则不接收该路由,从而避免了AS间的路由环路。

(1)AS_path的传递、防环和选路原则。

  • 当BGP路由传递给EBGP邻居时会将自身AS号添加到AS_path属性的最前面。
  • 当BGP路由传递给IBGP邻居时不会添加自身的AS号。
  • 当收到EBGP邻居的路由中AS_path携带自身的AS号,则忽略此路由。
  • 当收到IBGP邻居的路由中AS_path携带自身的AS号,不做防环检测。
  • 经过的AS_path数量越少,路径越优。

(2)属性修改。

  任何邻居之间的任意方向都可以修改AS_path属性,因为AS_path是公认必遵属性。

		apply  as-path  none  overwrite   将AS_path设置为NULL
		apply  as-path  1 2 3 additive    在原有的AS_path前面添加新的AS号
		apply as-path 1 2 3 overwrite     将原有的AS_path属性替换为新的AS_path

(3)几个关于AS_path的命令。

  • ip as-path-filter命令用来创建AS路径过滤器,后面直接跟正则表达式。ip as-path-filter的作用:
    • 根据AS_path属性进行BGP路由的过滤。
    • 根据AS_path属性进行BGP路由的匹配。
  • peer allow-as-loop:用于接收EBGP(包括成员EBGP)邻居传递过来的路由允许AS_path中出现自身联盟AS号(或自身成员AS号)的次数,默认一次。只要整个AS_path(小括号内和小括号外的总和)中出现的次数小于配置的允许的值,就会接收此路由。
  • as-path-limit:不接收AS-PATH长度大于此命令定义的值的BGP路由,同时不能发送(adj-rib-out表) AS_path长度大于此值的BGP路由,在import如果增加了AS_path长度超过limit设定的值,还是可以接收。小括号中的AS_path长度计算在内。

(3)应用场景。

在这里插入图片描述

5.Local_Pref属性。

  Local_Pref属性是公共任意属性。Local_Pref属性表明路由器的BGP优先级,用于判断流量离开AS时的优选路由。当BGP的设备通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由。Local_Pref属性仅在IBGP对等体之间有效,不通告给其他AS。Local_Pref属性可以手动配置,如果路由没有配置Local_Pref属性,BGP选路时将该路由的Local_Pref值按缺省值100来处理。

(1)华为路由器上对本地优先级属性的修改:

  • IBGP邻居之间在in或者out方向都可以对local_ pref属性做修改。
  • EBGP邻居之间只能在in方向上做local_ pref属性的修改。
  • 联盟场景下:成员EBGP邻居之间可以在in或者out方向上对local_ pref属性做修改。

(2)华为路由器上本地优先级的取值规则:

  • 缺省情况下从所有EBGP邻居收到的路径属性中不包含local preference, 缺省认为也是100,但在BGP表中显示为空。
  • 缺省情况下本地起源的路由也不包含local_ _preference缺省认为也是100,BGP表显示为空。

(3)华为路由器default local-preference的作用:

  • 修改本地起源的bgp路由的默认值,但在BGP表中显示为空,在将此路由传递给IBGP邻居时local-pre的值根据此命令设置。
  • 默认情况下local-pre属性不传递给EBGP邻居,此命令对从EBGP邻居接收到的路由设置一个local-pre值,本地BGP表中显示为空,并传递给其他的IBGP邻居。
  • 对本地起源路由,从EBGP传递来的路由,手动汇总的路由生效。
  • route-policy命令优先于default local-preference。

(4)应用场景。
在这里插入图片描述
  AS100内,R1,R2和R3之间分别两两建立IBGP对等体关系,而R2和R3分别和位于AS200和AS300的路由器建立EBGP对等体关系。这样路由器R2和R3都会从自己的EBGP对等体收到10.0.0.0/24这条路由,为了让AS100内的三台路由器优选R2作为10.0.0.0/24这条路由在本AS的出口,我们只需要在R2和R3上适当的对该路由的Local Pref属性进行修改,就可以达到目的。

6.MED属性。

  可选非过渡属性。MED(Multi-Exit Discriminator,多出口鉴别器)属性用于判断流量进入AS时的优选路由,当一个运行BGP的设备通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为优选路由。

(1)华为路由器MED值的生成规则:

  • 如果是直连路由或者静态路由,import或者network到BGP时MED值默认是0。
  • 如果IGP路由,import或者network到BGP时MED值默认是继承IGP路由的metric。

(2)华为MED值的通告原则:

  • 本地始发的路由MED值传递给所有邻居。
  • 从EBGP邻居得到的路由的MED不会传递给EBGP邻居,影响邻居AS的选路。
  • 从EBGP邻居得到的路由的MED可以传递给IBGP邻居。
  • 从IGBP邻居得到的路由传递给EBGP邻居不携带MED。
  • 如果从EBGP学到的路由不带MED属性,再传给IBGP邻居时也不携带MED属性。
  • 从联盟EBGP邻居或联盟内始发的的路由的MED值在整个联盟保持传递。

(3)MED的特点:

  • MED属性在IBGP和EBGP邻居(包括成员EBGP)in和out方向都可以修改。
  • MED值默认仅对下一跳AS相同的BGP路由进行MED值的比较。可以在BGP视图下使用compare-different-as-med命令让其比较来自不同AS的相同路由的MED值。
    • 默认仅对下一跳AS相同的BGP路由进行MED值的比较的原因?因为不同的AS可能运行的IGP协议不同,计算开销值的方法不同没有可比性。
  • default med命令:对所有import的路由以及汇总路由生效,发送此路由给EBGP邻居时生效,发送给IBGP邻居不生效,Local-RIB显示原始的MED值。
  • EBGP在发布从IBGP学来的路由时,会清除MED的值。如果想强制通告,可以在宣告的路由“apply cost-type internal" 实现。这时BGP将会在IGP表中查找去往这条路由下一跳的metric值, 并将该值作为MED值传递给EBGP邻居,如果IGP表中没有此路由下一跳的路由,则设置为0,可以手动指定。使用的场景:
    在这里插入图片描述
    (4)MED属性使用的场景:

在这里插入图片描述
  R1和R2将网段10.0.0.0/24传递给各自的EBGP邻居R3和R4(从自身发布这条路由),R3和R4在其他条件相同的情况下,优先选择MED值较低的路径,即均选择经由R1访问网络10.0.0.0/24。

7.Community属性。

  可选过渡属性。用于标识具有相同特征的BGP路由,使路由策略的应用更加灵活,同时降低了维护管理的难度。团体属性分为自定义团体属性和公认团体属性。

  • 自定义团体属性主要用来标记路由,类似IGP路由的TAG。但有以下不同点:
    • TAG只能有一个,团体属性可以有多个。
    • 格式不同。
  • 公共团体属性用来限定路由的传递范围。

(1) 自定义团体属性。
  团体属性是一组有相同特征的目的地址的集合。团体属性用一组以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(0xFFFFFFFF)是预留的。

(2)公认团体属性。

  • Internet:缺省情况下,所有的路由都属于Internet团体。具有此属性的路由可以被通告给所有的BGP对等体。
  • No_Advertise:具有此属性的路由在收到后,不能被通告给任何其他的BGP对等体。
  • No_Export:具有此属性的路由在收到后,不能被发布到本地AS之外。如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他子AS。
  • No_Export_Subconfed:具有此属性的路由在收到后,不能被发布到本地AS之外,也不能发布到联盟中的其他子AS。
  • 一条路由有多个公认团体属性传递范围小的生效。

(3)应用场景。
在这里插入图片描述

四、AS内部的网络架构和路由黑洞。

1. AS内部的网络架构。

  AS内部BGP的网络架构一般采用IBGP全互联+IBGP的水平分割,但是这种架构只适合于小型的BGP网络,大型BGP网络使用这种架构需要维护比较多的TCP会话,消耗了设备资源,拓展性比较差,运维难度大。所以大型BGP网络架构采用的是BGP路由反射器或者BGP联盟这两种架构。

(1)路由反射器。
  • 作用:允许将从IBGP邻居学习到的路由发送给特定IBGP邻居,打破了IBGP邻居关系水平分割规则和全互联的需求,减少IBGP会话数量。

  • 基本概念:

    • 路由反射器RR(Route Reflector):允许把从IBGP 对等体学到的路由反射到其他IBGP对等体的BGP设备。
    • 客户机(Client):与RR形成反射邻居关系的IBGP设备。在AS内部客户机只需要与RR直连。
    • 非客户机(Non-Client):既不是RR也不是客户机的IBGP设备。在AS内部非客户机与RR之间,以及所有的非客户机之间仍然必须建立全连接关系。
    • 始发者(Originator):在AS内部始发路由的设备。Originator_ID属性用于防止集群内产生路由环路。
    • 集群(Cluster):路由反射器及其客户机的集合。Cluster_List属性用于防止集群间产生路由环路。
  • 路由反射宣告规则:

    • 从非客户IBGP对等体学到的路由,发布给此RR的所有客户机。
    • 从客户机学到的路由,发布给此RR的所有客户机和非客户机。
    • 从EBGP对等体学到的路由,发布给所有的非客户机和客户机。
  • 防环机制:

    • Cluster_List属性:该属性为可选非过渡,路由反射器和它的客户机组成一个集群(Cluster),使用AS内唯一的Cluster ID作为标识。为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集群的Cluster ID。
      • 当一条路由第一次被RR反射的时候,RR会把本地Cluster ID添加到Cluster List的前面。如果没有Cluster_List属性,RR就创建一个。
      • 当RR接收到一条更新路由时,RR会检查Cluster List。如果Cluster List中已经有本地Cluster ID,丢弃该路由;如果没有本地Cluster ID,将其加入Cluster List,然后反射该更新路由。
    • Originator_ID属性:该属性为可选非过渡,Originator ID由RR产生,使用的Router ID的值标识路由的始发者,用于防止集群内产生路由环路。
      • 当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性。
      • 当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,则不接收此路由。
    • 应用场景: 在这里插入图片描述集群间防环:
    • 使用命令reflector cluster-id给所有位于同一个集群内的路由反射器配置相同的Cluster_ID。
    • 在冗余的环境里,客户机会收到不同反射器发来的到达同一目的地的多条路由,这时客户机应用BGP选择路由的策略来选择最佳路由。
    • Cluster_List的应用保证了同一AS内的不同RR之间不出现路由循环。
      集群内防环:
    • 当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性。
    • 当设备接收到这条路由的时候,将比较收到的Originator ID和本地的Router ID,如果两个ID相同,则不接收此路由。
  • 同级反射器和分级反射器。

    • 一个AS中可以存在多个集群,各个集群的RR之间建立IBGP对等体。当RR所处的网络层相同时,可以将不同集群的RR全连接,形成同级RR。
    • 当RR所处的网络层不同时,可以将较低网络层次的RR配成客户机,形成分级RR。
      在这里插入图片描述
    • 在实际的RR部署中,常用的是分级RR的场景。如下图,ISP为AS100提供Internet路由。AS100内部分为两个集群,其中Cluster1内的四台设备是核心路由器,采用备份RR的形式保证可靠性。
      在这里插入图片描述
(2)BGP联盟。
  • 作用:解决AS内部的IBGP网络连接激增问题,除了使用路由反射器之外,还可以使用联盟(Confederation)。
  • 原理:联盟将一个AS划分为若干个子AS。每个子AS内部建立IBGP全连接关系,子AS之间建立联盟EBGP连接关系,但联盟外部AS仍认为联盟是一个AS。配置联盟后,原AS号将作为每个路由器的联盟ID。
  • 优点:一是可以保留原有的IBGP属性,包括Local Preference属性、MED属性和NEXT_HOP属性等;二是联盟相关的属性在传出联盟时会自动被删除,即管理员无需在联盟的出口处配置过滤子AS号等信息的操作。
  • 配置:
    在这里插入图片描述
(3)反射器场景和联盟场景下路由属性的传递规则。
  • 反射器:

    • Next_hop:
      • 当RR接收到客户机发来路由,反射给其他客户机或者非客户机时,下一跳保持不变,即使使用了next-hop-local命令,也不变。
      • 当RR接收到客户机发来路由,发送给EBGP邻居时,下一跳会改变为自身的地址。
      • 当RR接收到EBGP邻居的路由,传递给客户机和非客户机时,下一跳不会改变为自身的地址,但是可以通过next-hop-local实现修改为自身接口。
      • 当RR接收到非客户机路由时,反射给客户机,默认下一跳也不会改变,但发给EBGP邻居时,下一跳会改变为自身的地址。
    • orginator_id和cluster_list:
      • 当RR接收到EBGP邻居的路由时,不会给此路由添加originator_id和cluster_list属性。
      • 当RR接收到客户机和非客户机的路由时,反射给其他客户机时均会给此路由添加origintor_id和cluster_list属性。
      • 当客户机或非客户机从EBGP邻居收到路由时,发给RR,RR反射此路由时会添加origintor_id和cluster_list属性。
      • 当RR自身起源的路由,通告给客户机和非客户机时,不会给此路由添加origintor_id和cluster_list属性。
  • 联盟:

    • Next_hop:
      • 从联盟EBGP邻居得到的路由传递给成员EBGP邻居,可以使用next-hop-local修改路由的下一跳属性。
      • 从联盟EBGP邻居得到的路由传递给IBGP邻居时,可以使用next-hop-local修改路由的下一跳属性。
      • 从成员EBGP邻居得到的路由传递给成员IBGP邻居时,无法使用next-hop-local修改路由的下一跳属性,思科的可以改。
      • 从IBGP邻居得到路由传递给成员EBGP邻居,无法使用next-hop-local修改路由的下一跳属性,思科的可以改。
    • AS_Path在联盟内传递的时候需要添加成员AS号,形成联盟内有序的AS。如下:
      在这里插入图片描述
      • 修改规则:华为设备在联盟EBGP, 成员EBGP邻居,IBGP之间import和export都可以修改as-path。
      • AS_Path防环总结:
        • 接收联盟EBGP:AS-PATH不能有联盟AS号,可以有成员AS号。
        • 接收成员EBGP:AS-PATH可以有联盟AS,不能有成员AS。
    • MED:
      • 默认情况下,如果AS-PATH最左边的AS号相同时,会进行MED值的比较,EBGP和成员EBGP都是默认开启此选路规则。
      • 使用compare-different-as-med命令后,将不做AS号检测,都进行MED值比较,此命令针对EBGP和成员EBGP邻居有效,只要前5条规则相同,始终比较这些路由的MED属性。
      • 使用bestroute med-confederation命令后,将不做联盟内AS号的检测,都进行MED值比较,注意这些BGP路由的AS-PATH中不能包括任何外部AS号,用于在同一个联盟内不同成员AS起源BGP路由进行MED属性的比较。
      • 联盟内对于不是始发于联盟内的BGP路由,如果小括号外下一跳AS号相同比较MED值。
2.路由黑洞。

  什么是路由黑洞?即没有去往源的路由,也没有去往目的的路由。怎样解决?

  • IBGP和IGP的同步,即将EBGP路由引入到AS内的IGP协议中,目前很少被使用,因为:

    • 保持BGP协议和IGP协议运行独立性、隔离性,防止BGP路由震荡导致IGP协议发生大量的路由计算,影响网络的稳定性。
    • 默认华为设备只允许引入EBGP路由到IGP协议中(为了防止产生环路),这样让AS内部没有运行BGP协议的路由器也可以通过IGP协议得到这些BGP路由,防止黑洞产生。
    • 关于同步检测的一些说明:
      • BGP开启同步后,会检查IBGP邻居(如果路由来自EBGP邻居,忽略同步检查)接收的BGP路由是否同时存在IGP路由表中,如果IGP路由表中有同样的路由条目则优选该路由;如果没有则不优选。
      • 在没有IBGP全互联的网络架构中没有进行IBGP和IGP的路由的同步检测,会产生BGP黑洞风险。
      • 华为AR系列路由器默认关闭IGP和IBGP路由的同步检测机制,甚至不能开启。
  • AS内部都运行BGP协议,通过BGP协议获取BGP路由。这样就无需进行IBGP和IGP同步检测,因为所有路由器都运行BGP协议,故不会存在BGP黑洞风险。目前使用最多。

  • GRE隧道。
    在这里插入图片描述

  • MPLS LSP隧道。
    在这里插入图片描述

五、BGP特性。

1.安全性。

(1)BGP的认证。

  三种路由协议认证的区别:

  • OSPF:所有报文都要进行认证。认证方式有区域认证、接口认证。认证类型有明文、MD5、NULL认证

  • ISIS:认证类型区域认证、路由域认证、接口认证,通过10号TLV实现。

  • BGP:邻居间的MD5认证,认证信息通过TCP的option来携带,BGP报文本身没有认证字段。这就意味着BGP的每一个报文都包含认证信息。
    在这里插入图片描述

  • BGP认证的配置:

	peer  10.1.123.2 password ?
		cipher  Password with encrypted text
		simple  Password with simple     text

(2)通用TTL安全保护机制GTSM。

  BGP GTSM检测IP报文头中的TTL(time-to-live)值是否在一个预先设置好的特定范围内,并对不符合TTL值范围的报文进行允许通过或丢弃的操作,从而实现了保护IP层以上业务,增强系统安全性的目的。为防止攻击者伪造BGP报文对设备进行攻击,可以通过配置GTSM功能检测IP报文头中的TTL值的范围来对设备进行保护。

  • 配置:peer 10.1.15.1 valid-ttl-hops 2 针对邻居10.1.15.1设置TTL值范围为[254,255]
  • 处理机制:
    • 向这个邻居发包的时候,将BGP数据包的TTL设置为255。
    • 收到这个邻居的BGP数据包以后,对其进行检测。报文(TTL) >= 255-hops+1如果满足,可以接收,如果不满足丢弃。即被检测的报文的TTL值有效范围为[255–hops+1, 255]
  • 应用场景:将IBGP对等体的报文的TTL的范围设为254至255。当攻击者模拟合法的BGP协议报文,对设备不断的发送报文进行攻击时,TTL值必然小于254。如果没有使能BGP GTSM功能,设备收到这些报文后,发现是发送给本机的报文,会直接上送控制层面处理。这时将会因为控制层面处理大量攻击报文,导致设备CPU占用率高,系统异常繁忙。如果使能BGP GTSM功能,系统会对所有BGP报文的TTL值进行检查,丢弃TTL值小于254的攻击报文,从而避免了因网络攻击报文导致CPU占用率高的问题。

(3)route-limit。

  限制从对等体接收的路由数量,防止资源耗尽性攻击。配置规则如下:

peer 10.1.45.5 route-limit 10 70
	最多收10条对等体传来的路由,收到路由超过70%告警,超过最大数量断开BGP邻居,30s后自动再次建立邻居。
	
peer 10.1.45.5 route-limit 10 70 alert-only
	收到路由超过70%告警,超过最大数量还是告警,不断开BGP邻居。
	
peer 10.1.45.5 route-limit 10 70 idle-timeout 10
	收到路由超过70%告警,超过最大数量断开邻居关系,并在10分钟后重新建立邻居,超时前可以使用reset bgp 10.1.45.5手动重新建立邻居。
	
peer 10.1.45.5 route-limit 10 70 idle-forever
	收到路由超过70%告警,超过最大数量断开邻居关系,不在自动建立,可以使用reset bgp 10.1.45.5手动重新建立邻居。

(4)AS_Path长度保护。

  AS_Path长度保护。通过在入口和出口两个方向对AS_Path的长度进行限定,直接丢弃AS_Path超限的报文。 配置如下:

<Huawei> system-view
[Huawei] bgp 100
[Huawei-bgp] as-path-limit 200 设置AS_Path属性中AS号的最大个数为200
2.路由衰减。

  路由衰减(Route Dampening)用来解决路由不稳定的问题。多数情况下,BGP协议都应用于复杂的网络环境中,路由变化十分频繁。为了防止持续的路由振荡对设备性能的损耗,BGP使用路由衰减来抑制不稳定的路由。使用规则如下:

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

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

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

  • 默认每翻滚(失效)一次惩罚值增加1000,当BGP属性改变时惩罚值增加500。

  • half-life(半衰时间):将处罚值减少一半所需经历的时间。取值范围为1-45分钟,默认15分钟。

  • reuse Value(重用限制值)︰用来与处罚值相比较,若处罚值小于重用限制值,且被抑制的路由重新up,就不再对其进行抑制。取值范围1-20000,默认值为750。

  • Suppress Value(惩罚限制值)︰用来与处罚值相比较的数值。若处罚值大于抑制限制值,路由将被抑制。取值范围为1-20000,默认值为2000。

  • max-suppress-time:(最长抑制时间):可对路由进行抑制的最长时间,取值范围为1-255,默认值为half-life时间的4倍。

  • 配置:
    在这里插入图片描述

    • dampening ibgp   命令只对BGP VPNv4路由生效
    • reset bgp dampening 命令用来清除路由的衰减信息并释放被抑制的路由
3.BGP的按组打包。

  按组打包技术将所有拥有共同出口策略的BGP邻居当作是一个打包组。这样每条待发送路由只被打包一次然后发给组内的所有邻居,使打包效率指数级提升。例如,一个反射器有100个客户机,有10万条路由需要反射。如果按照每个邻居分别打包的方式,反射器RR在向100个客户机发送路由的时候,所有路由被打包的总次数是10万×100。而按组打包技术将这个过程变为10万×1,性能相当于提升了100倍。

在这里插入图片描述
  在邻居数目多、路由量大且大部分邻居具有相同出口策略的场景下,按组打包技术极大的提高了BGP打包发包性能。按组打包的典型应用场景主要有以下三种情况:

  • 在国际关口局场景:IGW Router会向所有相邻AS发送路由。如果IGW Router支持BGP按组打包功能,那么它的BGP的转发性能将得到较大的提升。
    在这里插入图片描述
  • 路由反射器场景:RR会向所有Client发送路由。如果RR支持BGP按组打包功能,那么它的BGP的转发性能将得到较大的提升。
    在这里插入图片描述
  • ASBR场景:作为ASBR的RouterB从EBGP邻居RouterA收来路由后,会向所有IBGP邻居发送。如果RouterB支持BGP按组打包功能,那么它的BGP的转发性能将得到较大的提升。
    在这里插入图片描述
4.ORF。

  BGP基于前缀的ORF(Outbound Route Filtering)能力,能将本端设备配置的基于前缀的入口策略通过路由刷新报文发送给BGP邻居。BGP邻居根据这些策略构造出口策略,在路由发送时对路由进行过滤。这样不仅避免了本端设备接收大量无用的路由,降低了本端设备的CPU使用率,还有效减少了BGP邻居的配置工作,降低了链路带宽的占用率。
(1)应用场景。

在这里插入图片描述
  当本端设备希望BGP邻居只发送它需要的路由,而BGP邻居又不愿意针对不同设备维护不同的出口策略时,可以运用BGP ORF特性。如上图:
  直连BGP邻居中,RouterA、RouterB协商基于前缀的ORF能力后,RouterA将本地配置的基于前缀的入口策略打包到Route-refresh报文中发送给RouterB。RouterB根据接收到的路由刷新报文构造出口策略,通过Route-refresh报文发送路由给RouterA。RouterA只收到它需要的路由,而RouterB不必维护路由策略,减少了配置工作。
在这里插入图片描述
(2)配置。
在这里插入图片描述

5.active-route-advertise。

  只有当BGP路由被成功的安装进IP或IPv6路由表,该路由才能被发送给邻居。默认情况下路由只需在BGP中优选即可向邻居发布。配置了此特性之后,路由必须同时满足在BGP协议层面优选与在路由管理层面活跃两个条件,才能向邻居发布。配置和使用案例如下:

<Huawei> system-view
[Huawei] bgp 100
[Huawei-bgp] active-route-advertise

加粗样式

  • AR3通过BGP从AR1和AR2上分别接收到两条路由:172.16.1.0/24和172.16.2.0/24。
  • AR3上还存在着172.16.1.0/24和172.16.2.0/24的静态路由,因为静态路由的优先级高于BGP所以这两条BGP的路由就不会被放进路由表,属于未激活的路由。
    在这里插入图片描述
  • 但是AR3还是会将这两条BGP路由传递给AR4,因为这两条路由对于BGP来说满足传递的条件:在BGP路由表中是最优的。
  • 在AR3的BGP视图配置:active-route-advertise命令。此时这两条路由就得满足:在BGP路由被成功的安装进IP路由表,该路由才能被发送给邻居。
  • 所以AR4不在能接受到此条路由。
6.按策略进行下一跳迭代。

  BGP需要对非直连的下一跳进行路由迭代,但是如果不对迭代到的路由进行过滤的话,可能会迭代到一个错误的转发路径上。按策略进行下一跳迭代就是通过配置路由策略来限制迭代到的路由。如果路由不能通过路由策略,则该路由迭代失败。使用场景如下:
在这里插入图片描述

  • R3和R1、R2之间通过Loopback口建立IBGP邻居。R3从R1、R2分别收到了前缀为172.16.1.0/24的BGP路由。其中从R1收到的BGP路由的原始下一跳为1.1.1.1/24。
  • 当R1正常运行时,R3收到从R1发来的前缀为172.16.1.0/24的路由会迭代到IGP路由1.1.1.1/24,下一跳是10.1.13.1。但是当R1上存在一条去往1.1.1.1/32,下一跳是10.1.34.4的静态路由。这样就导致下一跳迭代到R4。原因是:在R3上会用原始下一跳1.1.1.1在IP路由表中进行最长匹配迭代,结果会迭代到1.1.1.1/32的路由上,从而产生了180s的路由黑洞。
  • 但此时用户期望的是,当到1.1.1.1/24的路由不可达时,可以重新选路优选到2.2.2.2/24的路由。
  • 配置下一跳迭代策略,让BGP按路由策略进行下一跳迭代。
7.4字节AS号。

  解决2字节AS号可能不够用问题。

  • 变化:4字节AS号特性是将AS号的编码范围由2字节扩大为4字节。

  • 协议作出的拓展:

    • 定义了一种新的Open能力码用于进行BGP连接的能力协商;
    • 2种新的可选过渡属性,AS4_Path和AS4_Aggregator属性;
    • 定义AS_TRANS(保留值为23456)用于衔接2字节AS和4字节AS。
  • 属性意义:2种新的可选过渡属性AS4_Path(属性码为0x11)和AS4_Aggregator属性(属性码为0x12)用于在Session上传递4字节AS信息。

    • AS4_Path:用于正常传递4字节AS号。
    • AS4_Aggregator:该路由在哪个AS上被汇总,聚合者属性。
  • 传递过程:
    在这里插入图片描述

  • R2收到R1的一条四字节AS的路由,AS号码为10.1;

  • R2与R3建立邻居,需要令R3认为R2的AS号为AS_TRANS;

  • R2发送路由给R3的时候把AS_TRANS记录在AS_Path里面,把10.1与自己的AS号码20.1按照BGP要求的顺序记录在AS4_Path;

  • R3对于不识别的属性AS4_Path不作处理依然保留,它只按照BGP的规则来发送路由给R4。当然它认为R4的AS号码也是AS_TRANS;

  • 这样当R4收到从R3来的路由会把AS_PATH中的AS_TRANS按照顺序替换为AS4_Path里所记录的相应的地址,在R4上把AS_PATH属性还原为30 20.1 10.1。

8.路由聚合。

(1)自动汇总。

  • 仅对import-route到BGP的IGP路由,静态,直连路由生效。
  • 对network发布的路由和从邻居得到的路由无效。
  • 进行有类聚合,总是汇总成主类网络号,容易导致路由不精确。
  • 抑制明细路由。
  • AS_path和起源属性都不继承明细,下一跳属性为自己0.0.0.0
  • 配置:summary automatic

(2)手动汇总。

  • 配置:
    • aggregate 172.16.0.0 255.255.252.0
      • 继承团体
      • 继承起源优先级最低
      • 明细路由不抑制
      • 不继承AS-PATH
    • aggregate 172.16.0.0 255.255.252.0 detail-suppressed
      • 不继承团体
      • 继承起源优先级最低
      • 明细路由抑制
      • 不继承AS-PATH
    • aggregate 172.16.0.0 255.255.252.0 as-set
      • 继承团体
      • 继承起源优先级最低
      • 明细路由不抑制
      • 继承AS-PATH
    • aggregate 172.16.0.0 255.255.252.0 as-set detail-suppressed
      • 不继承团体
      • 继承起源优先级最低
      • 明细路由抑制
      • 继承AS-PATH

(3)AS-SET的特性。

  • 将明细路由中的as-path全都继承过来,写在{ }中,称之为as-set,无序列表概念。
  • 可以携带团体属性,可以叠加属性,肯定是"传输范围小"的community值起作用(华为设备会继承所有明细路由的全部团体属性,传输范围小的值生效,如果使用了detail-suppressed则抑制所有明细路由的同时也不在继承明细路由的community属性)。
  • 继承origin code:默认是IGP,但明细路由中origin code不一致,默认优先使用的最低优先级的起源属性(?<egp<igp)。

(4)对汇总路由进行溯源。

  • Aggregator: AS 12 该路由在哪个As上被汇总,聚合者属性
  • Aggregator ID 10.1.102.2 产生该聚合路由的路由器的BGP的router id,聚合者ID属性
  • Atomic-aggregate 原子聚合,对聚合路由的进一步说明,丢失了明细路由的某些属性
9.BGP 缺省路由。

(1)方法1:

peer 2.2.2.2 detault-route-advertise向邻居通告缺省路由,自身路由表无需存在缺省路
peer 2.2.2.2 default-route-advertise route-policy test route-policy于修改缺省路由属性
peer 2.2.2.2 default-route-advertise conditional-route-match-all 172.16.1.0 255.255.255.0 172.16.2.0 255.255.255.0匹配路由表〔非BGP路由表)中存在的所有的条件路由,产生缺省路由
peer 2.2.2.2 default-route-advertise conditional-route-match-any 172.16.1.0 255.255.255.0 172.16.2.0 255.255.255.0匹配路由表〔非BGP路由表)中存在的任一条件路由,产生缺省路由

(2)方法2:使用network 0.0.0.0将其他协议的缺省路由通告给所有邻居,自身路由表需要有其他协议的缺省路由。

10.BGP的路由优选规则和负载分担。

(1)BGP的12条选路原则。

  • 优选Preference_Value值最高的路由(私有属性,仅本地有效)。
  • 优选本地优先级(Local_Preference)最高的路由。
  • 优选手动聚合>自动聚合>network>import>从对等体学到的。
  • 优选AS_Path短的路由。
  • 起源类型IGP>EGP>Incomplete。
  • 对于来自同一AS的路由,优选MED值小的。
  • 优选从EBGP学来的路由(EBGP>IBGP)。
  • 优选AS内部IGP的Metric最小的路由。
  • 优选Cluster_List最短的路由。
  • 优选Orginator_ID最小的路由。
  • 优选Router_ID最小的路由器发布的路由。
    • 如果路由携带Originator_ID属性,选路过程中将比较Originator_ID的大小(不再比较Router ID),并优选Originator_ID最小的路由。
  • 优选具有较小IP地址的邻居学来的路由。

(2)负载分担。

  • 条件:“BGP选择路由的策略”的1至8条规则中需要比较的属性完全相同。华为默认强制要求AS-PATH属性完全一致,既长度和所经过的AS号要完全相同。

(3)配置命令和应用场景。
在这里插入图片描述
  maximum load-balancing 2 设置形成负载分担的等价路由的最大条数
  此命令单独使用,AS-PATH会作为选路规则,但在做负载分担时,也会对AS-PATH做检查,要求路径一致,长度一致,如果EBGP邻居路由最优则对EBGP路由做负载分担,如果IBGP邻居路由最优,则对IBGP路由做负载分担。

配置:

  • maximum load-balancing 2
  • load-balancing as-path-ignore

  此两条命令配合使用时,AS-PATH会作为选路的判断条件参与最优路径的选择,但AS-PATH不做为负载分担的条件,可以实现不要求AS-PATH路径一致,也不要求长度一致,也可以实现负载分担,成员EBGP和IBGP都当IBGP路由看待,也可以实现负载分担。

  • maximum load-balancing 2
  • bestroute as-path-ignore

  此两条命令配置使用时,AS-PATH不会作为选路规则,但在做负载分担时,依然会对AS-PATH做检查,要求路径一致,长度一致。

  • maximum load-balancing ebgp 2

  当ebgp路由最优时,对EBGP路由做负载分担,如果EBGP路由没有被优选,则命令无效,也不对ibgp路由做负载分担。

  • maximum load-balancing ibgp 2

  当ibgp路由最优时,对IBGP路由做负载分担,如果IBGP路由没有被优选,则命令无效,也不对ebgp路由做负载分担。

五、BGP4+。

(1)BGP4+是什么?

  • BGP4的扩展版本。
  • 扩展能力自协商机制。
  • 支持传递多种地址族地址即MPBGP。(IPv6、VPNv4、VPNv6等)
  • 新增属性用以支持多地址族地址传递。

(2)作出的改进。
  为实现对多种网络层协议的支持,BGP4+需要将网络层协议的信息反映到NLRI及Next_Hop。MP-BGP中引入了两个新的路径属性:

  • MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。
    在这里插入图片描述
    当传递IPv6路由时,MP_REACH_NLRI字段的值是:

    • AFI=2 ,SAFI=1(Unicast) ,SAFI=2(Multicast)。
    • 下一跳地址长度字段决定了下一跳地址的个数:
      • 长度字段=16,下一跳地址为下一跳路由器的全球单播地址
      • 长度字段=32,下一跳地址为下一跳路由器的全球单播地址和链路本地地址
    • 保留字段,恒等于0
    • NLRI字段,可变长字段,表示路由前缀和掩码信息。
  • MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。
    在这里插入图片描述

  • 在OPEN报文中进行多协议能力的协商:BGP设备通过Open消息协商能力,通过查看Open消息中的能力参数来确定对等体所具有的能力。BGP设备如果支持某功能,并且确定对方也具备该能力,那么该BGP设备将使用该功能与对等体交互。如下图是协商传递IPv6路由的能力:
    在这里插入图片描述   Open消息包含可选的能力协商参数Capabilities,由一个或多个三元组<Parameter Type、Parameter Length、Parameter Value>组成。除了多地址族的能力协商外,还有:

    • 4字节AS号能力
    • Route-Refresh支持能力
    • 多层标签能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晶晶娃在战斗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值