BGP的路由发布

BGP路由宣告

BGP的邻居关系和路由宣告是分开做的,不像OSPF在建立邻接关系的过程中就交换了LSA信息,BGP在建立了对等体关系之后,我们可以选择性将本地路由表中通过任意来源获取的路由条目,向BGP协议中进行宣告。宣告的方式有逐一宣告和批量宣告。
在这里插入图片描述
下面我将以该拓扑进行演示BGP如何发布路由,其中R1-R2使用直连建邻,R2-R3和R3-R4使用环回建邻,R4-R5也是用环回建邻。如果看不懂下面配置的可以去看看我之前的博客。

# R1配置
interface GigabitEthernet0/0/0
 ip address 12.1.1.1 255.255.255.0 
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.0 
#
bgp 1
 router-id 1.1.1.1
 peer 12.1.1.2 as-number 2 
#
# R2配置
interface GigabitEthernet0/0/0
 ip address 12.1.1.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 23.1.1.1 255.255.255.0 
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.0 
#
bgp 2
 router-id 2.2.2.2
 peer 3.3.3.3 as-number 2 
 peer 3.3.3.3 connect-interface LoopBack0
 peer 12.1.1.1 as-number 1 
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 2.2.2.2 0.0.0.0 
  network 23.1.1.1 0.0.0.0 
#
# R3配置
interface GigabitEthernet0/0/0
 ip address 23.1.1.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 34.1.1.1 255.255.255.0 
#
bgp 2
 router-id 3.3.3.3
 peer 2.2.2.2 as-number 2 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 4.4.4.4 as-number 2 
 peer 4.4.4.4 connect-interface LoopBack0
#
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 3.3.3.3 0.0.0.0 
  network 23.1.1.2 0.0.0.0 
  network 34.1.1.1 0.0.0.0 
#
# R4配置
interface GigabitEthernet0/0/0
 ip address 34.1.1.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 45.1.1.1 255.255.255.0 
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.0 
#
bgp 2
 router-id 4.4.4.4
 peer 3.3.3.3 as-number 2 
 peer 3.3.3.3 connect-interface LoopBack0
 peer 5.5.5.5 as-number 3 
 peer 5.5.5.5 ebgp-max-hop 2 
 peer 5.5.5.5 connect-interface LoopBack0
#
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 4.4.4.4 0.0.0.0 
  network 34.1.1.2 0.0.0.0 
#
ip route-static 5.5.5.0 255.255.255.0 45.1.1.2
#
# R5上配置
interface GigabitEthernet0/0/0
 ip address 45.1.1.2 255.255.255.0 
#
interface LoopBack0
 ip address 5.5.5.5 255.255.255.0 
#
bgp 3
 router-id 5.5.5.5
 peer 4.4.4.4 as-number 2 
 peer 4.4.4.4 ebgp-max-hop 2 
 peer 4.4.4.4 connect-interface LoopBack0
#
ip route-static 4.4.4.0 255.255.255.0 45.1.1.1
#

Network–逐一宣告

  • 同OSPF和RIP相同使用network命令宣告路由,但BGP和OSPF和RIP不同的是BGP可以宣告自己路由表上任意一条路由,需要注意的是:BGP宣告的条目必须同本地路由表中的记录完全一致
[r1]bgp 1  # 进入BGP进程
[r1-bgp]network 1.1.1.0 24 --- 宣告r1的环回接口
# 如果宣告本地路由表中不存在的路由则会出现以下情况
[r1-bgp]network 10.0.0.0 8
Info: The network does not exist.
  • R1上宣告环回后,生成路由信息会出现在本地BGP表中,查看本地BGP表:
[r1]display bgp routing-table  # 查看本地BGP表

 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.0/24         0.0.0.0         0                     0      i
  • 本地BGP表里存放着本设备所宣告的和所有从其他对等体出收到的路由信息,路由信息主要包括目标网段和掩码,还有各种属性,下面只展示了一部分属性
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.0/24         0.0.0.0         0                     0      i

Network目标网段和掩码
nexthop下一跳IP地址,在EBGP关系间发送路由信息时,谁发给我,nexthop就是谁,由于1.1.1.0/24的路由信息是本地宣告,所以为0.0.0.0
MED:本地宣告到BGP中的路由会携带原协议的开销值,通过MED属性携带。
LocPrf、PreVal:这里先不用了解,后续我会出一篇关于BGP属性的博客。
Path:即AS-PATH属性,用于EBGP水平分割,记录该路由信息所经过的AS编号。AS号的添加,在EBGP邻居间发送路由时进行的,这里由于本地宣告,并没有显示AS号。
Ogn:起源属性:以什么方式进入BGP的,1.BGP宣告本地路由表中路由:i,2.本地路由表中IGP路由重发布到BGP协议:,3.将本地路由表中EGP路由重发布到BGP协议:e,这里1.1.1.0/24是本地宣告,所以标:i
*>:该路由的状态码
*:代表可用, BGP设备每收到一条路由信息,都会通过路由表查询检查其下一跳属性的可达性,如果下一跳的地址是可达的,则代表该路由可用,不可达则不可用,不可用的路由无法加表。
’>’: 代表优选,当收到多条到达相同网段的路由信息时,BGP将会在其中根据路由属性选择最好的最为优选路由,只有优选的路由才会被加载到路由表中,并且传递给其他BGP对等体。不优选的则不传递,不加表

  • R1宣告后,会将该路由信息传给它所有的对等体,在R2上查看BGP表,可以看出,与R1的BGP表比较,nexthop和path属性都发生改变。
[r2]display bgp routing-table 

 BGP Local router ID is 2.2.2.2 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.0/24         12.1.1.1        0                     0      1i

  • R2收到路由信息也会发给它其他所有的对等体,由于BGP的AS-BY-AS特性,路由信息在IBGP间传递时,属性并不会发生改变,查看R3的BGP表发现1.1.10/24路由的状态码只有一个:i,说明它不可用,这是为什么?因为该路由信息的下一跳对于R3来说不可达,12.1.1.1属于R2的直连网段,R2并没有将它宣告在IGP中,所以该路由的状态为不可用,下一跳不可达则不可用。
<r3>display bgp routing-table 

 BGP Local router ID is 3.3.3.3 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

   i  1.1.1.0/24         12.1.1.1        0          100        0      1i

状态码为 i ,代表该路由信息是从IBGP对等体处学来的路由。

  • 虽然路径属性默认在AS内部传递时,不会自动修改,但可以手工修改。
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 next-hop-local --- 配置该命令后,本地会将发往 3.3.3.3对等体的路由的下一跳修改为本地
  • 再次查看R3的BGP表,状态码已改为 *>,可达且最优
<r3>display bgp routing-table 

 BGP Local router ID is 3.3.3.3 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.0/24         2.2.2.2         0          100        0      1i
  • 查看R4的BGP表时发现R4没有收到1.1.1.0/24这条路由,这是因为IBGP水平分割,从IBGP对等体处学到的路由不能传递给其他IBGP对等体,所以R3不能将从R2学到的路由信息发送给R1,这里我们让R2和R4间也建立IBGP关系,使R2直接将路由信息发送给R4。
[r2]bgp 2
[r2-bgp]peer 4.4.4.4 as-number 2
[r2-bgp]peer 4.4.4.4 connect-interface l	
[r2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r2-bgp]peer 4.4.4.4 next-hop-local
[r4]bgp 2	
[r4-bgp]peer 2.2.2.2 as-number 2		
[r4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[r4-bgp]peer 2.2.2.2 next-hop-local --- 由于R4也存在EBGP对等体,所以R4需要将从EBGP对等体处学到的路由信息的下一跳修改为本地后再发送给R2。
  • 上述命令配置完成后,R4就可以收到R2传来的路由信息了,R4也会将该路由信息发给R5,在R5上查看路由表:
<r5>display ip routing-table protocol bgp
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : BGP
         Destinations : 1        Routes : 1        

BGP routing table status : <Active>
         Destinations : 1        Routes : 1

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.0/24  EBGP    255  0          RD   4.4.4.4         GigabitEthernet
0/0/0

BGP routing table status : <Inactive>
         Destinations : 0        Routes : 0
  • 当一台路由器收到来自EBGP对等体发送的路由信息正常加表后,该路由的协议类型为:EBGP,优先级:255
  • 当一台路由器收到来自IBGP对等体发送的路由信息正常加表后,该路由的协议类型为:IBGP,优先级:255

BGP的路由悖论

  • 将R5的环回宣告到BGP中,查看R4的BGP表
[r5]bgp 3
[r5-bgp]network 5.5.5.0 24
[r4]display bgp routing-table

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.0/24         2.2.2.2         0          100        0      1i
      5.5.5.0/24         5.5.5.5         0                     0      3i

  • 发现R4有R5的环回的路由信息,但该路由不可用,这是为什么?下一跳可达就应该是可用的,这是因为这里产生产生了一个逻辑悖论,R4是通过5.5.5.0/24的静态路由和R5建立对等体关系的,而此时R5又发送了一条5.5.5.0/24网段的路由信息给R4,这就是我和你建邻是为了学到可以和你建邻的路由
  • 由于逻辑悖论,该路由不可用也就不能传递,但虽然R4上有去往5.5.5.0/24网段的静态,但R4的其他邻居没有呀,所以需要将该路由变为可用且优,产生逻辑悖论的原因是本地用来建邻的静态路由和R5传来的路由网段是相同的,所以我们可用修改本地静态路由,将之修改为去往5.5.5.5/32的静态主机路由。
[r4]undo ip route-static 5.5.5.0 24 45.1.1.2
[r4]ip route-static 5.5.5.5 32 45.1.1.2
  • 再次查看R4的路由表,发现可用且优
[r4]display bgp routing-table 

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.0/24         2.2.2.2         0          100        0      1i
 *>   5.5.5.0/24         5.5.5.5         0                     0      3i

BGP的宣告问题

若通过BGP协议传递的路由条目与本地通过其他协议学习到的条目目标一致,将出现:

  • 如果该路由同时作为与其他BGP邻居建立邻居关系时的底层路由,那么这条BGP路由将不优,不能传递也不能加表
  • 该路由不作为建立其他BGP邻居的路由,将在本地不加表,但可以传递,属于优的路由;

重发布 – 批量宣告

  • 当通告的路由数量较大时,使用network逐条发布效率较低,则可以通过重发布的方法来批量发布路由
[r2]bgp 2
[r2-bgp]import-route ospf 1
  • 查看R1的BGP表,R1学到了AS2内的所有路由。
<r1>display bgp routing-table 

 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 6
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.0/24         0.0.0.0         0                     0      i
 *>   2.2.2.0/24         12.1.1.2        0                     0      2?
 *>   3.3.3.3/32         12.1.1.2        1                     0      2?
 *>   4.4.4.4/32         12.1.1.2        2                     0      2?
 *>   23.1.1.0/24        12.1.1.2        0                     0      2?
 *>   34.1.1.0/24        12.1.1.2        2                     0      2?

BGP的MED

  • 在BGP协议中进行宣告时,是宣告本地路由表中任意路由不关注这些条目的产生方式默认将携带本地到这些路由的cost值到BGP的路由条目中去;若本地将本地宣告的BGP路由传递给本地的EBGP邻居,将携带这些cost,便于本地的EBGP邻居所在AS内部设备选路,当然这些路由在进入其他AS时不会修改度量;
  • 若本地通过IBGP邻居学习到了BGP路由,优且存在cost值,在本地将这些路由传递给本地的EBGP邻居时,将cost值归0,因为这些度量不是本地产生的。

BGP路由聚合

  • 由于BGP传递的路由条目数量巨大,所以为了减少路由条目数,可用使用汇总把一组路由汇聚为一个单个的路由发送,那什么是聚合呢?如果多条路由合并成一条时,如果这个合并的路由是一条超网路由,则该合并我们成为路由聚合,如果不是超网路由,则成为路由汇总。
  • 在上述拓扑的R1上添加两个环回,分别是172.16.0.1/24、172.16.1.1/24,对此进行聚合演示,先取消之前所有在BGP宣告和重发布到BGP中的路由,方便观察实验结果。
    在这里插入图片描述

自动聚合

  • 自动聚合只能对重发布在BGP中的路由生效,所以我这里为了将新添的环回重发布到BGP中,将R1的直连重发布到BGP中,但我并不想将R1和R2的直连网段和R1的环回同时宣告,所以我首先做个路由策略在重发布时调用。
# 抓取172.16.0.0/24和172.16.1.0/24的路由信息
[r1]ip ip-prefix aa permit 172.16.0.0 23 greater-equal 24 less-equal 24 
# 创建route-policy,并编写策略
[r1]route-policy aa permit node 10
Info: New Sequence of this List.
[r1-route-policy]if-match ip-prefix aa
# 进入BGP,在将直连重发布到BGP中时调用策略
[r1-route-policy]bgp 1
[r1-bgp]import-route direct route-policy aa
  • R1重发布后在R2上查看BGP表,只收到了R1上的172.16.0.0/24和172.16.1.0/24
<r2>display bgp routing-table

 BGP Local router ID is 2.2.2.2 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.0.0/24      12.1.1.1        0                     0      1?
 *>   172.16.1.0/24      12.1.1.1        0                     0      1?
  • 华为设备中默认关闭了自动汇总,需要我们手动开启
[r1-bgp]summary automatic
Info: Automatic summarization is valid only for the routesimported through the import-route command.
  • 此时再查看R2的BGP表,R2只收到了聚合后的路由,但网段为主类网段。
<r2>display bgp routing-table

 BGP Local router ID is 2.2.2.2 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 1
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.0.0         12.1.1.1                              0      1?
  • 查看R1的BGP表,发现本地BGP表依然存放着明细路由,但状态码前有一个s,s代表抑制,一旦路由前面的状态码中添加S标记,则代表该路由被抑制,将不再加标和传递。自动聚合完成后会自动生成一条指向汇总的空接口路由进行防环
[r1]display bgp routing-table 

 BGP Local router ID is 1.1.1.1 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.0.0         127.0.0.1                             0      ?
 s>   172.16.0.0/24      0.0.0.0         0                     0      ?
 s>   172.16.1.0/24      0.0.0.0         0                     0      ?

手动聚合

  • 由于自动聚合的问题: 1,只能聚合到主类,不可控导致产生路由黑洞;2,只能对重发布的路由生效。所以我们更多的是采用手动聚合。在R1上关闭自动汇总,使用手动聚合。
[r1]bgp 1
[r1-bgp]undo summary automatic  # 关闭自动汇总
[r1-bgp]aggregate 172.16.0.0 23 # aggreate 聚合网段 掩码 本地路由表中存在一条聚合网段内的明细网段,该命令就会发出聚合路由信息
  • 查看R2的BGP表,发现R2不仅收到了聚合后的路由信息,同时也受到了明细路由信息。这是由于手工聚合没有抑制明细路由,导致传递的路由条目没有减少,反而增加。
<r2>display bgp routing-table

 BGP Local router ID is 2.2.2.2 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.0.0/23      12.1.1.1                              0      1?
 *>   172.16.0.0/24      12.1.1.1        0                     0      1?
 *>   172.16.1.0/24      12.1.1.1        0                     0      1?
[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed # 在聚合路由的同时抑制所有明细路由
  • 手动聚合可用针对本地BGP表中的是所有路由,无论来源,接下来我在原拓扑中新添一个AS,拓扑如下,R6宣告172.16.1.0/24环回,R1宣告172.16.0.0/24环回。
    在这里插入图片描述
  • 在R4上查看BGP表,可用看出R4学到了R1和R6宣告的路由信息,且Path属性携带着它们的各自的AS编号
[r4]display bgp routing-table 

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  172.16.0.0/24      2.2.2.2         0          100        0      1?
 *>i  172.16.1.0/24      2.2.2.2         0          100        0      4i

  • 在R4上配置手工聚合,将收到两条BGP路由进行聚合,查看本地BGP表,发现R4抑制了明细路由,并向其他对等体发送聚合路由信息,仔细观察发现聚合后的网段的Path属性发生改变,这是因为聚合也相当于本地宣告了一条路由,但Path属性是用来防环的,聚合后的路由信息又可以传回原AS,有可能导致环路的产生。
[r4-bgp]display bgp routing-table 

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete


 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.0.0/23      127.0.0.1                               0      ?
 s>i  172.16.0.0/24      2.2.2.2         0          100        0      1?
 s>i  172.16.1.0/24      2.2.2.2         0          100        0      4i

  • 因为聚合后的路由存在属性丢失的情况,所以,这样的汇总路由需要格外关注。为此,BGP专门设计了两个聚合相关的属性:ATOMIC_AGGREGATE、AGGRGATOR

ATOMIC_AGGREGATE ---- 纯粹的预警属性,聚合路由将会携带(只有将所有明细路由全部抑制的汇总路由才会携带),意图是提醒该路由为聚合路由,可能存在属性丢失问题。
AGGRGATOR ---- 将会记录执行汇总路由器所在的AS号及RID

  • 我们可以用通过激活AS_SET关键字,使汇总路由携带明细路由的AS_PATH属性。激活后可用看到汇总路由的path为{1 4},这代表着明细路由是来自AS:1和AS:2的,这样明细路由的所有原AS就不会接收这条聚合路由信息
[r4-bgp]aggregate 172.16.0.0 23 detail-suppressed as-set  # 在聚合命令后加一个as-set,激活AS_SET关键字
[r4-bgp]display bgp routing-table 
 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.0.0/23      127.0.0.1                             0      {1 4}?
 s>i  172.16.0.0/24      2.2.2.2         0          100        0      1?
 s>i  172.16.1.0/24      2.2.2.2         0          100        0      4i
[r4]display bgp routing-table 172.16.0.0  # 可以查看一条BGP路由的详情信息,包括所有属性

抑制策略

手工聚合不能自动抑制明细路由,需要我们手工配置,但是,因为BGP协议的特殊性,导致在一些环境下,往往不能将所有明细路由全部抑制,所以,我们在做BGP的聚合时,往往仅抑制一部分路由信息,而实现这个效果,需要用到suppress - Policy

# 1,先抓取需要抑制的流量
[r4]ip ip-prefix bb permit 172.16.0.0 24
# 2,使用路由策略匹配流量
[r4]route-policy bb permit node 10
Info: New Sequence of this List.
[r4-route-policy]if-match ip-prefix bb
# 使用抑制策略进行调用
[r4-bgp]aggregate 172.16.0.0 22 suppress-policy bb
  • 实现抑制策略的其他方法
# 使用路由策略在邻居间直接进行收发路由的管理
[r2]ip ip-prefix qq permit 172.16.0.0 24
[r2]route-policy qq deny  node 10
[r2-route-policy]if-match ip-prefix qq
[r2-route-policy]q
[r2]route-policy qq permit  node 20
[r2]bgp 2 
[r2-bgp]aggregate 3.3.0.0 21
[r2-bgp]peer 12.1.1.1 route-policy qq export
# 直接使用前缀列表来实现方法的功能
[r2]ip ip-prefix ww deny 172.16.0.0 24
[r2]ip ip-prefix ww permit 0.0.0.0 0 less-equal 32
[r2]bgp 2 
[r2-bgp]pe 12.1.1.1 ip-prefix ww export
  • 查看R4的BGP表,这里没有配置激活as-set,所以汇总路由的path属性为空。可以看出172.16.0.0/24的明细路由被抑制,而172.16.1.0/24的明细路由没有被抑制。
[r4-bgp]display bgp routing-table 

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.0.0/23      127.0.0.1                             0      ?
 s>i  172.16.0.0/24      2.2.2.2         0          100        0      1?
 *>i  172.16.1.0/24      2.2.2.2         0          100        0      4i

其他方式

  • 利用了BGP的宣告的特点,本地路由表中任意路由,不关注来源均可以宣告到BGP中;不用逐一宣告明细路由,先本地手工静态一条指向汇总网段的空接口防环路由然后再将其宣告到BGP协议中来;从IGP表中宣告到BGP协议中的条目,仅携带目标网络号和度量值;
[r4]ip route-static 172.16.0.0 23 null 0
[r4]bgp 2
[r4-bgp]network 172.16.0.0 23
[r4-bgp]display bgp routing-table 

 BGP Local router ID is 4.4.4.4 
 Status codes: * - valid, > - best, d - damped,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete

 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.0.0/23      0.0.0.0         0                     0      i
 *>i  172.16.0.0/24      2.2.2.2         0          100        0      1?
 *>i  172.16.1.0/24      2.2.2.2         0          100        0      4i

  • 聚合的缺点是将多个网络合成一个,导致访问整个聚合网段时,仅存在唯一的路径;若在多路径建邻的前提下,将无法精确的选路;故在大型的多链路的网络中为了更好控制选路,必然在传递聚合条目的同时,再在最佳路径处传递部分的明细路由
  • 若需要在传递聚合条目的同时,传递部分明细路由,只需要在宣告了空接口路由后,逐一宣告需要的明细路由即可。
  • 该做法的缺点是不能携带原有明细路由的cost值,因为宣告的是本地路由表中人为添加那条静态空接口路由。
  • 9
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值