计算机网络-BGP路由及路由表

今天继续学习下BGP的路由生成和路由表的知识。

一、BGP路由的生成

还记得OSPF是怎样通告路由的吗?通过进入ospf进程,进入区域然后通告自身直连的路由,然后邻居通过SPF算法计算出路由。但是不同于IGP路由协议,BGP自身并不会发现并计算产生路由,BGP将IGP路由表中的路由注入到BGP路由表中,并通过Update报文传递给BGP对等体。

BGP路由注入
BGP路由注入

有如下几种方式产生BGP路由:

  • network
  • import-route
  • 路由聚合

二、Network注入路由

Network方式注入的路由必须是已经存在于IP路由表中的路由条目,否则不会被成功注入到BGP路由表中。

IGP路由学习
IGP路由学习
  1. AS200内的BGP路由器已经通过IGP协议OSPF学习到了两条路由:10.1.0.0/24和10.2.0.0/24,在BGP进程内通过network命令注入这两条路由,这两条路由将会出现在本地的BGP路由表中。

BGP路由通告 2. AS200内的BGP路由器通过Update报文将路由传递给AS300内的BGP路由器。 3. AS300内的BGP路由器收到路由后,将这两条路由加入到本地的BGP路由表中。

示例
示例
# AR3 配置
interface GigabitEthernet0/0/1
 ip address 10.1.13.3 255.255.255.0 
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255 
#
ospf 1 
 area 0.0.0.0 
  network 1.1.1.1 0.0.0.0 
  network 10.1.13.0 0.0.0.255 

# AR1配置
interface GigabitEthernet0/0/0
 ip address 10.1.12.1 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.1.13.1 255.255.255.0 
#
interface LoopBack0
 ip address 8.8.8.8 255.255.255.255 
#
bgp 100
 router-id 1.1.1.1
 peer 10.1.12.2 as-number 200 
 #
 ipv4-family unicast
  undo synchronization
  network 1.1.1.1 255.255.255.255   # 这是通过OSPF已经学习到1.1.1.1/32,就算不是自身的路由只要存在路由表都可以network通告给BGP邻居
  peer 10.1.12.2 enable
#
ospf 1 
 area 0.0.0.0 
  network 8.8.8.8 0.0.0.0 
  network 10.1.13.0 0.0.0.255
  

#AR2查看BGP路由表
<AR2>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.1/32         10.1.12.1       1                     0      100i

简单理解BGP不会通过协议学习到路由,只会将存在路由表的路由通过network、import、路由聚合的方式通告给邻居,只要路由表存在的路由都可以。

三、import-route方式注入路由

Network方式注入路由虽然是精确注入,但是只能一条条配置逐条注入IP路由表中的路由,如果注入的路由条目很多配置命令将会非常复杂,为此可以使用import-route方式,将各种路由注入到BGP路由表中。

  • 直连路由
  • 静态路由
  • OSPF路由
  • IS-IS路由
  • ...
import-route方式
import-route方式
# 还是以上面示例图为例,AR1的lookback口8.8.8.8是直连路由,可以直接将所有直连路由注入BGP路由
[AR1]dis ip routing-table 8.8.8.8
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        8.8.8.8/32  Direct  0    0           D   127.0.0.1       LoopBack0
[AR1]
bgp 100
 router-id 1.1.1.1
 peer 10.1.12.2 as-number 200 
 #
 ipv4-family unicast
  undo synchronization
  network 1.1.1.1 255.255.255.255 
  network 8.8.8.8 255.255.255.255 
  import-route direct
  peer 10.1.12.2 enable

# AR2查看路由表,会发现所有AR1直连的路由都通告出去了,可以通过路由策略进行过滤,前面已经学过了
<AR2>dis 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: 4
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.1/32         10.1.12.1       1                     0      100i
 *>   8.8.8.8/32         10.1.12.1       0                     0      100i
      10.1.12.0/24       10.1.12.1       0                     0      100?
 *>   10.1.13.0/24       10.1.12.1       0                     0      100?

import-route支持批量将一整个类型的IGP路由进行注入BGP路由表。

四、路由聚合

与众多IGP协议相同,BGP同样支持路由的手工聚合,在BGP配置视图中使用aggregate命令可以执行BGP路由手工聚合,在BGP已经学习到相应的明细路由情况下,设备会向BGP注入指定的聚合路由。

路由聚合
路由聚合

执行聚合之后,在本地的BGP路由表中除了原本的明细路由条目之外,还会多出一条聚合的路由条目。

如果在执行聚合时指定了detail-suppressed,则BGP只会向对等体通告聚合后的路由,而不通告聚合前的明细路由。

在聚合时配置了抑制明细路由的参数,R3上查看路由表,将只能看到BGP路由:10.1.0.0/22,无法看到聚合前的明细路由。

路由聚合可以减少路由条目,减少设备性能消耗,在BGP进程通过aggregate进行聚合,可以通过detail-suppressed控制是否保留明细路由。

五、BGP路由表

在设备上通过display bgp routing-table查看BGP路由表:

  • Network:路由的目的网络地址以及网络掩码
  • NextHop:下一跳地址
  • Path,自治系统路径,表示到达该网络所经过的自治系统序列,从右到左
  • MED,Metric:到该网络的路由成本,数值越小表示路由越优。
  • Ogn,路由的起源类型,如IGP(内部网关协议)、EGP(外部网关协议)、Incomplete(不完整)。
BGP路由表
BGP路由表
  • 列出本设备发现的所有BGP路由,如果到达同一个目的地存在多条路由,则将路由都进行罗列,但每个目的地只会优选一条路由。
    • 代表有效路由,>代表最优路由,如果是最优有效路由,前面带*>号。

如果想要查看某条路由更加详细的信息,可以通过display bgp routing-table ipv4-address { mask | mask-length} 查看,该命令会将匹配的BGP路由信息详细展示。

# 通过查看具体路由信息,
<AR2>dis bgp routing-table 8.8.8.8

 BGP local router ID : 2.2.2.2          # 当前路由器ID
 Local AS number : 200                  # 本地AS号
 Paths:   1 available, 1 best, 1 select
 BGP routing table entry information of 8.8.8.8/32:
 From: 10.1.12.1 (1.1.1.1)              # 从哪个路由器学习到
 Route Duration: 00h09m43s  
 Direct Out-interface: GigabitEthernet0/0/0 # 下一跳出接口
 Original nexthop: 10.1.12.1                # 来源下一跳
 Qos information : 0x0
 AS-path 100, origin igp, MED 0, pref-val 0, valid, external, best, select, acti
ve, pre 255 # 具体的BGP选路属性,后面我们会学到很多选路规则
 Not advertised to any peer yet

总结:BGP不同于IGP路由协议学习到路由条目,而是通过network、import-route、路由聚合等将IGP路由表(直连、静态、OSPF、IS-IS等)通过update报文通告给BGP邻居,进行BGP通告的路由只要存在本地路由表即可。通过display bgp routing-table查看BGP的路由表,如果是最优有效路由,前面带*>号。

如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子 不喜欢热闹的孩子

本文由 mdnice 多平台发布

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不喜欢热闹的孩子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值