HCIP笔记(下)

重发布和路由策略

重发布

   在同一个网络拓扑结构中,如果存在多种不同的路由协议,由于不同的路由协议对于路由项的处理机制不同,这就会导致在网络中造成路由信息的隔离。而在路由协议的边界设备上,将某种路由协议的路由信息引入另一种路由协议中,这个操作被称为路由引入(Route Importation)或者路由重分发。---执行该操作的技术被称为重发布。

   作用:在一个网络中,若运行多种路由协议或相同路由协议的不同进程;协议之间不能直接沟通计算,进程直间也是相互独立,所以需要使用重发布技术来实现路由的共享。

执行条件

  1. 必须存在一个边界设备------同时连接两种路由协议或两种进程,同时学习到两种来源的路由信息,之后进行路由共享
  2. 关注种子度量值---起始度量值。

   ·A协议和B协议的开销计算算法不同,无法直接使用。故将A协议发布到B协议时,边界设备将不携带A协议的度量值,而是共享到B协议后,由边界设备在路由中添加一个起始度量值。

规则

  1. 将A协议引入到B协议中,在边界设备中的B协议上配置。---表明重发布技术的配置位置。
  2. 将A协议引入到B协议中,边界设备会将所有通过A协议学习到的路由以及边界设备上宣告在A协议中的所有直连路由,全部共享到B协议中。----表明重发布时发布的信息内容。

名词解释



·单点:两个协议或两个进程之间存在一个边界设备
·双点:两个协议或两个进程之间存在两个边界设备
·多点:两个协议或两个进程之间存在多个边界设备

·单向:仅将A协议路由共享到B协议中
·双向:A和B协议的路由均共享到对方

单点重发布:

  1. -->B:
[r2-rip-1]import-route ospf 1

   通过重发布技术将其他协议的路由信息导入到RIP中,RIP协议的种子度量值为0.

修改RIP种子度量值

[r2-rip-1]default-cost 5 ----修改全局种子度量值
[r2-rip-1]import-route ospf 1 cost 10 -----修改特定路由的种子度量值

注意:两条命令同时执行时,将按照第二条执行。

静态--->B:

[r2-rip-1]import-route static

·导入静态RIP赋予的种子度量值也是0

·重发布在导入的路由中无法将缺省路由引入

直连--->B:

[r2-rip-1]import-route direct

·除了R1的直连网段外,所有直连均会导入
·若边界路由器进行A--->B的重发布以及直连--->B的重发布,并且两次包含相同的路由信息,则将会优先学习直连导入的路由信息。

双点重发布

    默认RIP和OSPF协议进行双点重发布,由于两者的优先级不同,故第一台ASBR设备重发布动作结束后,将影响其他ASBR设备的路由表。使得路由可能被回传到源协议当中,发生路由回馈-----A协议的路由重发布到B协议当中后,又被重发布回A协议。路由回馈可能会导致选路不佳,甚至是路由环路的出现。

华为为了解决路由回馈问题,将OSPF的域外路由优先级定义为150(150高于华为体系下所有IGP协议的优先级),从而解决路由回馈问题。

在双点双向重发布中,虽然解决了路由回馈问题,但是多点重发布还是存在一个必然产生的问题----选路不佳。------原因在于重发布时清除了原先的开销值导致的。

路由策略

·控制层流量----路由协议传递路由信息产生的流量

·数据层流量----设备访问目的地址是产生的流量

  所谓的路由策略---在控制层面转发流量的过程中,截取流量,之后修改流量再转发或者不转发,最终达到影响路由器路由表的生成,干涉选路的效果。

抓流量S

ACL列表

[r3-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.0

  因为ACL列表本身设计是为了抓取数据层流量的,所以,因为通配符的存在他可以灵活的匹配IP的数字特征,但是,没有办法匹配路由信息中的掩码特征。所以,ACL并不擅长控制层流量的抓取。

  如果需要在192.168.1.0/24、192.168.1.0/25、192.168.1.0/30中抓取到192.168.1.0/24,ACL是无能为力的,只能按照数字特征抓取,则意味着使用以上命令将同时抓取携带着三种路由信息的数据包。

前缀列表(IP-prefix)

  一个路由条目由目的网络地址(前缀)+掩码长度(前缀长度)共同标识。

IP前缀列表可以包含一条或多条语句,每条语句都使用一个序号(十进制)进行标识。

  前缀列表的匹配规则:从上而下,逐条匹配,一旦匹配上则将按照该规则执行,不再向下匹配。末尾隐含拒绝所有规则

实例

假设,有四条路由信息:172.16.0.0/16、172.16.0.0/24、172.16.0.0/30、172.16.1.1/32。

[r3]ip ip-prefix aa permit 172.16.0.0 24
该语句要求路由的目的网络地址的前24位比特位需要与172.16.0.0的前24位相同,并且路由的目
的网络掩码长度必须为24,因此该规则可以抓取172.16.0.0/24[r3]ip ip-prefix aa permit 172.16.0.0 16 less-equal 24
该语句要求路由的目的网络地址的前16比特位与172.16.0.0的前16位相同,并且路由的目的网络
掩码长度必须大于或等于16,且小于或等于24。因为改规则可以抓取172.16.0.0/16、
172.16.0.0/24[r3]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24[r3]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 32[r3]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 24[r3]ip ip-prefix qq deny 172.16.0.0 30[r3]ip ip-prefix qq permit 172.16.0.0 24[r3]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
上述语句中,IP地址为0.0.0.0,这种形式的IP地址被称为通配地址,也即该地址能匹配任意形式的
目的网络地址。因此,该语句并不关系被匹配路由的目的网络地址,但是要求路由的目的网络掩码
长度必须大于等于0,小于等于32,实际上这条路由相当于“允许所有”。[r3]ip ip-prefix ee deny 172.16.0.0 30
[r3]ip ip-prefix ee permit 0.0.0.0 0 less-equal 32[r3]ip ip-prefix aa permit 0.0.0.0 0 greater-equal 32 less-equal 32
该语句将匹配掩码长度为32的任意路由,也就是所有的主机路由
[r3]ip ip-prefix aa permit 0.0.0.0 0
该语句允许的是默认路由0.0.0.0/0
[r3]ip ip-prefix hcip permit 172.16.4.0 22 greater-equal 24 less-equal 24

做策略

偏移表格---Cisco

  偏移列表属于RIP这种距离矢量协议专用的。

抓流量
[r1]ip ip-prefix huawei permit 23.0.0.0 24
调用
[r1-GigabitEthernet0/0/1]rip metricin ip-prefix huawei 5
进入流量入方向接口,给其度量值增加5,metricin入;metricout出;出接口默认每次加1,如接
口默认不加。

该策略为逐跳行为,效果可以叠加操作;整段路径中流量经过的多个接口配置了度量值增加,最终的开销值为增加的总度量值。

过滤策略---Filter-Policy---路由过滤工具

 分发列表---cisco

只能够对路由信息进行过滤,而无法对LSA进行过滤

[r2-acl-basic-2000]rule deny source 34.0.0.0 0.0.0.0 ------过滤列表本身没有过滤能力,所以,
需要在抓取流量的时候使用拒绝动作。[r2-acl-basic-2000]rule permit source any -----注意,在抓取流量的时候,末尾一定要放通所有
流量,否则将会把所有的流量均过滤掉,原因在于过滤策略是完全依照ACL表项进行工作的在过滤策略中调用
[r2-rip-1]filter-policy 2000 export GigabitEthernet 0/0/0 -----在进程中调用,选定入方向或出
方向的接口,若不选择接口,则为全局调用,会匹配所有接口
[r2]ip ip-prefix aa deny 34.0.0.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
[r2-rip-1]filter-policy ip-prefix aa export GigabitEthernet 0/0/0

切记,若使用ACL定义流量,正常华为为ACL末尾隐含允许所有,但是在过滤策略中一定要手工配置允许所有。

 注意,若此时没有在R1上进行过滤,而是等R1将域外的五类LSA发布仅OSPF后,在再R2的出方向或入方向,有着或是R1的出方向调用过滤策略,则不会成功。必须要在R1将路由信息转换为LSA信息之前进行调用,也就是在ASBR的入方向调用。

   若在R2的入方向使用过滤策略限制192.168.2.0/24路由,则R2将不会具备该路由信息,因为是在R2根据本地LSDB中的LSA信息计算出192.168.2.0/24路由后,拒绝将这条路由信息加入本地路由表中。而R3此时还具备该路由信息,原因在于R3可以正常收到所有的LSA信息,并成功计算路由信息。
  若将过滤策略使用在链路状态型协议中,必须使用入方向。

路由策略----Route-policy 

 

 路由策略的匹配规则:自上而下,逐一匹配,一旦匹配上则将按照对应的规则来执行动作,不再向下匹配。末尾隐含拒绝所有的规则。

 配置实例

192.168.1.0/24 -----过滤
192.168.2.0/24 -----修改种子度量值10
192.168.3.0/24 -----开销值类型修改为Type-1
192.168.4.0/24 -----开销值类型修改为Type-1,tag=200
12.0.0.0/24   -----不处理

抓取流量:
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 192.168.1.0 0
[r2]acl 2001
[r2-acl-basic-2001]rule permit source 192.168.2.0 0
[r2]ip ip-prefix aa permit 192.168.3.0 24
[r2]ip ip-prefix bb permit 192.168.4.0 24做策略:
[r2]route-policy hcip deny node 10 ----创建一个叫做hcip的route-policy列表,且序号为10
[r2-route-policy]if-match acl 2000 ----匹配ACL 2000
[r2]route-policy hcip permit node 20
[r2-route-policy]if-match acl 2001
[r2-route-policy]apply cost 10
[r2]route-policy hcip permit node 30
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply cost-type type-1
[r2]route-policy hcip permit node 40
[r2-route-policy]if-match ip-prefix bb
[r2-route-policy]apply cost-type type-1
[r2-route-policy]apply tag 200
[r2]route-policy hcip permit node 50在重发布中调用:
[r2-ospf-1]import-route rip 1 route-policy hcip
192.168.1.0/24 -----过滤
192.168.2.0/24 -----修改种子度量值10
192.168.3.0/24 -----开销值类型修改为Type-1
192.168.4.0/24 -----开销值类型修改为Type-1,tag=200
12.0.0.0/24   -----不处理
[r2]display route-policy hcip -----查看路由策略内容

permit:
  ·指定该节点的匹配模式为允许,
  ·如果路由匹配的结果是满足该阶段的所有if-match语句,则该路由被视为允许通过,该节点的
apply语言将被执行,且不再进入一下个节点。若该节点中有fi-match语句不满足,则进入下一个
节点继续匹配。
deny:
  ·指定节点的匹配模式为拒绝。
  ·如果节点的匹配模式为拒绝,则该节点的apply语句将不被执行。
  ·如果路由匹配的结果是满足该阶段的所有if-match语句,该路由策略的匹配过程直接结束。不会进入下一个阶段。而满足该节点条件的路由会被视为拒绝通过。
  ·若该节点中有fi-match语句不满足,则进入下一个节点继续匹配。


配置指南总结
1. 即便要拒绝一个流量,在抓取的时候也必须使用允许操作,之后在路由策略来拒绝。
2. 在一条规则中,若没有进行流量匹配,那么就是匹配所有流量。若没有apply那么仅对匹配的流量
进行当前大动作修改。
3. 配置时,注意路由策略的“与”和“或”关系。

BGP-----边界网关协议

AS----自治系统

AS定义:由一个单一的机构或组织所管理的一系列IP网络及其设备所构成的集合

AS划分的原因:

 ·整个网络规模较大,伴随的是路由表中的路由数量进一步增加,路由表规模变大,路由收敛速度变慢,设备性能消耗加大。-----范围太大。
 ·AS之间可能是由不同的机构、公司,相互之间无法完全信任,使用IGP协议可能存在暴露AS内部的网络信息的风险。
 不同的AS通过AS号进行区分,AS号存在16bit、32bit两种。IANA----互联网数字分配机构。
 ·16位AS号,取值范围1-65534(其中0和65535保留),其中64512-65534为私有的AS号,可以自行使用,公有的AS号为1-64511
 ·保留AS号
RFC4893标准,23456该AS号为保留AS号
RFC5398标准
     ·16位AS号:64496-64511-----16个
     ·32位AS号:65536-65551-----16个

BGP基础

·BGP-1------RFC1105
·BGP-2------RFC1163
·BGP-3------RFC1267
·BGP-4------RFC1771----4271

BGP协议介绍

 1、首先RIP是基于UDP进行数据传输的,而UDP是一个不可靠的协议,他在传输过程中可能会丢失某些数据。
2、缺省情况下,RIP协议的路由更新报文的发送间隔是30S,而如果两个AS内部的路由表非常大,30秒的时间可能还不够将所有的路由信息传递给对方AS,这样,整条链路完全就是为了RIP的通告报文服务,而不能转发数据流量。

解决方法:
  ·将UDP协议更换为TCP协议。不用担心数据丢失,并且TCP会预先建立连接,也就让路由器有一个准备的时间而不是像RIP一样毫无准备的接收大量更新数据。
  ·取消周期更新,改为触发更新。
      ·在第一次路由数据同步完成后,如果有路由增加,就发送通告路由增加的报文。如果路由删
除,就发送一个通告路由删除的报文。
      ·如果路由信息发生改变,就先发送一个通告路由删除的报文,在发送一个通告路由增加的报
文。

 运行BGP协议之间的设备传递路由信息,原因在于若传递拓扑信息,会导致路由器负载过高,并且会让对端AS看到本端的拓扑信息,引发安全问题。
 BGP需要传递所有的通过BGP学习到的路由信息,并且运行了BGP协议的路由器,所维护的路由表是包含了整个互联网的所有路由信息的。

BGP特点

·BGP基于TCP,只要能够建立TCP连接,就可以建立BGP连接
·触发式更新,不再进行周期更新
·只传递路由信息,而不会暴露AS内的拓扑信息
   ·不传递拓扑的原因
      ·拓扑信息资源占用量大
      ·会暴露AS内部的拓扑连接情况
·无类别的路径矢量型协议
     ·无类别-----传递时携带真实子网掩码
     ·矢量-----方向性,谁传递的路由,谁为下一跳
    ·距离矢量----将一个路由器看做一个单位计算距离
    ·路径矢量----将一个AS看做一个整体,从而计算一跳。
 IGP协议的主要任务是将AS内部的未知网段信息计算获取到,而BGP则主要是将IGP协议计算出来的路由信息进行搬运和传递,并不去计算路由。

BGP的特征

IGP协议特点
·选路佳
·收敛快
·占用资源少

可控性
因为在重发布的过程中,由于会抹除原有度量值,会导致出现选路不佳的情况。而BGP为了弥补这个不足点,直接舍弃了开销值。取而代之的是设计了很多的路径属性。
可靠性
  ·BGP因为只有触发更新,而不存在周期更新。所以,需要确保其可靠性,使用TCP为传输层协议。端口号179。-------BGP会话的建立是手工指定的(单播形式)。
  ·IGP协议不选择使用TCP的原因:
      ·TCP传输效率低
      ·TCP传输占用资源大
      ·TCP协议只能实现单播,所以,无法通过组播或广播的形式发送数据,将导致IGP协议无法自
动发现邻居关系,只能手工指定。

AS-BY-AS
BGP将一个AS看做是一个整体。
BGP协议不支持负载均衡。

BGP的对等关系


  BGP因为传输层使用的是TCP协议,所以只要在TCP协议可以正常建立会话的基础上就可以完成BGP的建邻工作。
  BGP支持非直连建邻(网络可达)-----BGP的非直连建邻是建立在IGP(静态)之上的。
BGP存在两种对等体关系类型:EBGP、IBGP。
  ·EBGP对等体关系
      ·位于不同自治系统的BGP路由器之间的BGP对等体关系。
      ·EBGP对等体一般使用直连建立对等体关系。EBGP邻居之间的报文中TTL值被设置为1。
      ·两台路由器之间要建立EBGP对等体关系,需要满足如下条件:
          ·两个路由器属于不同AS
          ·在配置时,peer命令所指定的对等体的IP地址必须路由可达,TCP连接必须正常建立。
·IBGP对等体关系
    ·位于相同自治系统的BGP路由器之间的BGP对等体关系。
    ·IBGP对等体一般使用非直连建邻。IBGP邻居之间的报文中TTL值被设置为255。
    ·在IBGP对等体中,常使用环回接口地址作为源目IP地址。
        ·环回接口稳定
        ·并且可以借助AS内部的IGP和冗余拓扑来保证可靠性。

BGP特点
1. 无类别路径矢量协议-----AS-BY-AS
2. 使用单播更新来发送消息;基于TCP 179号端口工作。
3. 增量更新机制----仅触发更新,无周期更新
4. 具有丰富的路径属性来取代IGP中的度量值进行选路,可以由多个属性共同控制协议
5. 可以在流量的进出口实行路由策略----可控性
6. 默认不被用于负载均衡-----会通过各种选路规则仅仅产生一条最佳路径
7. BGP支持认证和聚合

BGP的数据包

BGP报文头部

 

 

 Route-refresh包-----路由刷新包
 作用:用来要求对等体重新发送指定地址族的路由信息。
 一般为本端修改了相关路由策略之后让对方重新发送更新报文,本端执行新的路由策略重新计算BGP路由。
   双方均支持路由刷新功能。
OSPF中的hello报文------可以周期性的发现、建立和保活邻居关系。
Open包
是TCP连接建立之后发送的第一个报文,用于建立BGP对等体之间的连接关系。

· Hold Time-----保活时间
· BGP Identifier-----BGP的标识符(RID)
      ·与OSPF中的RID用法相同
      ·全网唯一。
      ·获取方式:手工配置>最大环回接口>最大物理接口

BGP需要协商的参数
 ·AS号
      ·BGP的open报文会携带本地的AS号,通过比较两端的AS号可以判断对端是否和本端处于相同
AS。
            ·不管这个AS号与本地的AS号是否相同,都不影响BGP对等体的建立。
      ·另外,如果对方的AS号和本地指定对等体时写的AS号不同,则会导致邻居关系无法建立。
         ·peer 12.0.0.2 as-number 100
·RID
     · 通过对比open报文中的RID值,可以判断是否相同,若相同则会导致建邻失败。
·认证字段
      ·BGP也可以进行认证,认证口令不同,则也会导致建邻失败。
      ·该字段永远以MD5值的方式保存在TCP的选项字段。
·保活时间-----并不影响BGP对等体的建立。
      ·BGP在建立对等体关系时,需要协商该参数。
      ·如果在该时间内未收到对端发来的keepalive报文或者update报文,则认为BGP连接中断。-
---180S。

         ·报文更新时间----三分之一保活时间----60S。
      ·若双方保活时间不一致,则按照小的时间进行。
      ·该参数可以设置为0,若设置为0,则代表不发送keepalive报文。
·路由刷新功能
keepalive包
    作用:用来进行周期保活。
    除了保活机制外,keepalive报文还在open报文协商参数时,临时充当确认报文-----确认open报文中
的参数是否认可。
update包---更新包
作用:用于在对等体之间传递路由信息,可以用于发布、撤销路由。-----携带需要传递的路由信息。
需要携带的参数主要就是目的网络号、子网掩码信息和路径属性。

 Notification包
纯粹的告警机制。当BGP检测到错误状态时(对等体关系建立时、建立之后都可能发送该报文),就会向对等体发送该报文,告知对端错误原因。之后BGP连接会立即中断

BGP的状态机

BGP的角色
  ·Speaker
       ·发送BGP报文的设备被称为BGP Speaker(发言者)
       ·它接收或产生新的报文信息,并发布给其他BGP Speaker。Speaker角色是针对具体报文发送
过程而言的,网络中每台BGP路由器均可称为自己发送BGP报文的Speaker。
   ·Peer
      ·相互交换报文的Speaker之间互相称为peer(对等体)
BGP的状态机仅描述的是对等体关系建立过程的状态变化。BGP可以将邻居建立过程和BGP路由收发过程分开。

·IDLE-----空闲状态
      ·所有设备启动BGP进程后,首先进入该状态。
      ·进入该状态后,等待手工指定邻居。
      ·当手工指定邻居之后,将会进入到一个检查环节。需要检查手工指定的IP地址在本地全局路由
表中是否可达,只有可达,才可以正常建立TCP的会话,如果不可达,则邻居关系建立失败,停留在IDLE状态。
      ·若检查成功,则进入Connect状态。

Connect-----连接状态
      ·建立TCP会话连接
      ·在该状态下,会开启一个连接重传定时器。----32秒。
      ·如果成功建立TCP会话,会关闭连接重传定时器,并进入OpenSent状态。
      ·如果建立失败,则进入Active状态。
      ·如果重传定时器超时,BGP仍然没有收到对等体的响应,那么BGP会继续尝试与对等体建立
TCP会话,并一直处于Connect状态。


Active状态----尝试状态
      ·该状态是因为第一次TCP会话建立失败进入的,在该状态会重新尝试建立TCP会话。
      ·如果成功建立,则进入OpenSent状态,并会关闭连接重传定时器。
      ·如果失败,则停留在Active状态。
      ·与Connect状态共同使用同一个连接重传定时器。

OpenSent-----发出本地的Open报文
      ·也将收到对端发送的open报文,并会查看其中的参数,如果参数没有问题,则本地将发送
keepalive报文进行确认,之后进入openconfirm状态。
      ·如果发现收到的open报文中的参数不认可,那么BGP会发送notification报文给对等体,并进
入idle状态。
      ·对等体关系的指定是双向的,所以当双方都使用peer命令指定了对等体后,均会主动与对等
体建立TCP连接。但是这样就会建立两条TCP的双向连接,所以BGP会选择第一个TCP链接断开。


OpenConfirm----等待确认状态
      ·在该状态机是,等待对方发送的keepalive报文。如果接收到对端发送的keepalive报文,则代
表参数协商通过,会进入最终状态。
      ·如果收到的是notification报文,则转至idle状态。

Established------连接建立完成状态
      ·对等体关系建立完成的标志。
      ·在该状态下,BGP可以和对等体交互Update报文、keepalive报文、Route-refersh报文和
Notification报文。

BGP的工作过程

1. 基于IGP协议或静态路由实现邻居IP可达
2. 启动BGP协议,并指定邻居关系
      (1)邻居之间单播传输报文,通过三次握手机制,建立TCP会话通道。
      (2) 后续BGP所有的通讯都将基于TCP会话通道来传输。包括传输所需要的可靠性机制。
3. 使用open报文和keepalive报文进行对等体关系的建立。open报文用来携带建立对等体关系时所需要使用的参数,keepalive报文用于参数的确认。最终完成对等体关系的建立。生成邻居表。
4. 使用update报文来共享路由信息。信息中将携带目标网络号、掩码及路径属性;之后,设备会将所有的自己发送的以及接收的路由信息记录在一张表中-----BGP表。
5. 将BGP表中的最优路由信息(通过路径属性选择)加载到全局路由表中。
6. 此时路由收敛完成,将使用keepalive报文进行周期保活,默认保活时间为180S,周期发送时间默认为保活时间的1/3,即60S。
7. 如果出现错误信息,则将使用notification报文进行告警
8. 如果出现结构突变,则将使用update报文进行触发更新

BGP的防环机制


EBGP的水平分割
AS_Path属性-----记录AS路径的一个属性
   当路由信息再一次传回本地AS时,路由器通过查看AS_Pathshux1,可以清楚的知晓该属性包含本地AS号,故拒绝学习该路由信息。

IBGP的水平分割

 BGP规定,当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何IBGP对等体。-----IBGP水平分割机制。
解决方案
1. 构建全联的IBGP对等体关系
      (1). 当AS内部设备数量巨大时,IBGP邻居关系会呈指数型增长,而非直连建邻之间传递的数据还是要依靠物理链路,故全连接建邻会导致占据大量的链路资源,并且路由器维护大量的TCP和BGP会话连接,需要消耗大量的设备资源。
      (2). 网络的可扩展性差。
2. 打破IBGP水平分割
     (1) 联邦
     (2)路由反射器


BGP的路由黑洞

 

    由于BGP协议可以非直连建邻,所有导致BGP协议可能出现跨越未运行BGP协议的设备,导致BGP路由传递后,控制层面可达。但是数据层面,流量流经未运行BGP协议的设备时,无法通过,形成路由黑洞。
   避免路由黑洞的方式-----BGP同步更新规则----当一台路由器从自己的IBGP对等体学习到一条BGP路由时,它将不能使用该条路由或把这条路由信息通告给自己的EBGP对等体,除非它又从IGP协议学习到这条路由,也就是要求IBGP路由与IGP路由同步。
   在华为数通设备上,BGP同步更新规则缺省是被关闭的,并且华为也不允许开启BGP同步规则。

解决方案
1. 让未运行BGP协议的设备运行BGP协议---建立全连接的IBGP环境。
2. 物理或逻辑拓扑全联
3. 在IGP协议中,重发布BGP协议的路由信息
4. MPLS----多标签标记交换。

BGP基本配置


BGP建邻的基本配置

使用直连接口IP地址建立EBGP对等体关系
 

1、启动BGP协议
[r1]bgp 100 -----启动BGP进程,且标准本设备所在的AS号
2、设置Rid
[r1-bgp]router-id 1.1.1.1
3、配置BGP对等体,并指定对等体所在的AS号
[r1-bgp]peer 12.0.0.2 as-number 200
[r1]display bgp peer ----查看BGP的邻居表

 IBGP对等体的建立
    由于直连接口建立对等体时,若链路终端,则会中断BGP会话。故在实际工程中,一个AS内部正常具有较为复杂的网络拓扑结构,设备到设备之间存在大量的备份和负载均衡路径,因此建立IBGP邻居关系时,建议使用双方的环回接口来作为源/目IP地址。

[r2]bgp 200
[r2-bgp]peer 3.3.3.3 as-number 200
[r3]bgp 200
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 2.2.2.2 as-number 200

  手工建立邻居关系时,所指定的建邻的IP地址必须和收到的数据包中的源IP地址相同才能正常建立邻居关系。否则,邻居关系建立失败。

[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 -----将R2发送的数据包的源IP地址修改为
loopback 0接口的IP地址

  抓包后会发现一个问题,就是BGP此时仅建立了一次TCP连接,就完成了BGP会话的建立。这也就意味着,BGP会话的建立仅仅是依靠TCP会话,而并没有对这个TCP会话建立的方式有要求,该TCP会话是由谁发起的,谁是客户端,谁是服务端并不影响BGP对等体的建立。-------在BGP协议中,TCP会话建立两次完全是多余的,而建立两次的原因也是因为双方路由器均会指定对等体(均将自己看做是客户端),从而发起建立连接请求。
   而在当下场景中,R3作为TCP会话的服务端,已经认知到了自己本地已经有接口3.3.3.3,与自己本地配置的对等体建立了连接,所以本地也不会在发送所谓的TCP连接建立请求。
  一般情况下,双方均要修改本地数据包的源IP地址。


使用环回接口IP地址建立EBGP对等体关系
   若EBGP对等体之间存在多条直连链路时,才可使用环回接口建立对等体关系。

1、实现路由可达
ip route-static 5.5.5.5 255.255.255.255 45.0.0.5
ip route-static 4.4.4.4 255.255.255.255 45.0.0.4
2、对等体配置
[r4]bgp 200
[r4-bgp]peer 5.5.5.5 as-number 300
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r5]bgp 300
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer 4.4.4.4 as-number 200
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0

因为EBGP之间的数据包的TTL值为1,故此时虽然可以建立TCP连接和BGP会话,但是路由器会认为该连接和会话存在异常,在BGP对等体建立完成后,发送notification报文断开连接,从而会产生一个现象----状态机震荡。

解决方法:修改TTL值

[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2
如果未标明参数值,则代表将TTL值修改为最大值255
[r5-bgp]peer 4.4.4.4 ebgp-max-hop 2
两边均要修改,不然无法建立对等体关系,还存在状态机震荡

BGP的路由发布


通过network命令发布路由
路由发布----对于BGP而言,只要是路由表中存在的路由信息,都可以通过network命令发布。

[r1-bgp]network 1.1.1.1 32 目标网络号 路由表中的掩码信息

注意:BGP使用network命令宣告时,该路由信息必须与全局路由表中存在的路由项一致。

[r1-bgp]display bgp routing-table ---查看BGP表

network-----目标网络号及掩码
nexthop-----下一跳,谁发送的路由信息,则下一跳就写谁;如果是本地发布的路由,则下一跳写0.0.0.0
状态码----
·*
    ·代表可用
    ·所有设备收到路由条目后,首先会根据下一跳属性中的参数来查询本地路由表,查看该地址的
可达性。如果本地路由表中可达,则代表该路由信息可用;若本地不可达,则代表该路由信息不可用。
    ·如果该路由条目不可用,则将不会参与到路由信息的优选过程。
·>

    ·代表优选
    ·当收到多条到达相同网段的路由信息时,并且都可用,则将依据属性在其中选择最优的路由信
息进行加表及传递。
·i
    ·代表该路由信息是通过IBGP对等体学习到的
对于R3而言,R2传递来的路由信息是不可用且不优的,原因在于下一跳属性未修改,无法递归。 

解决思路:

[r2-bgp]peer 3.3.3.3 next-hop-local
将路由传递给自己的3.3.3.3邻居时,将路由中的下一跳属性该为本地。

总结一下配置逻辑:
1. 完成所有路由器的IGP配置
2. 使用直连接口建立EBGP对等体关系
3. 使用环回接口建立IBGP对等体关系
4. 使用connect-interface命令修改IBGP建邻源IP地址,双方均修改
5. 使用next-hop-local命令修改路由传递的下一跳属性
6. 若存在使用环回接口建立EBGP对等体关系,则需要建立通讯条件,并且使用ebgp-max-hop命令修改TTL值

使用import命令引入路由

[r2-bgp]import-route ospf 1

ONG----起源码属性----标识一条路由信息的起源类型
 ·i----代表这条路由信息起源于AS内部使用network命令通告出来
      ·不限于IGP、静态、直连
 ·e-----代表这条路有信息起源于EGP协议----现在几乎看不到该标识
 ·?-----除了以上两种方式,其他方式获取的路由信息都是该标识

BGP路由通告原则


 ·当一条BGP路由器发现了多条可以到达同一地址的路由条目,该设备会通过一个路由选择过程在这些路由条目中选择一条最优的路由,将这条路由加入到全局路由表中,并且在向其他BGP对等体通告该路由条目时,也只会通告最优的路由。
      ·通常情况下,路由器只会将最优的路由加载到路由表中,除了激活了负载均衡情况外。
·当一台路由器从EBGP邻居学习到了BGP路由时,缺省情况下,会将该路由条目通告给所有的IBGP对等体以及EBGP对等体。
·当一台路由器从IBGP邻居学习到了BGP路由时,缺省情况下,不会将这条路由信息通告给其他的
IBGP对等体。
      ·因为IBGP水平分割原则
·当一台路由器从自己的IBGP学习到BGP路由时,如果同步规则被激活,只有从IGP协议也学习到该路由条目后,才会将BGP路由激活,并学习到本地,以及通告到EBGP对等体。如果同步规则被关闭,即使没有从IGP学习到该路由,也会将BGP路由通告给EBGP对等体。


BGP的路由聚合

 自动聚合


该方法仅针对重发布的路由信息生效。
华为设备默认关闭自动聚合功能。

[r1-bgp]summary automatic 开启自动聚合功能

 ·  自动聚合功能是以主类聚合的方式进行的。而主类聚合方式会导致一个结果就是产生路由黑洞。所以也会生成一条去往空接口的防环路由。这也是华为设备关闭自动聚合功能的原因。
·   状态码S-----代表抑制,被抑制的路由信息将不再加表和传递。
特点:
一 缺点
    1. 自动聚合只能将明细路由汇总到主类
         (1). 会产生巨大的路由黑洞
    2. 自动聚合只能针对重发布的路由条目生效
二 自动聚合会抑制明细路由条目
三. 黑洞路由器会在本地的路由表中,自动生成一条指向null口的汇总网段路由,防止环路
四.聚合完成后,将会在本地的BGP表中发布一条新的下一跳指向127.0.0.1的汇总网段路由。


手工聚合

[r3-bgp]aggregate 172.16.0.0 20
   手工聚合会生成一条指向空接口的防环路由,并且掩码可以随意汇总,但是手工聚合没有将明细路由 进行抑制。    手工聚合只有在所有明细路由均无效时,才会撤销。并且,手工聚合可以灵活调整掩码信息,只要还 存在一条明细路由,手工聚合后的路由就是可用且优的。    手工聚合命令在配置后, 1 、检测本地路由表中是否有聚合路由的可用明细路由。 2 、若有则在本地路 由表中发布一条指向空接口的防环路由;若无则该命令无效;3 、将汇总的防环路由发布到 BGP    BGP 的手工聚合可以在非直连设备上进行,只要本地存在这些明细路由,且明细路由可用且优就可以 进行聚合操作 聚合路由不会继承明细路由的属性,导致 AS_Path 属性丢失,可能会引发环路问题。
[r3-bgp]aggregate 172.16.0.0 20 detail-suppressed -----抑制所有明细路由
抑制策略,通告 172.16.0.0/20 的汇总路由时,将 172.16.1.0/24 的明细路由也通告出去。 在该策略中,会将路由策略中所允许的流量给抑制。也就是说,实际上是与路由策略的玩法相反。
1、抓流量
[r3]ip ip-prefix aa deny 172.16.1.0 24
[r3]ip ip-prefix aa permit 172.16.0.0 20 greater-equal 24 less-equal 24
2、配置策略
[r3]route-policy aa permit node 10
[r3-route-policy]if-match ip-prefix aa
3、调用
[r3-bgp]aggregate 172.16.0.0 20 suppress-policy aa ----策略名称即为路由策略的名称
as-set -----汇总路由会继承明细路由的路径属性
[r3-bgp]aggregate 172.16.0.0 20 as-set
[r3-bgp]aggregate 172.16.0.0 20 as-set detail-suppressed
as-set 属性在继承多个明细路由属性时,会将继承的不同的多个明细路由的 AS_Path 属性使用 {} 括起 来,在选路时,当做一个来看,而在防环时,将观察所有的 AS
attribute-policy-----该参数可以设置聚合路由的大部分路径属性
[r1]route-policy bb permit node 10
[r1-route-policy]apply as-path 1 2 3 additive 
[r1-route-policy]apply local-preference 10
[r1-route-policy]apply cost 100
[r1-route-policy]apply preferred-value 20
[r1-bgp]aggregate 172.16.0.0 20 detail-suppressed attribute-policy bb
origin-policy ----设置某些明细路由为汇总路由宣告的触发条件
[r1]ip ip-prefix aa permit 172.16.1.0 24
[r1]route-policy aa permit node 10
[r1-route-policy]if-match ip-prefix aa
[r1-bgp]aggregate 172.16.0.0 20 origin-policy aa
Atomic-Aggregate     ·纯粹的预警属性,不承载任何信息     ·当路由器收到的 update 报文中,携带该属性值,则认为这条路由信息可能存在属性丢失。     ·该属性只有当所有的明细路由均被抑制时才会携带 Aggregator     ·携带了汇总者的 RID 以及其所在的 AS     ·用于标记聚合行为发生的位置         ·那个 AS ,哪台 BGP 设备

路由反射器

RFC4456   IBGP 水平分割:路由器无法将从 IBGP 对等体学习到的路由信息传递给其他 IBGP 对等体。   IBGP 水平分割解决了 AS 内部环路的问题,但是产生了新的问题 ----- BGP 路由在 AS 内部只能传递一跳,会 造成 IBGP 路由无法被正常传递,造成通讯障碍 路由反射器角色 · RR---Route Reflector

      ·RR类似于一面镜子,可以把自己接收到的路由信息反射给其他人
·Client----RR客户端
-----客户端可以存在多个或一个
·RR非客户端

    路由反射器的配置是在充当反射器的 BGP 路由器上完成的。而路由反射器的客户设备并不需要做任何 额外的配置,它甚至不知道自己成为了某个路由反射器的客户。     路由反射器与所有的客户或非客户建立 IBGP 对等体关系,而客户之间则无需建立 IBGP 对等体关系。这 样就优化了网络中的IBGP 对等体关系数量。 路由反射规则 1. 如果路由反射器从自己的非客户对等体学习到一条 IBGP 路由,则可以将这条路由传递给自己的客户 2. 如果路由反射器从自己的客户对等体学习到一条 IBGP 路由,则可以将这条路由传递给自己的客户和 非客户 3. 如果路由器学习到 EBGP 对等体发送的路由信息,则可以发送给所有的 IBGP 对等体 4. 当路由反射器执行路由反射时,它将只能使用自己最优的 BGP 路由进行反射。
[r3-bgp]peer 2.2.2.2 reflect-client -----1、指定2.2.2.2为自己的客户;2、并说明自己是RR

 

  路由反射器角色可能会根据处于不同的反射簇时充当不同的角色。 一般会设置传递路由信息的一方为 RR 的客户端   Origin-ID----- 起源 ID   当一条 BGP 路由被路由反射器反射给其他路由器时,如果该条路由已经携带了起源 ID 属性,则保留该 属性,否则路由反射器为这条路由添加起源 ID 属性,并将该属性值设置为该路由在本地 AS 内的始发路由 器的 RID

 

  当路由器从 BGP 对等体收到一条 IBGP 路由,并且该路由所携带的起源 ID 属性与自己的 BGP RID 相同 时,它将意识到该路由是从自己这里发送到本 AS 内部的,且又被发送回来了,此时本地将忽略这条路由 的更新。如此消除环路隐患 Cluster-List----- 簇列表     当一条 BGP 路由被路由反射器执行反射时,如果该条路由已经存在 Cluster-List 属性,那么路由反射 器将本地的 Cluster-ID 附加到路由的 Cluster-List 属性中,而如果该路由没有 Cluster-List 属性,那么路 由反射器为其创建,并将 Cluster-ID 加入到 Cluster-List     当一台路由反射器收到一条 BGP 路由后,若发现该路由携带 Cluster-List 属性,并且 Cluster-List 属性 中包含着自己的 Cluster-ID 时,会忽略关于这条路由的更新 ----- 类似于 AS-Path 属性的防环原理。

 

注意     当路由反射器将一条从自己的 EBGP 对等体学习到的 BGP 路由通告给自己的客户时,他是不会创建 起源ID 和簇列表,因为这本质上是正常的通告行为     起源 ID 和簇列表的传播范围是 AS 内部     路由反射器在反射路由时,不会修改除了起源 ID 和簇列表以外的路径属性,原因是因为 AS-BY-AS 原 则。

反射器的组网方式

备份 RR 组网

 

  由于 RR 打破了 IBGP 对等体收到的路由不能传递给其他 IBGP 对等体的限制,所以同一集群内的 RR 之间 可能存在环路。这就需要将同集群内的所有 RR Cluster-ID 设置为相同值,用以避免 RR 之间的路由环
[r3-bgp]reflector cluster-id 10.10.10.10 ----设置集群的簇ID,只能在反射器上进行配置,该命令
为覆盖式命令,配置后,会覆盖掉之前路由器选择出来的cluster-ID

多集群路由反射器组网

分级路由反射器 同级路由反射器

 

 注意:在同级路由反射器中,RR之间属于Non-ClientIBGP Full Mesh结构。

单集群问题

 

  多集群设计不仅提供了针对物理链路失效带来的物理冗余,同时提供针对客户端和 RR 之间的 IBGP 话失效的逻辑冗余

联邦----联盟

  联邦的思想是在一个大的 AS 内创建若干个小的 AS ,使得 AS 内部出现一种特殊的 EBGP 对等体关系,从 而解决 IBGP 路由在 AS 内部传递的问题

 若使用联邦将AS 3456划分为多个,则AS 3456被称为联邦AS,而划分的小的AS,称为成员AS

由于成员 AS 号是由联邦 AS 号的管理者进行分配的,所以不能使用公有 AS 号,而是使用私有 AS 64512-65534 )。     成员 AS 之间建立的 EBGP 对等体关系是一种特殊的 EBGP 对等体关系,他们之间 仅遵循 EBGP 对等体的 路由传递原则,但是不能像正常的 EBGP 对等体一样修改路由的路径属性 ;而从传递的内容角度看,依然 需要遵循AS-BY-AS 原则,因为在宏观上,他们依然处于同一个 AS 当中。 ----- 联邦 AS 内部的成员 AS 对于联 邦外部并不可见 联邦配置

 

[r1]bgp 100
[r1-bgp]router-id 1.1.1.1
[r1-bgp]peer 10.1.13.3 as-number 3456 ----使用联邦AS号建立BGP对等体,原因在于对于R1而
言,并不需要知晓对端AS中的成员AS内容
[r3]bgp 64512 ---联邦成员设备启动BGP进行需要使用成员AS号启动
[r3-bgp]router-id 3.3.3.3
[r3-bgp]confederation id 3456 ----定义联邦AS号
[r3-bgp]peer 10.1.13.1 as-number 100
[r3-bgp]peer 4.4.4.4 as-number 64512 ----联邦成员之间建立IBGP对等体关系需要使用成员AS
号
[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r3-bgp]peer 4.4.4.4 next-hop-local
[r4]bgp 64512
[r4-bgp]router-id 4.4.4.4
[r4-bgp]confederation id 3456
[r4-bgp]peer 3.3.3.3 as-number 64512
[r4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[r4-bgp]confederation peer-as 64513 -----在需要建立联邦的EBGP对等体关系的设备上指定与自
己建邻的成员AS号,若有多个可以一次指定
[r4-bgp]peer 5.5.5.5 as-number 64513
[r4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r4-bgp]peer 5.5.5.5 ebgp-max-hop ----修改TTL值,建议修改为最大值
[r5]bgp 64513
[r5-bgp]router-id 5.5.5.5
[r5-bgp]confederation id 3456
[r5-bgp]confederation peer-as 64512
[r5-bgp]peer 4.4.4.4 as-number 64512
[r5-bgp]peer 4.4.4.4 con l 0
[r5-bgp]peer 4.4.4.4 ebgp-max-hop 
[r5-bgp]peer 6.6.6.6 as-number 64513
[r5-bgp]peer 6.6.6.6 con l 0
[r5-bgp]peer 10.1.25.2 as-number 200
[r5-bgp]peer 6.6.6.6 next-hop-local
[r5-bgp]peer 4.4.4.4 next-hop-local ----联邦内部传递不修改属性,故需要手工修改下一跳为本地
[r6]bgp 64513
[r6-bgp]router-id 6.6.6.6
[r6-bgp]confederation id 3456
[r6-bgp]peer 5.5.5.5 as-number 64513
[r6-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[r2]bgp 200
[r2-bgp]router-id 2.2.2.2
[r2-bgp]peer 10.1.25.5 as-number 3456
联邦防环   使用 EBGP 水平分割原则。当 BGP 路由在联邦内传递时,联邦成员 AS 号才会出现在 AS_Path 属性中,当 路由传出联邦AS 时,成员 AS 号才被移除。联邦的成员 AS 号会用()括起来。     一般在大型 BGP 网络中,路由反射器和联邦是可以同时使用的。原因在于:联邦中的成员 AS 若为单线 连接,只能存在两台设备,若单线存在多台设备,又会发生联邦 AS 内部的 IBGP 水平分割现象,故需要使 用路由反射器弥补缺陷

 

 

BGP的路径属性及选路规则

路径属性

 

 BGP的优选规则

 

 

    选路的前提条件 :任何一条 BGP 路由在参与优选之前都必须先经过检查。设备会检查 BGP 路由的 next-hop 是否可达(在本地路由表中检查),如果不可达,则 BGP 路由被视为不可用,该路由将无论如 何不会被优选,也不会被设备使用或通告给其他对等体 。在优选规则之前,还需要保证所有路由的优先 级相同。也就是255   1. 优选 Preferred-Value 属性值最大的路由

 

     PV 属性,是华为的私有属性,可以看做为权重,数值越大,对应的路由优先级越高。默认值为 0     因为 PV 值是所有选路原则中的第一条原则,所以,该属性是 本设备 上选路最方便的一个属性。 ------ 该 属性只有在本地生效,无法传递给任何BGP 对等体。 方法一:全局修改
[r4-bgp]peer 10.1.34.3 preferred-value 60000 ----该命令用于将对等体10.1.34.3传递过来的路
由的PV值在本地修改为60000
该命令是全局修改方式,可能会导致 R3 压力过大,最终设备宕机。而我们更希望实现的效果是负载分 担。---- 让不同的流量走不同的线路,分担单一线路的数据压力。 方法二:精细化修改
1、抓取流量
[r4]ip ip-prefix PV permit 10.10.0.0 16
2、配置策略
[r4]route-policy PV permit node 10
[r4-route-policy]if-match ip-prefix PV
[r4-route-policy]apply preferred-value 100
[r4]route-policy PV permit node 20
3、调用策略
[r4-bgp]peer 10.1.34.3 route-policy PV import ----因为该属性为私有不传递属性,故调用时,
只能在本地的入方向调用,来影响本地的BGP路由表。

2. 优选 Local_Preference 属性值最大的路由     该属性的默认值为 100 ,并且 LP 属性只能在 IBGP 对等体之间传递,而不能在 EBGP 对等体之间传递。 如果路由在传递到本地时并不携带LP 属性,则 BGP 在决策时,使用缺省值来计算。该属性越大越优。该 属性的传递范围为本AS 内部。该属性是 AS 内部优选路由的最佳选择。
方法一:全局修改
[r3]bgp 234
[r3-bgp]default local-preference 200 ---修改全局默认LP值,R3之后发给IBGP对等体的路由的
LP属性都将被修改为200
方法二:精细化修改
1、抓取流量
[r4]ip ip-prefix LP permit 10.11.0.0 16
2、做策略
[r4]route-policy LP permit node 10
[r4-route-policy]if-match ip-prefix LP
[r4-route-policy]apply local-preference 200
[r4]route-policy LP permit node 20
3、调用
[r4-bgp]peer 3.3.3.3 route-policy LP import

3. 本地始发的 BGP 路由优于从其他对等体学习到的路由,本地始发的路由优先级 : 选手动聚合 > 自动聚合 >network>import> 从对等体学到的。

 

 

4. 优选 AS_Path 属性值最短的路由 AS_Path 属性     一台路由器将 BGP 路由通告给自己的 EBGP 对等体时, 会将本地的 AS 号插入到该路由原有的 AS_Path 之前 作用:     ·可以实现 EBGP 路由的环路避免     ·用于 BGP 路由优选的决策            ·AS-Path 属性越短则该路由越优,因为这条路径距离目的地所要经过的 AS 个数更少。    AS_Path 属性最开始是空的列表,当该路由被通告给一个 EBGP 对等体邻居时,才会被加上一个 AS 号, 在每次经过一个AS 时,都会在 AS_Path 属性的最前端增加最新的 AS 号。而该属性在 IBGP 对等体之间传播 时,这条属性是不会发生改变的。

 

方法一
1、抓流量
[r1]ip ip-prefix AS permit 10.13.0.0 16
2、做策略
[r1]route-policy AS permit node 10
[r1-route-policy]if-match ip-prefix AS
[r1-route-policy]apply as-path 11 22 33 overwrite -----覆盖操作
[r1]route-policy AS permit node 20
3、调用
[r1-bgp]peer 10.1.13.3 route-policy AS export
方法二
1、抓取流量
[r3]ip ip-prefix AS permit 10.13.0.0 16
2、做策略
[r3]route-policy AS permit node 10
[r3-route-policy]if-match ip-prefix AS
[r3-route-policy]apply as-path 11 22 33 additive 
[r3]route-policy AS permit node 20
3、调用
[r3-bgp]peer 10.1.13.1 route-policy AS import
additive 参数     ·在原有 AS_Path 属性的基础上添加配置的 AS 号,在最前方添加。 overwrite 参数      ·直接覆盖原有的 AS-Path 属性      ·优势在于灵活可变           ·隐藏路由的真实路径信息           ·用于形成负载均衡           ·缩短 AS-Path 长度
[r3-route-policy]apply as-path none overwrite 将AS_Path属性列表更改为空表

  强调一下, AS_Path 属性是 BGP 非常重要的属性, EBGP 路由的防环依赖于 AS_Path 属性的正常工作, 因此,如果出于影响路由优选的目的修改 AS_Path 属性,操作需要非常慎重,一般情况下,不建议修改 AS_Path 属性值。若不得不修改该参数, 建议添加或覆盖的 AS 号为曾经出现过的 AS ,这样即加长了 AS_Path 长度,又对网络的影响降低到最小
[r3-bgp]bestroute as-path-ignore ----让路由器在选路时,忽略对AS_Path属性的检查。
该命令经常会被使用在实现BGP负载分担时。

 

5. 优选 Origin 属性最优的路由。 Origin 属性值按优先级从高到低的排列是 :IGP EGP Incomplete OGN 起源码一共存在三种     i---- 代表该条路由信息起源于 AS 内部使用 network 通告出来的     e----- 代表该条路由信息起源于 EGP 协议     ?----- 除了以上两种

 

1、抓流量
[r2]ip ip-prefix aa permit 10.14.0.0 16
2、做策略
[r2]route-policy aa permit node 10
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]apply origin egp 23
[r2]route-policy aa permit node 20
3、调用
[r2-bgp]peer 10.1.24.4 route-policy aa export

 6.优选MED属性值最小的路由

 

MED----- 多出口鉴别属性    MED 值是继承了 IGP 协议的度量值。    MED 属性值可以传递给自己的 EBGP 对等体,并且该 EBGP 对等体可以将该路由传递给自己的 IBGP 对等 体,并且因为AS-BY-AS 规则,该属性在 IBGP 对等体之间传递时不变。    MED 属性可以干扰访问本地的流量的走向 。也就是说,本 AS 的策略调整可以影响到别的 AS 对路径的 判断, 这是在 BGP 选路中唯一一个可以影响到其他 AS 的属性    BGP 规定,非本地始发的 BGP 路由信息,在传递给自己的 EBGP 对等体时,将 MED 值修改为 0    边界设备均发布路由信息 总结:    MED 值默认初始值并不为 0 ,而是继承了路由表中该路由条目的开销值,所以, MED 参数可以反映到 达目的网段在本AS 内部的开销大小,通过这个参数,别的 AS 的流量在进入本 AS 时可以选择开销较小的入 口进入。通过修改该属性,可以影响其他AS 的流量流入本 AS 路径。    若本地通过 IBGP 对等体学习到一条 BGP 路由,其中存在 MED 值,之后需要将这条路由在传递给本地的 EBGP对等体时,则不再携带该属性。这种设置将有可能造成选路不佳的情况,所以,建议,如果存在多 组边界设备需要将路由发送给EBGP 对等体关系时,需要将所有的路由信息均发布。    MED 的传播范围只能是在发布该路由的 AS 以及他直连的 AS 内部。   注意: MED 值影响的是别的 AS 的流量通过多个出口进入到本 AS 内部,如果流入的不是同一个 AS ,也就是说收到的路由条目中的AS_Path 属性最左边的 AS 号不同,则将不比较第六条,直接比较第七条。
[r4-bgp]default med 10 ----全局修改MED值
该命令只对本地聚合路由或者引入的路由有意义,并且是在传递给EBGP对等体时才会携带
出方向---R2
1、抓流量
[r2]ip ip-prefix MED permit 10.14.0.0 16
2、做策略
[r2]route-policy MED permit node 10
[r2-route-policy]if-match ip-prefix MED
[r2-route-policy]apply cost 20
[r2]route-policy MED permit node 20
3、调用
[r2-bgp]peer 10.1.24.4 route-policy MED export

BGP 负载分担 形成 BGP 等价负载分担的条件是 “BGP 选择路由的策略 1 8 条规则中需要比较的 属性 完全相同。

 

[r4-bgp]maximum load-balancing ?INTEGER<1-8> Specify maximum equal cost routesebgp EBGP routes as equal cost routeibgp IBGP routes as equal cost route
[r4-bgp]maximum load-balancing 2
配置BGP最大负载均衡条目数量为2,默认情况为1,所以BGP默认情况下不存在负载均衡,而如
果携带了ebgp或者ibgp参数,则代表对某种方式学习到的路由进行负载均衡,不携带该参数则代
表全局负载均衡。
  R4 实现了负载均衡后,无论是否配置了 peer next-hop-local 命令,本地设备都会向自己的 IBGP 对等 体发布路由时,将下一跳修改为本地 实现负载均衡需要满足的条件 1. 原始下一跳不同 2. PV 值相同 3. LP 值相同 4. 均为聚合路由或均不是聚合路由 5. 起源码类型相同 6. MED 值相同 7. 均为 EBGP 路由或者 IBGP 路由 8. AS 内部 IGP 的开销值相同 9. AS_Path 属性完全相同,即内容和长度均相同。
[r4-bgp]load-balancing as-path-ignore ----配置路由在形成负载分担时,不需要比较AS_Path属
性。

BGP过滤

 

通过路由策略来过滤
[r2]ip ip-prefix aa permit 172.16.1.0 24
[r2]route-policy aa deny node 10
[r2-route-policy]if-match ip-prefix aa
[r2]route-policy aa permit node 20
[r2]bgp 200
[r2-bgp]peer 10.1.23.3 route-policy aa export前缀列表进行过滤
[r3]ip ip-prefix aa deny 172.16.2.0 24
[r3]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
[r3]bgp 300
[r3-bgp]peer 10.1.23.2 ip-prefix aa import使用filter-policy来过滤
[r2]acl 2000
[r2-acl-basic-2000]rule deny source 172.16.3.0 0
[r2-acl-basic-2000]rule permit
[r2-bgp]peer 10.1.12.1 filter-policy 2000 import

BGP的社团属性---Community

社团属性是由 32 位二进制组成,并拥有多种表达形式。   ·直接使用十进制标识   ·十六位二进制 : 十六位二进制 ------ 较为常用,前 16 位一般为本地 AS 号,后 16 位为自定义值 一条路由条目中,可以标识多个社团属性     0X00000000-----internet----- 如果通过全 0 的社团属性来抓取流量,则将抓取到所有的 BGP 流量。即 BGP的所有流量缺省情况下均属于 internet     0XFFFFFF02-----No-advertise----- 该属性代表本条 BGP 路由仅能供路由器本地使用,不能将该路由 通告给任何BGP 对等体     0XFFFFFF01-----no-export----- 该属性代表本条 BGP 路由不能被通告到本 AS 外部,也就是不能通告 给EBGP 对等体。     0XFFFFFF03----no-export-subconfed----- 该属性代表本条 BGP 路由不能被通告给本 AS 外部;若本路 由器位于联邦的成员AS 内部,则该路由也不能被传递给联邦 EBGP 对等体

 

尝试在R1身上打上社团属性标记
1、抓流量
[r1]ip ip-prefix aa permit 1.1.1.1 32
2、做策略
[r1]route-policy com permit node 10
[r1-route-policy]if-match ip-prefix aa 
[r1-route-policy]apply community no-advertise
3、调用
[r1-bgp]peer 12.0.0.2 route-policy com export
[r1-bgp]peer 12.0.0.2 advertise-community ----开启社团属性的传递性,该命令需要在所有设
备上开启
社团属性的应用场景

 

1、设定策略,定义社团属性标记
[r1]route-policy com-1 permit node 10
[r1-route-policy]apply community 100:111
[r1]route-policy com-2 permit node 10
[r1-route-policy]apply community 100:222
2、在发布路由时调用策略
[r1-bgp]network 172.16.1.0 24 route-policy com-1
[r1-bgp]network 172.16.2.0 24 route-policy com-1
[r1-bgp]network 172.16.3.0 24 route-policy com-2
[r1-bgp]network 172.16.4.0 24 route-policy com-2
3、开启社团属性传播功能
[r1-bgp]peer 10.1.12.2 advertise-community
[r2-bgp]peer 10.1.23.3 advertise-community
4、抓取流量
使用社团过滤器Community-Filter来抓取携带社团属性的路由
[r2]ip community-filter 1 permit 100:111
[r2]ip community-filter 2 permit 100:222
5、做策略
[r2]route-policy com deny node 10
[r2-route-policy]if-match community-filter 1
[r2]route-policy com permit node 15
[r2-route-policy]if-match community-filter 2
[r2-route-policy]apply community no-export additive ----additive参数是表示在之前的社团属
性后直接添加,否则会直接覆盖
[r2]route-policy com permit node 20
6、调用策略
[r2-bgp]peer 10.1.12.1 route-policy com import

as-path-filter-----AS路径过滤器

过滤掉从 AS 100 始发的所有 BGP 路由。 该过滤器与正则表达式共同搭配使用,可以完成从 AS-Path 属性中匹配 BGP 路由。
目标:
禁止R3将始发于AS 100的路由传递给R5
R4将始发于AS 200的路由在传递给R5时,修改开销值
1、抓取流量
[r3]ip as-path-filter 1 deny _100$
[r3]ip as-path-filter 1 permit .* -----该过滤器末尾隐含拒绝所有,不管写多少次的deny,最后都
要设置一次permit
2、调用
[r3-bgp]peer 10.1.35.5 as-path-filter 1 export
1、抓取流量
[r4]ip as-path-filter 1 permit ^200$
2、做策略
[r4]route-policy aa permit node 10
[r4-route-policy]if-match as-path-filter 1
[r4-route-policy]apply cost 10000
[r4]route-policy aa permit node 20
3、调用
[r4-bgp]peer 10.1.45.5 route-policy aa export
[r4]display ip as-path-filter ----查看过滤器详细配置

 注意:as-path-fliter过滤器抓取流量时,需要看的是本地的路由条目属性值

正则表达式 组成:     ·普通字符 ---- 所有的大写和小写字母、数字、标点符号     ·特殊字符 ---- 具备特殊意义

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部