IP : 边界网关协议(BGP)

BGP 路由器如何使用多出口标识符进行最佳路径选择

2016 年 10 月 27 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈


目录


简介

本文档介绍如何使用 bgp deterministic-med 命令,以及该命令如何影响基于多出口标识符 (MED) 的路径选择。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

MED 属性

MED 是一个可选的非传递性属性。MED 用于提示外部邻居,进入具有多个入口点的自治系统 (AS) 的首选路径是什么。MED 也称为路由器的外部量度。低 MED 值优先于高 MED 值。

本部分举例说明如何使用 MED 影响相邻 AS 采取的路由决策。

拓扑:

/image/gif/paws/13759/37_02.gif

示例

在此方案中,AS 65502 是拥有 AS 65501 的 ISP 的客户。R4 出于冗余目的连接到 ISP 端的两个不同的路由器上,并将两个网络通告给 ISP — 10.4.0.0/16 和 10.5.0.0/16。本部分显示了一些相关配置。

R4
!
version 12.3
!
hostname r4
!
ip cef
!
!
interface Loopback10
 ip address 10.4.0.1 255.255.0.0
!
interface Loopback11
 ip address 10.5.0.1 255.255.0.0
!
interface Serial0/0
 ip address 192.168.20.4 255.255.255.0
!
interface Serial1/0
 ip address 192.168.30.4 255.255.255.0
!
router bgp 65502
 no synchronization
 bgp log-neighbor-changes
 network 10.4.0.0 mask 255.255.0.0
 network 10.5.0.0 mask 255.255.0.0
 neighbor 192.168.20.2 remote-as 65501
 neighbor 192.168.30.3 remote-as 65501
 no auto-summary
!
ip classless
!
!
line con 0
 exec-timeout 0 0
line aux 0
line vty 0 4
 exec-timeout 0 0
 login
!
!
end

R2
!
version 12.3
!
hostname r2
!
ip cef
!
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface Ethernet0/0
 ip address 172.16.0.2 255.255.255.0
!
interface Serial1/0
 ip address 192.168.1.2 255.255.255.0
 serial restart-delay 0
!
interface Serial2/0
 ip address 192.168.20.2 255.255.255.0
 serial restart-delay 0
!
router ospf 1
 log-adjacency-changes
 redistribute connected
 passive-interface Serial2/0
 network 2.2.2.2 0.0.0.0 area 0
 network 172.16.0.2 0.0.0.0 area 0
 network 192.168.1.2 0.0.0.0 area 0
 network 192.168.20.2 0.0.0.0 area 0
!
router bgp 65501
 no synchronization
 bgp log-neighbor-changes
 neighbor 1.1.1.1 remote-as 65501
 neighbor 1.1.1.1 update-source Loopback0
 neighbor 3.3.3.3 remote-as 65501
 neighbor 3.3.3.3 update-source Loopback0
 neighbor 192.168.20.4 remote-as 65502
 no auto-summary
!
ip classless
!
!
line con 0
 exec-timeout 0 0
 transport preferred all
 transport output all
line aux 0
 transport preferred all
 transport output all
line vty 0 4
 exec-timeout 0 0
 login
 transport preferred all
 transport input all
 transport output all
!
end

R1 和 R3 的配置类似于 R2。R3 有一个与 R4 配对的 eBGP,还有一个与 R1 配对的 iBGP。

R1 有一个与 R2 配对的 iBGP,还有一个与 R3 配对的 iBGP。让我们看看 R1、R2 和 R3 的 BGP 表为 R4 通告的两个网络都显示了些什么:

r2# show ip bgp 10.4.0.1
BGP routing table entry for 10.4.0.0/16, version 7
Paths: (2 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  1.1.1.1 3.3.3.3 
  65502
    192.168.20.4 from 192.168.20.4 (4.4.4.4)
      Origin IGP, metric 0, localpref 100, valid, external, best
  65502
    192.168.30.4 (metric 74) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, internal

r2# show ip bgp 10.5.0.1
BGP routing table entry for 10.5.0.0/16, version 6
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  1.1.1.1 3.3.3.3 
  65502
    192.168.30.4 (metric 74) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, internal
  65502
    192.168.20.4 from 192.168.20.4 (4.4.4.4)
      Origin IGP, metric 0, localpref 100, valid, external, best

r3# show ip bgp 10.4.0.1
BGP routing table entry for 10.4.0.0/16, version 8
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  1.1.1.1 2.2.2.2 
  65502
    192.168.20.4 (metric 74) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal
  65502
    192.168.30.4 from 192.168.30.4 (4.4.4.4)
      Origin IGP, metric 0, localpref 100, valid, external, best

r3# show ip bgp 10.5.0.1
BGP routing table entry for 10.5.0.0/16, version 10
Paths: (2 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  1.1.1.1 2.2.2.2 
  65502
    192.168.30.4 from 192.168.30.4 (4.4.4.4)
      Origin IGP, metric 0, localpref 100, valid, external, best
  65502
    192.168.20.4 (metric 74) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal

r1# show ip bgp 10.4.0.1
BGP routing table entry for 10.4.0.0/16, version 11
Paths: (2 available, best #1, table Default-IP-Routing-Table)
  Not advertised to any peer
  65502
    192.168.20.4 (metric 128) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal, best
  65502
    192.168.30.4 (metric 128) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, internal

r1# show ip bgp 10.5.0.1
BGP routing table entry for 10.5.0.0/16, version 10
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Not advertised to any peer
  65502
    192.168.30.4 (metric 128) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, internal
  65502
    192.168.20.4 (metric 128) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, internal, best

正如我们所看到的,R2 和 R3 都将来自 R4 的外部路由选择作为最佳路径,这与 BGP 最佳路径选择算法所预测的一样。有关详细信息,请参阅“BGP 最佳路径选择算法”。

同样,R1 选择 R2 来访问两个网络,这也和 BGP 最佳路径规则一致:在其他条件相同的情况下,选择具有最小路由器 ID 的路径。因为 R2 路由器 ID 是 2.2.2.2,而 R3 路由器 ID 是 3.3.3.3,所以选择了 R2。在这个基本的配置中,默认情况下,AS 65502 中两个网络的所有流量都是从 R1 通过 R2 然后到达 R4。现在,假设 R4 要对从 AS 65501 收到的流量进行负载均衡处理。要在 R4 ISP 不进行任何修改的情况下达到此目的,您可以将 R4 配置为利用 MED 强制一个网络的流量经过一条路径,而另一个网络的流量则经过另一条路径。

以下是在我们应用了必要的配置之后 R4 的配置情况:

R4
!
version 12.3
!
hostname r4
!
ip cef
!
!
!
interface Loopback10
 ip address 10.4.0.1 255.255.0.0
!
interface Loopback11
 ip address 10.5.0.1 255.255.0.0
!
interface Serial0/0
 ip address 192.168.20.4 255.255.255.0
!
interface Serial1/0
 ip address 192.168.30.4 255.255.255.0
!
router bgp 65502
 no synchronization
 bgp log-neighbor-changes
 network 10.4.0.0 mask 255.255.0.0
 network 10.5.0.0 mask 255.255.0.0
 neighbor 192.168.20.2 remote-as 65501
 neighbor 192.168.20.2 route-map setMED-R2 out
 neighbor 192.168.30.3 remote-as 65501
 neighbor 192.168.30.3 route-map setMED-R3 out
 no auto-summary
!
ip classless
no ip http server
!
!
access-list 1 permit 10.4.0.0 0.0.255.255
access-list 2 permit 10.5.0.0 0.0.255.255
!
route-map setMED-R3 permit 10
 match ip address 1
 set metric 200
!
route-map setMED-R3 permit 20
 match ip address 2
 set metric 100

!--- The route-map MED-R3 is applying a MED of 200 to the 10.4.0.0/16 
!--- network and a MED of 100 to the 10.5.0.0/16 network.
!--- The route-map is being applied outbound towards R3.

!
route-map setMED-R2 permit 10
 match ip address 1
 set metric 100
!
route-map setMED-R2 permit 20
 match ip address 2
 set metric 200

!--- The route-map MED-R2 is applying a MED of 100 to the 10.4.0.0/16 
!--- network and a MED of 200 to the 10.5.0.0/16 network.
!--- The route-map is being applied outbound towards R2.

!
!
!
line con 0
 exec-timeout 0 0
line aux 0
line vty 0 4
 exec-timeout 0 0
 login
!
!
end

注意: 您需要使用 clear ip bgp * soft out 命令清除 BGP 会话,以便让这些配置起作用。

现在,R1 将经过 R2 的路由视为网络 10.4.0.0/16 的最佳路径,因为从 R2 收到的更新中的 MED 为 100,而 R3 通告的 MED 则为 200。同样,R1 使用 R3 和 R3 - R4 链路访问 10.5.0.0/16:

r1# show ip bgp 10.4.0.1
BGP routing table entry for 10.4.0.0/16, version 14
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0x800
  Not advertised to any peer
  65502
    192.168.20.4 (metric 128) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 100, localpref 100, valid, internal, best
r1#sh ip bgp 10.5.0.1
BGP routing table entry for 10.5.0.0/16, version 13
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Flag: 0x800
  Not advertised to any peer
  65502
    192.168.30.4 (metric 128) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 100, localpref 100, valid, internal, best

让我们看看 R2 的显示:

r2# show ip bgp 10.4.0.1
BGP routing table entry for 10.4.0.0/16, version 10
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  1.1.1.1 3.3.3.3 
  65502
    192.168.20.4 from 192.168.20.4 (4.4.4.4)
      Origin IGP, metric 100, localpref 100, valid, external, best


r2# show ip bgp 10.5.0.1
BGP routing table entry for 10.5.0.0/16, version 11
Paths: (2 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  192.168.20.4 
  65502
    192.168.30.4 (metric 74) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 100, localpref 100, valid, internal, best
  65502
    192.168.20.4 from 192.168.20.4 (4.4.4.4)
      Origin IGP, metric 200, localpref 100, valid, external

R2 针对 10.4.0.0/16 只显示一条路径的原因是,当 R3 注意到 R3 使用 R2 来访问 10.4.0.0/16 时,就撤消(发送具有不可达度量的更新)了 10.4.0.0/16 的更新(在所有可用的路径上运行 BGP 最佳路径选择命令之后):

r3# show ip bgp 10.4.0.0
BGP routing table entry for 10.4.0.0/16, version 20
Paths: (2 available, best #1, table Default-IP-Routing-Table)
  Advertised to non peer-group peers:
  192.168.30.4 
  65502
    192.168.20.4 (metric 74) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 100, localpref 100, valid, internal, best
  65502
    192.168.30.4 from 192.168.30.4 (4.4.4.4)
      Origin IGP, metric 200, localpref 100, valid, external

因为不必存储这些无用的信息,R2 由此可以节省一些内存。如果 R2 和 R4 之间的 BGP 会话失败,R2 会针对 10.4.0.0/16 向 R3 发送一个无法到达的更新。此更新将触发 R3 对 10.4.0.0/16 使用 R3 路由,通过 R4 向 R2 发送更新。R2 可以开始通过 R3 进行路由。

bgp deterministic-med 命令

启用bgp deterministic-med命令取消基于MED的最佳路径决策所有临时从属关系。它可以确保在从同一自治系统 (AS) 收到的所有路由间进行准确的 MED 比较。

如果您禁用 bgp deterministic-med,接收路由的顺序可能会影响基于 MED 的最佳路径决策。如果从多个 AS 或联盟的子 AS 处接收具有完全相同的路径长度、不同 MED 的相同路由,则可能会发生这种情况。

示例

例如,请考虑以下路由:

entry1: ASPATH 1, MED 100, internal, IGP metric to NEXT_HOP 10
entry2: ASPATH 2, MED 150, internal, IGP metric to NEXT_HOP 5
entry3: ASPATH 1, MED 200, external

接收到 BGP 路由的顺序是 entry3、entry2 和 entry1(entry3 是 BGP 表中最早的条目,而 entry1 则是最新的条目)。

禁用了 bgp deterministic-med 的 BGP 路由器

由于采用了较低的 IGP 度量来到达 NEXT_HOP,禁用了 bgp deterministic-med 的 BGP 路由器会选择 entry2 而不是 entry1(因为 entry1 和 entry2 来自两个不同的 AS,所以在这个决策中未使用 MED)。因为它是外部路由器,所以它随后会选择 entry3 而不是 entry2。但是,entry3 比 entry1 的 MED 更高。关于BGP路径选择标准的更多信息,参考BGP最佳路径选择算法

启用了 bgp deterministic-med 的 BGP 路由器

在这种情况下,来自同一 AS 的路由器被分为一组,并且每组中的最佳项会进行比较。在给定的示例中,有两个 AS:AS 1 和 AS 2。

Group 1:  entry1: ASPATH 1, MED 100, internal, IGP metric to NEXT_HOP 10
          entry3: ASPATH 1, MED 200, external
Group 2:  entry2: ASPATH 2, MED 150, internal, IGP metric to NEXT_HOP 5

在 Group 1 中,最佳路径是 entry1,因为它的 MED 更低(由于所有路径都来自同一 AS,因此在此决策中使用了 MED)。在 Group 2 中,只有一项 (entry2)。随后通过比较每一组的获胜项来确定最佳路径(因为每一组的获胜项都来自不同的 AS,所以默认情况下此次比较中不使用 MED,而启用 bgp always-compare-med 则会更改此默认行为)。现在,在比较 entry1(Group 1 的获胜项)和 entry2(Group 2 的获胜项)时,entry2 将会是获胜项,因为它的下一跳 IGP 度量值更高。

如果还启用了 bgp always-compare-med,则在比较 entry1(Group 1 的获胜项)和 entry2(Group 2 的获胜项)时,entry 1 将会是获胜项,因为它的 MED 更低。

Cisco 建议在所有新的网络部署中都启用 bgp deterministic-med。此外,如果启用了 bgp always-compare-med,则 BGP MED 决策始终是决定性的。

有关 bgp deterministic-med 命令和 bgp always-compare-med 命令的详细信息,请参阅 bgp deterministic-med 命令和 bgp always-compare-med 命令的区别


相关信息


Document ID: 13759