Introduction
This document describes the behavior of Open Shortest Path First (OSPF) to Border Gateway Protocol (BGP) redistribution on Cisco routers.
Prerequisites
Requirements
Cisco recommends that you have knowledge of theOSPF route types before you use this document.
Components Used
This document is not restricted to specific software and hardware versions.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Conventions
For more information on document conventions, see theCisco Technical Tips Conventions.
Background Information
This Tech Note explains the behavior of the OSPF to BGP redistribution on Cisco routers. The behavior of OSPF to BGP redistribution is outlined inRFC 1403. There are several types of OSPF routes:
Intra-Area — In a multiarea OSPF network, routes that originate within an area are known by the routers in the same area as Intra-Area routes. These routes are flagged as O in the
command output.show ip route
Inter-Area — When a route crosses an OSPF Area Border Router (ABR), the route is known as an OSPF Inter-Area route. These routes are flagged as O IA in the
command output.show ip route
Both Intra and Inter-Area routes are also called OSPF Internal routes, as they are generated by OSPF itself when an interface is covered with the OSPF
command.network
External Type-2 or External Type-1 — Routes that were redistributed into OSPF, such as Connected, Static, or other Routing Protocol, are known as External Type-2 or External Type-1. These routes are flagged as O E2 or O E1 in the
command output.show ip route
NSSA External Type-2 or NSSA External Type 1 — When an area is configured as a Not-So-Stub Area (NSSA), and routes are redistributed into OSPF, the routes are known as NSSA External Type-2 or NSSA External Type-1. These routes are flagged as O N2 or O N1 in the
command output.show ip route
The explanation of the differences between External and NSSA Type 2 or 1 is beyond the scope of this document — refer to theOSPF Design Guidefor more information.
The default behavior is not to redistribute any routes from OSPF into BGP. Redistribution must be configured. You can use the
command to filter routes during OSPF to BGP redistribution. To complete the redistribution, specific keywords likeroute-map
and internal
,external
,
are required to redistribute respective routes.nssa-external
Network Setup
There are four redistribution cases of OSPF routes into BGP discussed below. The network diagram applies to the first three cases. The diagram and set up for the fourth case can be found in theRedistribution of OSPF NSSA-External Routes into BGPsection.
Redistribution OSPF to BGP Topology A
Redistribution of Only OSPF Internal (Intra and Inter-Area) Routes into BGP
If you configure the redistribution of OSPF into BGP without keywords, only OSPF intra-area and inter-area routes are redistributed into BGP, by default. You can use the
keyword along with theinternal
command underredistribute
to redistribute OSPF Intra and Inter-area routes.routerbgp
This configuration is a new configuration of Router B that redistributes only the Intra-area route (10.108.2.0/24) and Inter-area route (10.108.1.0/24) into BGP and only OSPF Internal (Intra-area and Inter-area) routes are redistributed into BGP:
RTB |
---|
hostname RTB! |
Router B redistributes only OSPF Internal routes:
RTB#show ip bgpBGP table version is 12, local router ID is 10.3.3.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.2.2.0/24 0.0.0.0 0 32768 ? *> 10.108.1.0/24 10.2.2.2 3 32768 ? *> 10.108.2.0/24 10.2.2.2 2 32768 ?RTB#
Router C learns these routes from BGP:
RTC#show ip routeCodes: L - local, 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, su - IS-IS summary, 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, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfRGateway of last resort is not set 10.0.0.0/8 is variably subnetted, 5 subnets, 2 masksB 10.2.2.0/24 [20/0] via 10.3.3.1, 00:07:07C 10.3.3.0/24 is directly connected, GigabitEthernet0/0L 10.3.3.2/32 is directly connected, GigabitEthernet0/0B 10.108.1.0/24 [20/3] via 10.3.3.1, 00:07:07B 10.108.2.0/24 [20/2] via 10.3.3.1, 00:07:07RTC#RTC#show ip bgpBGP table version is 8, local router ID is 10.3.3.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.2.2.0/24 10.3.3.1 0 0 100 ? *> 10.108.1.0/24 10.3.3.1 3 0 100 ? *> 10.108.2.0/24 10.3.3.1 2 0 100 ?RTC#
Redistribution of Only OSPF External (Type 1 and 2) Routes into BGP
Use the
keyword along with theexternal
command underredistribute
to redistribute OSPF external routes into BGP. With therouterbgp
keyword, you have three choices:external
Redistribute both External Type-1 and Type-2 (Default)
Redistribute Type-1
Redistribute Type-2
Enter the commands in the configuration mode as described here:
RTB(config-router)#router bgp 100RTB(config-router)#redistribute ospf 1 match external
In this configuration of Router B, redistribute only OSPF External routes, but both Type-1 and Type-2:
RTB |
---|
|
Note: The configuration shows
and the command entered wasmatch external1external2
.This is normal because OSPF automatically appends redistributeospf1matchexternal
external 1 external 2
in the configuration. It matches both OSPF external 1 and external 2 routes and it redistributes both routes into BGP.
Router B redistributes only the OSPF external routes:
RTB#show ip bgpBGP table version is 25, local router ID is 10.3.3.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 10.2.2.2 20 32768 ? *> 192.168.2.0 10.2.2.2 23 32768 ?RTB#
Router C learns about these two OSPF external routes from BGP:
RTC#show ip routeCodes: L - local, 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, su - IS-IS summary, 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, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfRGateway of last resort is not set 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masksC 10.3.3.0/24 is directly connected, GigabitEthernet0/0L 10.3.3.2/32 is directly connected, GigabitEthernet0/0B 192.168.1.0/24 [20/20] via 10.3.3.1, 00:02:16B 192.168.2.0/24 [20/23] via 10.3.3.1, 00:02:16
RTC#show ip bgpBGP table version is 21, local router ID is 10.3.3.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 10.3.3.1 20 0 100 ? *> 192.168.2.0 10.3.3.1 23 0 100 ?RTC#
Redistribution of Only OSPF External Type 1 or Type 2 Routes into BGP
Enter this command under the
command on Router B to redistribute only OSPF External 1 routes:routerbgp100
RTB(config)#
router bgp 100RTB(config-router)#
redistribute ospf 1 match external 1
With the previous configuration Router B (RTB) BGP table shows that it is only able to redistribute external 1 routes into BGP and all other OSPF routes are not redistributed into BGP:
RTB#show ip bgpBGP table version is 28, local router ID is 10.3.3.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.2.0 10.2.2.2 23 32768 ?RTB#
In the same way, enter this command under
on Router B to redistribute only OSPF external 2 routes:routerbgp100
RTB(config)#
router bgp 100RTB(config-router)#
redistribute ospf 1 match external 2
Redistribution of OSPF Internal and External Routes into BGP
In this case, all OSPF routes are redistributed into BGP with the use of both the
andinternal
keywords within the command external
redistribute ospf <process> match internal external
, as shown in this Router B configuration:
RTB |
---|
|
Again,
is replaced withexternal
in the configuration. This is normal unless you specify which specific external routes you want to redistribute into BGP. Afterthe configuration change is completed, Router B redistributes all OSPF routes and Router C starts to learn all routes from BGP:external 1external2
RTB#show ip bgpBGP table version is 6, local router ID is 10.3.3.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 10.2.2.0/24 0.0.0.0 0 32768 ? *> 10.108.1.0/24 10.2.2.2 3 32768 ? *> 10.108.2.0/24 10.2.2.2 2 32768 ? *> 192.168.1.0 10.2.2.2 20 32768 ? *> 192.168.2.0 10.2.2.2 23 32768 ?RTB#
RTC#show ip routeCodes: L - local, 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, su - IS-IS summary, 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, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfRGateway of last resort is not set 10.0.0.0/8 is variably subnetted, 5 subnets, 2 masksB 10.2.2.0/24 [20/0] via 10.3.3.1, 00:03:27C 10.3.3.0/24 is directly connected, GigabitEthernet0/0L 10.3.3.2/32 is directly connected, GigabitEthernet0/0B 10.108.1.0/24 [20/3] via 10.3.3.1, 00:03:27B 10.108.2.0/24 [20/2] via 10.3.3.1, 00:03:27B 192.168.1.0/24 [20/20] via 10.3.3.1, 00:03:27B 192.168.2.0/24 [20/23] via 10.3.3.1, 00:03:27RTC#
Redistribution of OSPF NSSA-External Routes into BGP
This is a special case in which only NSSA routes are redistributed into BGP. This case is very similar to the case described in theRedistribution of only OSPF External (Type 1 and 2) Routes into BGPsection. The only difference is that OSPF now matches NSSA-external routes instead of just external routes. The routing table of Router B shows these OSPF NSSA-external routes:
RTB#show ip routeCodes: L - local, 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, su - IS-IS summary, 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, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfRGateway of last resort is not set 10.0.0.0/8 is variably subnetted, 6 subnets, 2 masksC 10.2.2.0/24 is directly connected, GigabitEthernet0/1L 10.2.2.3/32 is directly connected, GigabitEthernet0/1C 10.3.3.0/24 is directly connected, GigabitEthernet0/0L 10.3.3.1/32 is directly connected, GigabitEthernet0/0O IA 10.108.1.0/24 [110/3] via 10.2.2.2, 00:05:00, GigabitEthernet0/1O 10.108.2.0/24 [110/2] via 10.2.2.2, 00:05:00, GigabitEthernet0/1O N2 192.168.1.0/24 [110/20] via 10.2.2.1, 00:10:14, GigabitEthernet0/1O N1 192.168.2.0/24 [110/22] via 10.2.2.2, 00:03:43, GigabitEthernet0/1RTB#
This network diagram is used for this case:
Redistribution OSPF to BGP Topology B
The network diagram shows that Router B receives both OSPF N1 and N2 routes. The default behavior is to redistribute both N1 and N2 routes if only the
keyword is used. This configuration of Router B allows us to redistribute OSPF N2 (192.168.1.0/24) and OSPF N1 (192.168.2.0/24) routes into BGP:nssa-external
RTB |
---|
|
Note: Like the OSPF external configuration, the previous configuration displays
and the command entered wasmatch nssa-external1nssa-external2
This is normal because OSPF automatically appendsredistributeospf1matchnssa-external
.nssa-external 1 nssa-external 2
in the configuration. It matches both OSPF N1 and OSPF N2 routes and redistributes both routes into BGP.
After the configuration change on Router B, it redistributes OSPF NSSA-external routes, and Router C learnsOSPF NSSA-external routes from BGP:
RTB#show ip routeCodes: L - local, 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, su - IS-IS summary, 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, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfRGateway of last resort is not set 10.0.0.0/8 is variably subnetted, 6 subnets, 2 masksC 10.2.2.0/24 is directly connected, GigabitEthernet0/1L 10.2.2.3/32 is directly connected, GigabitEthernet0/1C 10.3.3.0/24 is directly connected, GigabitEthernet0/0L 10.3.3.1/32 is directly connected, GigabitEthernet0/0O IA 10.108.1.0/24 [110/3] via 10.2.2.2, 00:09:40, GigabitEthernet0/1O 10.108.2.0/24 [110/2] via 10.2.2.2, 00:09:40, GigabitEthernet0/1O N2 192.168.1.0/24 [110/20] via 10.2.2.1, 00:14:54, GigabitEthernet0/1O N1 192.168.2.0/24 [110/22] via 10.2.2.2, 00:08:23, GigabitEthernet0/1RTB#RTB#show ip bgpBGP table version is 17, local router ID is 10.3.3.1Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 10.2.2.1 20 32768 ? *> 192.168.2.0 10.2.2.2 22 32768 ?RTB#
RTC#show ip routeCodes: L - local, 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, su - IS-IS summary, 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, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override, p - overrides from PfRGateway of last resort is not set 10.0.0.0/8 is variably subnetted, 2 subnets, 2 masksC 10.3.3.0/24 is directly connected, GigabitEthernet0/0L 10.3.3.2/32 is directly connected, GigabitEthernet0/0B 192.168.1.0/24 [20/20] via 10.3.3.1, 00:01:29B 192.168.2.0/24 [20/22] via 10.3.3.1, 00:01:29RTC# RTC#show ip bgpBGP table version is 41, local router ID is 10.3.3.2Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, t secondary path, Origin codes: i - IGP, e - EGP, ? - incompleteRPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 192.168.1.0 10.3.3.1 20 0 100 ? *> 192.168.2.0 10.3.3.1 22 0 100 ?RTC#
In the same way as with OSPF External routes, to redistribute only OSPF N1 routes, enter this command under router BGP 100 on Router B:
RTB(config)#
router bgp 100
RTB(config-router)#redistribute ospf 1 match nssa-external 1!--- This redistributes only OSPF NSSA-external Type-1 routes into BGP.
To redistribute only OSPF N2 routes, enter this command under router BGP 100 on Router B:
RTB(config)#
router bgp 100redistribute ospf 1 match nssa-external 2
RTB(config-router)#!--- This redistributes only OSPF NSSA-external Type-2 routes into BGP.
Note: Route-Maps can also be used to redistribute OSPF Type 1/2 into BGP. Refer toRedistribute OSPF E2 Routes in BGPfor more information.
Modify the Redistribution Option in OSPF
It is important to understand how successive configuration change alters your configuration. A new command with the match option does not overwrite the previous one but is added to it. The next example explains how the configuration command sequence can have an impact on redistribution:
R4#configure terminalR4(config)#router bgp 100R4(config-router)#redistribute ospf 1 match internalR4(config-router)#^Z!--- Initially, you redistribute internal OSPF routes into BGP 100.R4#show run | include redistribute ospf redistribute ospf 1 match internalR4#configure terminalR4(config)#router bgp 100R4(config-router)#redistribute ospf 1 match externalR4(config-router)#^Z!--- With this second command, you tell BGP to also redistribute external OSPF routes.R4#show run | include redistribute ospf redistribute ospf 1 match internal external 1 external 2R4#R4#configure terminalR4(config)#router bgp 100R4(config-router)#no redistribute ospf 1 match external 2R4(config-router)#^Z!--- With this no command, you only disable the redistribution of external type 2 into BGP.
!--- All other types of routes previously configured remain.R4#show run | include redistribute ospf redistribute ospf 1 match internal external 1 !--- As you can see, internal and external type 1 remain.R4#configure terminalR4(config)#router bgp 100R4(config-router)#no redistribute ospf 1 match internal external 1R4(config-router)#^Z !--- Now, with this no command, which includes all configured keywords, it is important to note that you
!--- still do not disable the redistribution fully. you only removed the keyword. After this,
!--- the IOS still acts as default—redistributing internal routes only.R4#show run | include redistribute ospf redistribute ospf 1R4#configure terminalR4(config)#router bgp 100R4(config-router)#no redistribute ospf 1 !--- Always use the previous command in order to completely disable redistribution.R4(config-router)# ^ZR4#show run | include redistribute ospfR4#
Unable to Redistribute iBGP Learnt Routes into an IGP such as EIGRP and OSPF
Route Redistribution is used to propagate routes learned with the use of one protocol, into another routing protocol. When BGP is redistributed into an IGP, only eBGP learned routes get redistributed. Theinternal Border Gateway Protocol (iBGP) learned routes known on the router are not introduced into the IGP in order to prevent the creation of routing loops.
By default, the iBGP redistribution into IGP is disabled. Issue the
command in order to enable redistribution of iBGP routes into IGP. Precautions need to be taken to redistribute specific routes with the use of route maps into IGP.bgpredistribute-internal
A sample configuration for redistribution of iBGP routes into OSPF is shown here:
Router(config)#router bgp 65345 Router(config-router)#bgp redistribute-internal!Router(config)#router ospf 100Router(config-router)#redistribute bgp 65345 subnets
Note: The redistribution of iBGP routes into an Interior Gateway Protocol can cause routing loops within the Autonomous System (AS). This is not recommended. Route filters need to be set in order to control the information, which is imported into the IGP.
Redistribute OSPF Default Routes into BGP
In order to redistribute default routes into BGP, use the
statement andnetwork
.In this example, the OSPF default routes are redistributed into BGP. This is done with the creation of a route map and the distribution of the default network, which is permitted by the standard ACL.default-informationoriginate
!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
After the configuration, clear the bgp sessions with the
command.clearipbgp *
Related Information
- OSPF: Frequently Asked Questions
- Frequently Asked Questions BGP