简介
本文档介绍如何配置Cisco IOS®中边界网关协议(BGP)携带的累积内部网关协议(AIGP)度量属性。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
背景信息
本部分概述AIGP度量属性以及有关其使用的一些重要注意事项。
AIGP指标属性概述
公司可能希望实施网络设计,其中网络使用多个内部网关协议(IGP)进行拆分,每个协议都使用一个BGP自治系统。这是出于可扩展性原因,即网络对于一个IGP而言变得太大。当BGP传输IGP传输的某些路由时,BGP有助于扩展。使用AIGP的解决方案适用于具有不同BGP自治系统且处于一个管理控制下的网络。
示例如下:
端到端服务是多协议标签交换(MPLS)VPN。当网络中存在大量提供商边缘(PE)路由器时,IGP必须承载太多路由。解决方案是让BGP传输PE路由器的环回接口。用于确保MPLS标签交换路径(LSP)不会端到端中断的解决方案是使用BGP IPv4 +标签。这意味着PE路由器和边界路由器之间使用RFC 3107,边界路由器连接不同的IGP域。
此解决方案的问题在于边界路由器或PE路由器无法再根据最短度量端到端确定最佳路径,因为整个网络中不再有一个IGP运行。此问题的解决方案是新的BGP属性,称为“累计IGP度量属性”或AIGP度量属性。此BGP非传递属性承载路径的累计度量,以便BGP发言者接收这些路径的端到端度量的知识。
在转发路由之前,BGP发言者必须将路由添加到AIGP度量属性中的当前值中的下一跳度量。
注意:在比较本地优先级后,立即执行一条路由的路径比较。有关BGP最佳路径选择算法的详细信息,请参阅BGP最佳路径选择算法Cisco文档。
此解决方案类似于将多出口鉴别器(MED)设置为IGP度量的解决方案。但是,在本例中,步骤6(最低MED)决定最佳路径。此步骤在步骤4之后进行,其中最短路径决定最佳路径。通常在到达步骤6之前已找到最佳路径。使用AIGP解决方案时,会更改正常BGP决策,以便在步骤3后检查AIGP,以确定路由是否在本地通告。如果与BGP发言者的邻居自治系统(AS)不同,则意味着必须启用始终比较-med值。
AIGP度量属性在RFC 7311中指定,RFC 7311是BGP的累积IGP度量属性。为了在成本社区中传送AIGP度量值,使用draft-retana-idr-aigp-cost-community(使用成本社区来传送累积的IGP度量)中指定的过程。
注意:归属的BGP AIGP度量在不同路由域通过BGP互连的网络中提供最佳路由。
对BGP最佳路径选择算法的更改
使用AIGP时,对BGP最佳路径选择算法进行以下更改:
- 修改BGP最佳路径选择算法,以便在步骤3(本地通告路由)之后以及验证下一跳有效后立即比较AIGP。
- 当路由器根据AIGP路径考虑AIGP路径时,AIGP度量的值将添加到指向下一跳的度量中。
- 当路由器根据非AIGP路径考虑AIGP路径时,BGP默认首选具有AIGP属性的路径。
- 当将最低IGP度量与BGP下一跳进行比较时,会考虑AIGP开销。
- 如果通往下一跳的路由具有AIGP度量,则该度量会添加到通往下一跳的IGP度量。此总和是路由的新IGP度量(内部开销)。当BGP路由递归到另一BGP路由时,会发生这种情况。
重要注意事项
如果网络中的IGP属于不同类型(开放最短路径优先(OSPF)、中间系统到中间系统(IS-IS)、增强型内部网关路由协议(EIGRP)),则使用AIGP属性所产生的度量不太可能产生一致或明智的结果。如果不同域中使用相同的IGP,则必须使用相同的度量设置以确保结果一致。
为了使边界路由器或PE路由器能够在多条路径(基于AIGP派生的度量)之间做出决定,它们必须首先接收多条路径。因此,可能需要您启用其他路径(ADD-Path)或通告最佳外部BGP功能。
为AIGP启用的BGP对等体和未启用的BGP对等体将放入单独的更新组。此外,在成本社区中为AIGP启用的BGP对等体将放置到单独的更新组中。
传统路由器解决方案
如果网络中有路由器不支持AIGP(传统路由器),则有两种可能的解决方案:
- 路由器可以将AIGP转换为开销社区,将其附加到路由,并将路由通告给传统路由器。
- 路由器可以将AIGP转换为MED,将其附加到路由,并将路由通告给传统路由器。
配置
本节介绍如何配置AIGP度量属性。
启用AIGP属性的传输
必须为与的内部BGP(iBGP)和外部BGP(eBGP)会话明确启用AIGP neighbor ip-address aigp
命令。
以下是如何验证是否为BGP对等体启用AIGP:
P3#show bgp ipv4 unicast neighbors 10.1.9.2 | in AIGP
For address family: IPv4 Unicast
AIGP is enabled
发起AIGP
AIGP可以设置为IGP度量或值。此外,AIGP仅可通过 route-map
。当AIGP的发起方看到IGP度量发生变化时,它应发送新的BGP更新,其中包含受影响路由的新AIGP值。
AIGP度量可自动设置为IGP度量或任意的32位值:
P1(config-route-map)#set aigp-metric ?
<0-4294967295> manual value
igp-metric metric value from rib
此示例显示如何将AIGP度量设置为IGP路由的度量:
ip prefix-list loopback seq 5 permit 10.100.1.1/32
!
route-map redistribute-loopback permit 10
match ip address prefix-list loopback
set aigp-metric igp-metric
禁用AIGP断线的Knob
如果启用此按钮,则BGP不使用AIGP中断,除非两条路径都具有AIGP度量属性。这意味着,当一条路径没有AIGP属性时,在两条路径之间的最佳路径选择过程中不评估AIGP属性。
示例如下:
router bgp 65000
bgp bestpath aigp ignore
传统路由器解决方案
如果路由器PE2没有支持AIGP度量属性的软件(它是传统路由器),则可以使用两个解决方案。
AIGP到成本社区的转换
配置路由器P3和P4,以便将IGP开销转换为路由器可通告给传统路由器的开销社区:
P3#show run | beg router bgp
router bgp 65000
address-family ipv4
neighbor 10.1.9.2 activate
neighbor 10.1.9.2 send-community both
neighbor 10.1.9.2 aigp send cost-community 100 poi igp-cost transitive
P4#show run | beg router bgp
router bgp 65000
address-family ipv4
neighbor 10.1.10.2 activate
neighbor 10.1.10.2 send-community both
neighbor 10.1.10.2 aigp send cost-community 100 poi igp-cost transitive
您必须允许发送的路由器发送扩展社区。这意味着您必须指定 send-community extended
或 send-community both
attributes(neighbor x.x.x.x send-community
)。
示例如下:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 6
Paths: (2 available, best #1, table default)
Advertised to update-groups:
6
Refresh Epoch 2
65000 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, localpref 100, valid, external, best
Extended Community: Cost(transitive):igp:100:6
mpls labels in/out 17/16
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 15
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, localpref 100, valid, external
Extended Community: Cost(transitive):igp:100:11
mpls labels in/out 17/30
rx pathid: 0, tx pathid: 0
如图所示,路由器PE2选择开销最低的路径(100:6而100:11)作为最佳路径。
AIGP到MED的转换
配置路由器P3和P4,以将IGP开销转换为路由器可通告给传统路由器的MED。
以下是路由器P3的配置:
router bgp 65000
address-family ipv4
neighbor 10.1.9.2 activate
neighbor 10.1.9.2 send-community both
neighbor 10.1.9.2 aigp send med
以下是路由器P4的配置:
router bgp 65000
address-family ipv4
neighbor 10.1.10.2 activate
neighbor 10.1.10.2 send-community both
neighbor 10.1.10.2 aigp send med
验证
输出 debug bgp ipv4 unicast updates in
命令显示AIGP度量属性的用法:
PE2#
BGP(0): 10.1.9.4 rcvd UPDATE w/ attr: nexthop 10.1.9.4, origin ?, aigp-metric 22,
merged path 65000 65001, AS_PATH
当您查看本文档部分提供的映像时,您可以看到网络AS 6500中的所有链路的OSPF开销为10,路由器P1和P4之间以及P2和P3之间的链路的OSPF开销为100,路由器P3和P1的开销为5。
如路由器P3所示,10.100.1.1/32的路由如下:
P3#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 9
Paths: (2 available, best #1, table default)
Additional-path-install
Path advertised to update-groups:
5
Refresh Epoch 5
65001
10.100.1.3 (metric 6) from 10.100.1.7 (10.100.1.7)
Origin incomplete, metric 0, localpref 100, valid, internal, best
Originator: 10.100.1.3, Cluster list: 10.100.1.7
mpls labels in/out 29/16
rx pathid: 0x0, tx pathid: 0x0
Path not advertised to any peer
Refresh Epoch 5
65001
10.100.1.5 (metric 21) from 10.100.1.7 (10.100.1.7)
Origin incomplete, metric 0, localpref 100, valid, internal, backup/repair, all
Originator: 10.100.1.5, Cluster list: 10.100.1.7
mpls labels in/out 29/16
rx pathid: 0x1, tx pathid: 0x1
这是10.100.1.1/32的路由,如路由器P4所示:
P4#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 9
Paths: (2 available, best #2, table default)
Additional-path-install
Path not advertised to any peer
Refresh Epoch 5
65001
10.100.1.3 (metric 16) from 10.100.1.7 (10.100.1.7)
Origin incomplete, metric 0, localpref 100, valid, internal, backup/repair, all
Originator: 10.100.1.3, Cluster list: 10.100.1.7
mpls labels in/out 29/16
rx pathid: 0x0, tx pathid: 0x1
Path advertised to update-groups:
35
Refresh Epoch 5
65001
10.100.1.5 (metric 11) from 10.100.1.7 (10.100.1.7)
Origin incomplete, metric 0, localpref 100, valid, internal, best
Originator: 10.100.1.5, Cluster list: 10.100.1.7
mpls labels in/out 29/16
rx pathid: 0x1, tx pathid: 0x0
如路由器PE2所示,10.100.1.1/32的路由如下:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 4
Paths: (2 available, best #2, table default)
Advertised to update-groups:
5
Refresh Epoch 1
65000 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, localpref 100, valid, external
mpls labels in/out 18/17
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, localpref 100, valid, external, best
mpls labels in/out 18/30
rx pathid: 0, tx pathid: 0x0
路由器P3上的最佳路径是IGP度量为6的路径,路由器P1作为下一跳。路由器P4上的最佳路径是IGP度量为11的路径,路由器P2作为下一跳。路由器P3和P4向路由器PE2发送其最佳路径。路由器PE2从路由器P4选择最佳路径,这是由于路由器PE2上的两条BGP路径非常相似,步骤10决定了最佳路径:最古老的外部路径获胜。这意味着从路由器PE2到路由器PE1的流量采用路径PE2-P4-P2-PE1。但是,考虑IGP开销时,最短的总路径是PE2-P3-P1-PE1。
使用以下信息验证路由器P3和P4上指向路由器PE2(10.100.1.7)的AIGP度量属性:
以下是路由器P3的输出:
router bgp 65000
address-family ipv4
bgp additional-paths select all
bgp additional-paths receive
bgp additional-paths install
neighbor 10.1.9.2 activate
neighbor 10.1.9.2 aigp
neighbor 10.1.9.2 send-label
neighbor 10.100.1.7 activate
neighbor 10.100.1.7 aigp
neighbor 10.100.1.7 next-hop-self
neighbor 10.100.1.7 send-label
以下是路由器P4的输出:
router bgp 65000
address-family ipv4
bgp additional-paths select all
bgp additional-paths receive
bgp additional-paths install
neighbor 10.1.10.2 activate
neighbor 10.1.10.2 aigp
neighbor 10.1.10.2 send-label
neighbor 10.100.1.7 activate
neighbor 10.100.1.7 aigp
neighbor 10.100.1.7 next-hop-self
neighbor 10.100.1.7 send-label
您可以看到路由器P3现在具有:
P3#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 30
Paths: (2 available, best #2, table default)
Additional-path-install
Path not advertised to any peer
Refresh Epoch 11
65001
10.100.1.5 (metric 21) from 10.100.1.7 (10.100.1.7)
Origin incomplete, aigp-metric 0, metric 0, localpref 100, valid, internal,
backup/repair, all
Originator: 10.100.1.5, Cluster list: 10.100.1.7
mpls labels in/out 28/31
rx pathid: 0x1, tx pathid: 0x1
Path advertised to update-groups:
5
Refresh Epoch 11
65001
10.100.1.3 (metric 6) from 10.100.1.7 (10.100.1.7)
Origin incomplete, aigp-metric 0, metric 0, localpref 100, valid, internal, best
Originator: 10.100.1.3, Cluster list: 10.100.1.7
mpls labels in/out 28/30
rx pathid: 0x0, tx pathid: 0x0
路由器P4现在具有:
P4#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 30
Paths: (2 available, best #1, table default)
Additional-path-install
Path advertised to update-groups:
35
Refresh Epoch 11
65001
10.100.1.5 (metric 11) from 10.100.1.7 (10.100.1.7)
Origin incomplete, aigp-metric 0, metric 0, localpref 100, valid, internal, best
Originator: 10.100.1.5, Cluster list: 10.100.1.7
mpls labels in/out 16/31
rx pathid: 0x1, tx pathid: 0x0
Path not advertised to any peer
Refresh Epoch 11
65001
10.100.1.3 (metric 16) from 10.100.1.7 (10.100.1.7)
Origin incomplete, aigp-metric 0, metric 0, localpref 100, valid, internal,
backup/repair, all
Originator: 10.100.1.3, Cluster list: 10.100.1.7
mpls labels in/out 16/30
rx pathid: 0x0, tx pathid: 0x1
路由器P3和P4上路径的IGP度量没有更改,但路由器PE2现在从路由器P3和P4接收具有AIGP属性的路由。
路由器PE2看到两条路径。每条路径都有AIGP属性,而具有最低AIGP度量属性的路径现在将获胜:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 6
Paths: (2 available, best #1, table default)
Advertised to update-groups:
5
Refresh Epoch 1
65000 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, aigp-metric 6, localpref 100, valid, external, best
mpls labels in/out 18/17
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, aigp-metric 11, localpref 100, valid, external
mpls labels in/out 18/30
rx pathid: 0, tx pathid: 0
如果从路由器P3收到的路径比从路由器P4在路由器PE2上收到的路径长,则路由器PE2仍会从路由器P3选取最佳路径。您可以增加路由器P3通过 route-map
和 as-prepending
。
router bgp 65000
address-family ipv4
neighbor 10.1.9.2 route-map as_path out
route-map as_path permit 10
set as-path prepend last-as 1
路由器PE2现在拥有从路由器P3到AS路径中额外添加一个AS的路由:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 7
Paths: (2 available, best #1, table default)
Advertised to update-groups:
5
Refresh Epoch 1
65000 65001 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, aigp-metric 6, localpref 100, valid, external, best
mpls labels in/out 18/nolabel
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, aigp-metric 11, localpref 100, valid, external
mpls labels in/out 18/30
rx pathid: 0, tx pathid: 0
由于AIGP度量属性,路由器PE2仍从路由器P3选择最佳路径。在检查AS路径长度之前,会执行AIGP检查。
如果取消将路由器P4上的AIGP发送到路由器PE2的功能,则路由器PE2从路由器P4接收没有AIGP度量属性的路径。但是,路由器PE2仍具有从路由器P3到AIGP的路径。路由器PE2优先使用带AIGP的路径,而不是不带AIGP的路径,它从路由器P3选择最佳路径:
PE2#show bgp ipv4 unicast 10.100.1.1
BGP routing table entry for 10.100.1.1/32, version 2
Paths: (2 available, best #2, table default)
Advertised to update-groups:
6
Refresh Epoch 1
65000 65001
10.1.10.6 from 10.1.10.6 (10.100.1.6)
Origin incomplete, localpref 100, valid, external
mpls labels in/out 17/30
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
65000 65001 65001
10.1.9.4 from 10.1.9.4 (10.100.1.4)
Origin incomplete, aigp-metric 6, localpref 100, valid, external, best
mpls labels in/out 17/nolabel
rx pathid: 0, tx pathid: 0x0
注意:如果希望路由器PE2在BGP最佳路径选择过程中忽略AIGP,请配置 bgp bestpath aigp ignore
命令。
故障排除
目前没有针对此配置的故障排除信息。