IP : 边界网关协议(BGP)

了解 OSPF 路由再分配到 BGP 中

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


目录


简介

本技术说明解释 Cisco 路由器上的开放最短路径优先 (OSPF) 到边界网关协议 (BGP) 重分配的行为。RFC 1403 中列出了 OSPF 到 BGP 重分配的行为。leavingcisco.com

有几种类型的 OSPF 路由:

  • 域内——在多区域OSPF网络中,在区域内产生的路由被相同区域内的路由器称为域内路由。在 show ip route 命令输出中,这些路由标记为 O。

  • 域间——当路由穿过OSPF局域边界路由器(ABR)时,路由一般被称为OSPF区域间路由。在 show ip route 命令输出中,这些路由标记为 O IA。

    内部和区域间路由也称为 OSPF 内部路由,因为它们都是由 OSPF 自身生成,当接口包含在 OSPF network 命令中时。

  • 重新分配到OSPF(如连接、静态或其他路由协议)的ExternalType-2或ExternalType-1路由,作为External Type-2或External Type-1。在 show ip route 命令输出中,这些路由被标记为 O E2 或 O E1。

  • NSSA 外部类型2或NSSA外部类型1--当区域配置为次未节区域(NSSA),并且路由重新分配到OSPF时,该路由器便用作NSSA外部类型2或NSSA外部类型1。在 show ip route 命令输出中,这些路由被标记作为 O N2 或 O N1。

    External和NSSAtype-2或type-1之间的区别描述不在本文讨论范围之列。欲知更多信息,请参见OSPF设计指南。

默认行为是不将任何路由从 OSPF 重分配到 BGP 中。必须配置重分配。在 OSPF 到 BGP 重分配过程中可以使用 route-map 命令过滤路由。当重新分配时,要求将特定关键字(如内部外部NSSA 外部等)重新分配到各个路由上。

先决条件

要求

使用本文档前,需要了解 OSPF 路由类型。

使用的组件

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

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

规则

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

网络设置

下面讨论四个将 OSPF 路由重分配到 BGP 中的案例。网络图适用于前三个案例。图表和第四个案件设置,可以在“Redistribution of OSPF NSSA-External Routes into BGP”中找到。

/image/gif/paws/5242/bgp-ospf-redis1.jpg

只将 OSPF 内部(域间与域内)路由再分配到 BGP 中

如果配置OSPF的再分配到BGP,不用关键字,只有区域内的OSPF和区域间路由再分布到BGP,默认情况下。可以在 router bgp 下将 internal 关键字与 redistribute 命令结合使用,以重分配 OSPF 区域内和区域间路由。

此配置是仅将区域内路由 (131.108.2.0/24) 和区域间路由 (131.108.1.0/24) 重分配到 BGP 中的路由器 B 的新配置,并且只会将 OSPF 内部(区域内和区域间)路由重分配到 BGP 中:

RTB
hostname RTB
!
interface Ethernet0/0
 ip address 2.2.2.3 255.255.255.0
!
interface Serial1/0
 ip address 3.3.3.1 255.0.0.0
!
router ospf 1
 network 2.0.0.0 0.255.255.255 area 1
!
router bgp 100
 redistribute ospf 1


!-- This redistributes only OSPF intra- and inter-area routes into BGP.


 neighbor 3.3.3.2 remote-as 200
!
end

RTB# show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Ethernet0/0
C    3.0.0.0/8 is directly connected, Serial1/0
O E2 200.1.1.0/24 [110/20] via 2.2.2.2, 00:16:17, Ethernet0/0
O E1 200.2.2.0/24 [110/104] via 2.2.2.2, 00:00:41, Ethernet0/0
     131.108.0.0/24 is subnetted, 2 subnets
O       131.108.2.0 [110/74] via 2.2.2.2, 00:16:17, Ethernet0/0
O IA    131.108.1.0 [110/84] via 2.2.2.2, 00:16:17, Ethernet0/0
RTB#

路由器 B 只会重分配 OSPF 内部路由:

RTB# show ip bgp
BGP table version is 10, local router ID is 192.168.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 2.2.2.0/24       0.0.0.0                  0         32768 ?
*> 131.108.1.0/24   2.2.2.2                 84         32768 ?
*> 131.108.2.0/24   2.2.2.2                 74         32768 ?
RTB#

路由器 C 从 BGP 了解这些路由:

RTC# show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     2.0.0.0/24 is subnetted, 1 subnets
B       2.2.2.0 [20/0] via 3.3.3.1, 00:11:19
C    3.0.0.0/8 is directly connected, Serial0/0
     131.108.0.0/24 is subnetted, 2 subnets
B       131.108.2.0 [20/74] via 3.3.3.1, 00:03:56
B       131.108.1.0 [20/84] via 3.3.3.1, 00:03:28
RTC#

只将 OSPF 外部(类型 1 和 2)路由重分配到 BGP 中

router bgp 下将 external 关键字redistribute 命令结合使用可将 OSPF 外部路由重分配到 BGP 中。使用 external 关键字时有三种选择:

  • 重分配外部类型 1 和类型 2(默认)

  • 重分配类型 1

  • 重分配类型 2

在配置模式下输入命令,如下所示:

RTB(config-router)# router bgp 100
RTB(config-router)# redistribute ospf 1 match external

在路由器 B 的此配置中,我们只重分配 OSPF 外部路由,不过同时包括类型 1 和类型 2:

RTB
hostname RTB
!
interface Ethernet0/0
 ip address 2.2.2.1 255.0.0.0
!
interface Serial1/0
 ip address 3.3.3.1 255.0.0.0
!
router ospf 1
 network 2.0.0.0 0.255.255.255 area 1
!
router bgp 100
 redistribute ospf 1 match external 1 external 2


!--- This redistributes ONLY OSPF External routes, 
!--- but both type-1 and type-2.


 neighbor 3.3.3.3 remote-as 200
!
end

注意: 配置显示匹配的外部 1 外部 2,输入命令是 redistribute ospf 1 match external。这是正常的,因为 OSPF 会在配置中自动附加“external 1 external 2”。它同时匹配OSPF外部1和外部2路由,并且将两个路由重新分配到BGP中。

路由器 B 只重分配 OSPF 外部路由:

RTB# show ip bgp
BGP table version is 21, local router ID is 192.168.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 200.1.1.0        2.2.2.2                 20         32768 ?
*> 200.2.2.0        2.2.2.2                104         32768 ?
RTB#

路由器 C 从 BGP 了解这两个 OSPF 外部路由:

RTC# show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default
       U - per-user static route, o - ODR

Gateway of last resort is not set

B    200.1.1.0/24 [20/20] via 3.3.3.1, 00:01:43
B    200.2.2.0/24 [20/0] via 3.3.3.1, 00:01:43
C    3.0.0.0/8 is directly connected, Serial0/0

只将 OSPF 外部类型 1 或 2 路由重分配到 BGP 中

在路由器 B 的 router bgp 100 下输入此命令可只重分配 OSP 外部 1 路由:

router bgp 100
 redistribute ospf 1 match external 1

路由器 B BGP 表显示它只将外部 1 路由重分配到 BGP 中,而所有其他 OSPF 路由都不会重分配到 BGP 中:

RTB# show ip bgp
BGP table version is 24, local router ID is 192.168.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 200.2.2.0        2.2.2.2                104         32768 ?
RTB#

同样,在路由器 B 的 router bgp 100 下输入此命令只会重分配 OSPF 外部 2 路由:

router bgp 100
 redistribute ospf 1 match external 2

将 OSPF 内部路由与外部路由重分配到 BGP 中

在这种情况下,通过同时使用 internalexternal 关键字,可将所有 OSPF 路由都重分配到 BGP 中,如此路由器 B 配置所示:

RTB
hostname RTB
!
interface Ethernet0/0
 ip address 2.2.2.1 255.0.0.0
!
interface Serial1/0
 ip address 3.3.3.1 255.0.0.0
!
router ospf 1
 network 2.0.0.0 0.255.255.255 area 1
!
router bgp 100
 redistribute ospf 1 match internal external 1 external 2


!--- This redistributes all OSPF routes into BGP.


 neighbor 3.3.3.3 remote-as 200
!
end

同样,配置中的 external 替换为 external 1 external 2 。这是正常的,只有您指定希望重新分配到BGP的那些特定外部路由时除外。在执行配置更改后,路由器 B 会重分配所有 OSPF 路由,并且路由器 C 开始从 BGP 了解所有路由:

RTB# show ip bgp
BGP table version is 30, local router ID is 192.168.1.7
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 2.2.2.0/24       0.0.0.0                  0         32768 ?
*> 131.108.1.0/24   2.2.2.2                 84         32768 ?
*> 131.108.2.0/24   2.2.2.2                 74         32768 ?
*> 200.1.1.0        2.2.2.2                 20         32768 ?
*> 200.2.2.0        2.2.2.2                104         32768 ?
RTB#

RTC# sh ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     2.0.0.0/24 is subnetted, 1 subnets
B       2.2.2.0 [20/0] via 3.3.3.1, 00:01:24
C    3.0.0.0/8 is directly connected, Serial0/0
B    200.1.1.0/24 [20/20] via 3.3.3.1, 00:01:24
B    200.2.2.0/24 [20/104] via 3.3.3.1, 00:01:24
     131.108.0.0/24 is subnetted, 2 subnets
B       131.108.2.0 [20/74] via 3.3.3.1, 00:01:24
B       131.108.1.0 [20/84] via 3.3.3.1, 00:01:24
RTC#

将 OSPF NSSA 外部路由重分配到 BGP 中

这是一种特殊的情况,在这种情况中,只有次末节区域(NSSA)路由被重新分配到BGP。此案件与路由到BGP区域的OSPF External(类型1和2)的重新分配描述的案例非常类似。唯一的差别是 BGP 现在匹配 NSSA 外部路由而不只是外部路由。路由器 B 的路由表显示了这些 OSPF NSSA 外部路由:

RTB# show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

O N2 200.1.1.0/24 [110/20] via 2.2.2.1, 00:22:53, Ethernet0
O N1 200.2.2.0/24 [110/20] via 2.2.2.2, 00:22:53, Ethernet0
O IA 131.108.1.0/24 [110/20] via 2.2.2.2, 00:22:53, Ethernet0
O 131.108.2.0/24 [110/20] via 2.2.2.2, 00:22:53, Ethernet0
C    2.0.0.0/8 is directly connected, Ethernet0
C    3.0.0.0/8 is directly connected, Serial1

此网络图用于此案例:

/image/gif/paws/5242/bgp-ospf-redis2.jpg

网络图显示路由器 B 同时接收 OSPF N1 和 N2 路由。只有使用 NSSA 外部关键字,默认行为才会重新分配 N1 和 N2 路由。路由器 B 的此配置允许将 OSPF N1 (200.1.1.0/24) 和 OSPF N2 (200.2.2.0/24) 路由重分配到 BGP 中:

RTB
hostname RTB
!
interface Ethernet0/0
 ip address 2.2.2.1 255.0.0.0
!
interface Serial1/0
 ip address 3.3.3.1 255.0.0.0
!
router ospf 1
 network 2.0.0.0 0.255.255.255 area 1 
nssa

!
router bgp 100
 redistribute ospf 1 match nssa-external 1 nssa-external 2


!--- This redistributes only OSPF NSSA-external routes 
!--- Type-1 and Type-2 into BGP.


 neighbor 3.3.3.3 remote-as 200
!
end

注意: 与 OSPF 外部配置类似,上述配置显示了匹配的 NSSA 外部 1 NSSA 外部 2,输入命令是 redistribute ospf 1 match nssa-external。这是正常的,因为 OSPF 会在配置中自动附加“nssa-external 1 nssa-external 2”。它匹配OSPF N1和OSPF N2路由,并且把这两个路由重新分配到BGP。

在路由器 B 上更改配置后,路由器 B 会重分配 OSPF NSSA 外部路由,并且路由器 C 开始从 BGP 了解 OSPF NSSA 外部路由:

RTB# show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     2.0.0.0/24 is subnetted, 1 subnets
C       2.2.2.0 is directly connected, Ethernet0/0
C    3.0.0.0/8 is directly connected, Serial1/0
O N2 200.1.1.0/24 [110/94] via 2.2.2.1, 00:11:12, Ethernet0/0
O N1 200.2.2.0/24 [110/20] via 2.2.2.2, 00:12:23, Ethernet0/0
     131.108.0.0/24 is subnetted, 2 subnets
O       131.108.2.0 [110/74] via 2.2.2.2, 00:12:23, Ethernet0/0
O IA    131.108.1.0 [110/84] via 2.2.2.2, 00:12:11, Ethernet0/0
RTB#

RTB# show ip bgp 
BGP table version is 21, local router ID is 3.3.3.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 200.1.1.0        2.2.2.2                 94         32768 ?
*> 200.2.2.0        2.2.2.1                 20         32768 ?
RTB#

RTC# show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

C    3.0.0.0/8 is directly connected, Serial0/0
B    200.1.1.0/24 [20/94] via 3.3.3.1, 00:02:06
B    200.2.2.0/24 [20/20] via 3.3.3.1, 00:02:06
RTC#

与OSPF外部路由相同,欲只重新分配OSPF N1路由,在路由器B上的router bgp 100下输入以下命令:

router bgp 100
 redistribute ospf 1 match nssa-external 1

!--- This redistributes only OSPF NSSA-external 
!--- Type-1 routes into BGP.

如果只是要再分配OSPF N2路由,请在路由器B的路由器BGP 100下面输入以下命令:

router bgp 100
 redistribute ospf 1 match nssa-external 2

!--- This redistributes only OSPF NSSA-external 
!--- Type-2 routes into BGP.

注意:Route-map可能也用于重新分配OSPF类型1/2到BGP。参考请再分布在BGP的OSPF E2路由欲知更多信息。

修改 OSPF 中的重分配选项

了解连续配置更改可能会如何改变配置非常重要。带有 match 选项的新命令不会覆盖前一个命令,而是添加到该命令中。此示例配置命令序列以 no redistribution 开头,演示了其对重分配的影响:

R4# conf t
R4(config)# router bgp 100
R4(config-router)# redistribute ospf 1 match internal
R4(config-router)# ^Z

!--- Initially, we redistribute internal OSPF routes into BGP 100.


R4# sh run | i redistribute ospf
 redistribute ospf 1 match internal
R4# conf t
R4(config)# router bgp 100
R4(config-router)# redistribute ospf 1 match external
R4(config-router)# ^Z

!--- With this second command, we tell BGP 
!--- to also redistribute external OSPF routes.


R4# sh run | i redistribute ospf
 redistribute ospf 1 match internal external 1 external 2
R4#
R4# conf t
R4(config)# router bgp 100
R4(config-router)# no redistribute ospf 1 match external 2
R4(config-router)# ^Z

!--- With this no command, we only disable the 
!--- redistribution of external type 2 into BGP. 
!--- All other types of routes previously configured remain.


R4# sh run | i redistribute ospf
 redistribute ospf 1 match internal external 1
 
!--- As you can see, internal and external type 1 remain.

R4# conf t
R4(config)# router bgp 100
R4(config-router)# no redistribute ospf 1 match internal external 1
R4(config-router)# ^Z 

!--- Now, with this no command, which includes all configured 
!--- keywords, it is important to note that we 
!--- still do not disable the redistribution fully.
!--- We only removed the keyword. After this, 
!--- the IOS still acts as default—redistributing
!--- internal routes only.


R4# sh run | i redistribute ospf
 redistribute ospf 1
R4# conf t
R4(config)# router bgp 100
R4(config-router)# no redistribute ospf 1 

!--- Always use this command in order to completely
!--- disable redistribution.

R4(config-router)# ^Z
R4# sh run | i redistribute ospf
R4#

无法将 iBGP Learnt 路由重新分配到如 EIGRP、OSPF 这样的 IGP 中

路由重分配用于将使用一种协议了解的路由传播到另一种路由协议中。当 BGP 重分配到 IGP 中,只会重分配 eBGP 了解的路由。路由器上已知的 IBGP 了解的路由不会进入 IGP,以防形成路由环路。

默认情况下,禁用将 iBGP 重分配到 IGP。发出 bgp redistribute-internal 命令可启用将 iBGP 路由重分配到 IGP。需要采取预防措施,才能使用路由映射将特定路由重分配到 IGP 中。

此处演示了一个将 iBGP 路由重分配到 OSPF 中的示例配置:

router bgp 65345 
bgp redistribute-internal
!
router ospf 100
redistribute bgp 65345 subnets

注意: 将内部边界网关协议 (iBGP) 路由重分配到 Interior Gateway Protocol 中可能会在自治系统 (AS) 内形成路由环路。不推荐这样做。需要设置路由过滤器,以控制导入 IGP 的信息。

再分布OSPF默认路由对BGP

为了再分布默认路由到BGP,请使用网络声明default-information originate。在我们的示例中, OSPF默认路由再分布对BGP。这执行与route-map的创建和默认网络的分配,由标准ACL允许。

!
route-map map_default_only permit 10

 match ip address acl_default_only

!

ip access-list standard acl_default_only

 permit 0.0.0.0

!

router bgp 64601

network 0.0.0.0

 redistribute ospf 1 route-map map_default_only

 default-information originate

!--- distributes the default route in bgp

!

在配置以后,请清除BGP会话用clear ip bgp *命令

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 5242