BGP routing is an important aspect of IP routing, which is the only one exterior gayeway routing protocol. There are two flavors: iBGP and eBGP, depennding on if the beighbors are in the same AS.
Especially EBGP, this is the routing protocol which routes the entire internet, connects between different ISPs, enterprise networks.
BGP routing
The Internet is comprised of two parts: the internal fine-grained portions managed by an IGP such as OSPF, and the interconnections of those autonomous systems (AS) via BGP.
BGP Basics:
The current version of BGP is BGP version 4, based on RFC4271.
BGP is the path-vector protocol that provides routing information for autonomous systems on the Internet via its AS-Path attribute.
BGP is a Layer 4 protocol that sits on top of TCP, using port 179.
BGP establises route by manually forming neighbors/Peers, exchange routing information between neighbors. Use “show ip bgp neighbor” or “show ip bgp summary” to see neighbors. The neighbors are not necessary to be physically connected neighbor, it can be logical neighbor, as long as it is IP reachable, with the help of IGP such as OSPF.
BGP establishes its BGP database after receiving the routing information from neighbors. The database can be examnined by “show ip bgp”.
BGP can insert BGP routes into router’s routing table depending on the weigh of route. By default, EBGP route has weight 20, IBGP route is 200, comparing to OSFP route is 100. These are well designed number, which we will see how important is.
Below is the network topology of two Autonomous Systems 500 and 600. I created the network by running Cisco IOL image.
Some highlights:
Each router has a loopback 0 interface, e.g. R1 has loopback0 with ip address 11.11.11.11; R2 has loopback 0 with ip address 22.22.22.22.
Each router has serial connections as WAN link, and Ethernet interface as LAN. WAN link is not supposed to be seen outside of AS, only LAN network is needed.
OSPF will be used as IGP
Loopback IP address will be used as neighbor address so that we can have redundancy especially in the case between R3 and R5.
IBGP will use full mesh instead of route reflector.
Following shows the IP address of each router.
R1:
R1#show ip interface brief
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 10.1.1.1 YES NVRAM up up
Serial1/0 4.4.4.2 YES NVRAM up up
Serial2/0 1.1.1.1 YES NVRAM up up
Loopback0 11.11.11.11 YES manual up up
R1#
R2:
R2#show ip interface brief
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 20.1.1.1 YES NVRAM up up
Serial1/0 2.2.2.1 YES NVRAM up up
Serial2/0 1.1.1.2 YES NVRAM up up
Loopback0 22.22.22.22 YES manual up up
R2#
R3:
R3#show ip interface brief
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 30.1.1.1 YES NVRAM up up
Serial1/0 2.2.2.2 YES NVRAM up up
Serial2/0 3.3.3.1 YES NVRAM up up
Serial3/0 5.5.5.1 YES NVRAM up up
Serial4/0 6.6.6.1 YES manual up up
Loopback0 33.33.33.33 YES manual up up
R3#
R4:
R4#show ip interface brief
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 40.1.1.1 YES NVRAM up up
Serial1/0 3.3.3.2 YES NVRAM up up
Serial2/0 4.4.4.1 YES NVRAM up up
Loopback0 44.44.44.44 YES manual up up
R4#
R5:
R5#show ip interface brief
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 50.1.1.1 YES NVRAM up up
Serial1/0 5.5.5.2 YES NVRAM up up
Serial2/0 6.6.6.2 YES manual up up
Loopback0 55.55.55.55 YES NVRAM up up
R5#
R1:
R1#show run | s ospf
router ospf 100
network 1.0.0.0 0.255.255.255 area 0
network 4.0.0.0 0.255.255.255 area 0
network 10.0.0.0 0.255.255.255 area 0
network 11.11.11.11 0.0.0.0 area 0
R1#
R1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
40.1.1.1 0 FULL/ - 00:00:30 4.4.4.1 Serial1/0
20.1.1.1 0 FULL/ - 00:00:31 1.1.1.2 Serial2/0
R1#show ip route ospf
Codes: 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
+ - replicated route, % - next hop override
Gateway of last resort is not set
O 2.0.0.0/8 [ 110/128] via 1.1.1.2, 03:56:15, Serial2/0
O 3.0.0.0/8 [ 110/128] via 4.4.4.1, 03:56:15, Serial1/0
O 20.0.0.0/8 [ 110/74] via 1.1.1.2, 03:56:15, Serial2/0
22.0.0.0/32 is subnetted, 1 subnets
O 22.22.22.22 [ 110/65] via 1.1.1.2, 03:51:47, Serial2/0
O 30.0.0.0/8 [ 110/138] via 4.4.4.1, 03:56:15, Serial1/0
[ 110/138] via 1.1.1.2, 03:56:15, Serial2/0
33.0.0.0/32 is subnetted, 1 subnets
O 33.33.33.33 [ 110/129] via 4.4.4.1, 03:51:05, Serial1/0
[ 110/129] via 1.1.1.2, 03:51:05, Serial2/0
O 40.0.0.0/8 [ 110/74] via 4.4.4.1, 03:56:15, Serial1/0
44.0.0.0/32 is subnetted, 1 subnets
O 44.44.44.44 [ 110/65] via 4.4.4.1, 03:50:12, Serial1/0
R1#
R2:
R2#show running-config | s ospf
router ospf 100
network 1.0.0.0 0.255.255.255 area 0
network 2.0.0.0 0.255.255.255 area 0
network 20.0.0.0 0.255.255.255 area 0
network 22.22.22.22 0.0.0.0 area 0
R2#
R2#show running-config | s ospf
router ospf 100
network 1.0.0.0 0.255.255.255 area 0
network 2.0.0.0 0.255.255.255 area 0
network 20.0.0.0 0.255.255.255 area 0
network 22.22.22.22 0.0.0.0 area 0
R2#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
30.1.1.1 0 FULL/ - 00:00:38 2.2.2.2 Serial1/0
10.1.1.1 0 FULL/ - 00:00:31 1.1.1.1 Serial2/0
R2#show ip route ospf
Codes: 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
+ - replicated route, % - next hop override
Gateway of last resort is not set
O 3.0.0.0/8 [ 110/128] via 2.2.2.2, 03:59:33, Serial1/0
O 4.0.0.0/8 [ 110/128] via 1.1.1.1, 03:59:43, Serial2/0
O 10.0.0.0/8 [ 110/74] via 1.1.1.1, 03:59:43, Serial2/0
11.0.0.0/32 is subnetted, 1 subnets
O 11.11.11.11 [ 110/65] via 1.1.1.1, 03:55:50, Serial2/0
O 30.0.0.0/8 [ 110/74] via 2.2.2.2, 03:59:33, Serial1/0
33.0.0.0/32 is subnetted, 1 subnets
O 33.33.33.33 [ 110/65] via 2.2.2.2, 03:54:24, Serial1/0
O 40.0.0.0/8 [ 110/138] via 2.2.2.2, 03:59:33, Serial1/0
[ 110/138] via 1.1.1.1, 03:59:33, Serial2/0
44.0.0.0/32 is subnetted, 1 subnets
O 44.44.44.44 [ 110/129] via 2.2.2.2, 03:53:31, Serial1/0
[ 110/129] via 1.1.1.1, 03:53:31, Serial2/0
R2#
R3:
R3#show running-config | s ospf
router ospf 100
network 2.0.0.0 0.255.255.255 area 0
network 3.0.0.0 0.255.255.255 area 0
network 30.0.0.0 0.255.255.255 area 0
network 33.33.33.33 0.0.0.0 area 0
R3#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
40.1.1.1 0 FULL/ - 00:00:30 3.3.3.2 Serial2/0
20.1.1.1 0 FULL/ - 00:00:31 2.2.2.1 Serial1/0
R3#show ip route ospf
Codes: 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
+ - replicated route, % - next hop override
Gateway of last resort is not set
O 1.0.0.0/8 [ 110/128] via 2.2.2.1, 04:00:56, Serial1/0
O 4.0.0.0/8 [ 110/128] via 3.3.3.2, 04:00:46, Serial2/0
O 10.0.0.0/8 [ 110/138] via 3.3.3.2, 04:00:46, Serial2/0
[ 110/138] via 2.2.2.1, 04:00:56, Serial1/0
11.0.0.0/32 is subnetted, 1 subnets
O 11.11.11.11 [ 110/129] via 3.3.3.2, 03:57:04, Serial2/0
[ 110/129] via 2.2.2.1, 03:57:04, Serial1/0
O 20.0.0.0/8 [ 110/74] via 2.2.2.1, 04:00:56, Serial1/0
22.0.0.0/32 is subnetted, 1 subnets
O 22.22.22.22 [ 110/65] via 2.2.2.1, 03:56:20, Serial1/0
O 40.0.0.0/8 [ 110/74] via 3.3.3.2, 04:00:46, Serial2/0
44.0.0.0/32 is subnetted, 1 subnets
O 44.44.44.44 [ 110/65] via 3.3.3.2, 03:54:45, Serial2/0
R3#
R4:
R4#show running | se ospf
router ospf 100
network 3.0.0.0 0.255.255.255 area 0
network 4.0.0.0 0.255.255.255 area 0
network 40.0.0.0 0.255.255.255 area 0
network 44.44.44.44 0.0.0.0 area 0
R4#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.1.1.1 0 FULL/ - 00:00:30 4.4.4.2 Serial2/0
30.1.1.1 0 FULL/ - 00:00:31 3.3.3.1 Serial1/0
R4#show ip route ospf
Codes: 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
+ - replicated route, % - next hop override
Gateway of last resort is not set
O 1.0.0.0/8 [ 110/128] via 4.4.4.2, 04:02:06, Serial2/0
O 2.0.0.0/8 [ 110/128] via 3.3.3.1, 04:02:16, Serial1/0
O 10.0.0.0/8 [ 110/74] via 4.4.4.2, 04:02:06, Serial2/0
11.0.0.0/32 is subnetted, 1 subnets
O 11.11.11.11 [ 110/65] via 4.4.4.2, 03:58:25, Serial2/0
O 20.0.0.0/8 [ 110/138] via 4.4.4.2, 04:02:06, Serial2/0
[ 110/138] via 3.3.3.1, 04:02:16, Serial1/0
22.0.0.0/32 is subnetted, 1 subnets
O 22.22.22.22 [ 110/129] via 4.4.4.2, 03:57:41, Serial2/0
[ 110/129] via 3.3.3.1, 03:57:41, Serial1/0
O 30.0.0.0/8 [ 110/74] via 3.3.3.1, 04:02:16, Serial1/0
33.0.0.0/32 is subnetted, 1 subnets
O 33.33.33.33 [ 110/65] via 3.3.3.1, 03:56:59, Serial1/0
R4#
With above configuration, we should be able to ping from any router inside AS-500 to ping any interface IP inside AS-500.
If we don’t need to communicate outside, that is good enough. But that is not the internet about. we want to connect anywhere in the world! BGP comes to help for that!
R1: only advertise LAN network, which is 10.0.0.0. No WAN interface exposed.
peer-group “bgp-pgrp1” is created to apply to all three iBGP neighbors R2, R3, R4. we do the similar in R2, R3 and R4.
R1#show running-config | s bgp
router bgp 500
bgp log-neighbor-changes
network 10.0.0.0
neighbor bgp-pgrp1 peer-group
neighbor bgp-pgrp1 remote-as 500
neighbor bgp-pgrp1 update-source Loopback0
neighbor bgp-pgrp1 version 4
neighbor bgp-pgrp1 next-hop-self
neighbor 22.22.22.22 peer-group bgp-pgrp1
neighbor 33.33.33.33 peer-group bgp-pgrp1
neighbor 44.44.44.44 peer-group bgp-pgrp1
R1#
R2: only advertise LAN network, which is 20.0.0.0.
R2#show run | se bgp
router bgp 500
bgp log-neighbor-changes
network 20.0.0.0
neighbor bgp-pgrp1 peer-group
neighbor bgp-pgrp1 remote-as 500
neighbor bgp-pgrp1 update-source Loopback0
neighbor bgp-pgrp1 version 4
neighbor bgp-pgrp1 next-hop-self
neighbor 11.11.11.11 peer-group bgp-pgrp1
neighbor 33.33.33.33 peer-group bgp-pgrp1
neighbor 44.44.44.44 peer-group bgp-pgrp1
R2#
R4: only advertise LAN network, which is 40.0.0.0.
R4#show run | s bgp
router bgp 500
bgp log-neighbor-changes
network 40.0.0.0
neighbor bgp-pgrp1 peer-group
neighbor bgp-pgrp1 remote-as 500
neighbor bgp-pgrp1 update-source Loopback0
neighbor bgp-pgrp1 version 4
neighbor bgp-pgrp1 next-hop-self
neighbor 11.11.11.11 peer-group bgp-pgrp1
neighbor 22.22.22.22 peer-group bgp-pgrp1
neighbor 33.33.33.33 peer-group bgp-pgrp1
R4#
R3:only advertise LAN network, which is 30.0.0.0. Here R% is added as EBGP neighbor
using loopback address 55.55.55.55 with remote-as 600. Also we need configure ebgp-multihop=2 as we use lookback interface, it takes two hops to reach R5 from R3.
Another important thing is next-hop-self, which says when it advertise route
(e.g. 50.0.0.0) from R5 to R1, R2, R4, it will use 33.33.33.33 as next hop address.
R3#show running-config | s bgp
router bgp 500
bgp log-neighbor-changes
network 30.0.0.0
neighbor bgp-pgrp1 peer-group
neighbor bgp-pgrp1 remote-as 500
neighbor bgp-pgrp1 update-source Loopback0
neighbor bgp-pgrp1 version 4
neighbor bgp-pgrp1 next-hop-self
neighbor 11.11.11.11 peer-group bgp-pgrp1
neighbor 22.22.22.22 peer-group bgp-pgrp1
neighbor 44.44.44.44 peer-group bgp-pgrp1
neighbor 55.55.55.55 remote-as 600
neighbor 55.55.55.55 ebgp-multihop 2
neighbor 55.55.55.55 update-source Loopback0
R3#
R5: only advertise LAN network, which is 50.0.0.0.
R5#show running-config | s bgp
router bgp 600
bgp log-neighbor-changes
network 50.0.0.0
neighbor 33.33.33.33 remote-as 500
neighbor 33.33.33.33 ebgp-multihop 2
neighbor 33.33.33.33 update-source Loopback0
R5#
Check BGP neighor and datebase
R1:
R1#show ip bgp summary
BGP router identifier 11.11.11.11, local AS number 500
BGP table version is 6, main routing table version 6
5 network entries using 700 bytes of memory
5 path entries using 380 bytes of memory
3/3 BGP path/bestpath attribute entries using 408 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1512 total bytes of memory
BGP activity 24/19 prefixes, 34/29 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
22.22.22.22 4 500 124 124 6 0 0 01:49:47 1
33.33.33.33 4 500 125 126 6 0 0 01:50:00 2
44.44.44.44 4 500 125 125 6 0 0 01:49:51 1
R1#show ip bgp
BGP table version is 6, local router ID is 11.11.11.11
Status 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,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
* > 10.0.0.0 0.0.0.0 0 32768 i
r>i 20.0.0.0 22.22.22.22 0 100 0 i
r>i 30.0.0.0 33.33.33.33 0 100 0 i
r>i 40.0.0.0 44.44.44.44 0 100 0 i
* > i 50.0.0.0 33.33.33.33 0 100 0 600 i
R1#
R2:
R2#show ip bgp summary
BGP router identifier 22.22.22.22, local AS number 500
BGP table version is 6, main routing table version 6
5 network entries using 700 bytes of memory
5 path entries using 380 bytes of memory
3/3 BGP path/bestpath attribute entries using 408 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1512 total bytes of memory
BGP activity 22/17 prefixes, 23/18 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
11.11.11.11 4 500 125 125 6 0 0 01:50:41 1
33.33.33.33 4 500 128 126 6 0 0 01:50:41 2
44.44.44.44 4 500 126 126 6 0 0 01:50:41 1
R2#show ip bgp
BGP table version is 6, local router ID is 22.22.22.22
Status 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,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
r>i 10.0.0.0 11.11.11.11 0 100 0 i
* > 20.0.0.0 0.0.0.0 0 32768 i
r>i 30.0.0.0 33.33.33.33 0 100 0 i
r>i 40.0.0.0 44.44.44.44 0 100 0 i
* > i 50.0.0.0 33.33.33.33 0 100 0 600 i
R2#
R3:
R3#show ip bgp summary
BGP router identifier 33.33.33.33, local AS number 500
BGP table version is 6, main routing table version 6
5 network entries using 700 bytes of memory
5 path entries using 380 bytes of memory
3/3 BGP path/bestpath attribute entries using 408 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1512 total bytes of memory
BGP activity 24/19 prefixes, 35/30 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
11.11.11.11 4 500 129 127 6 0 0 01:52:06 1
22.22.22.22 4 500 128 129 6 0 0 01:51:53 1
44.44.44.44 4 500 126 130 6 0 0 01:51:58 1
55.55.55.55 4 600 128 126 6 0 0 01:52:09 1
R3#show ip bgp
BGP table version is 6, local router ID is 33.33.33.33
Status 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,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
r>i 10.0.0.0 11.11.11.11 0 100 0 i
r>i 20.0.0.0 22.22.22.22 0 100 0 i
* > 30.0.0.0 0.0.0.0 0 32768 i
r>i 40.0.0.0 44.44.44.44 0 100 0 i
* > 50.0.0.0 55.55.55.55 0 0 600 i
R3#
R4:
R4#show ip bgp summary
BGP router identifier 44.44.44.44, local AS number 500
BGP table version is 6, main routing table version 6
5 network entries using 700 bytes of memory
5 path entries using 380 bytes of memory
3/3 BGP path/bestpath attribute entries using 408 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1512 total bytes of memory
BGP activity 22/17 prefixes, 23/18 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
11.11.11.11 4 500 128 128 6 0 0 01:52:27 1
22.22.22.22 4 500 128 128 6 0 0 01:52:22 1
33.33.33.33 4 500 131 126 6 0 0 01:52:27 2
R4#show ip bgp
BGP table version is 6, local router ID is 44.44.44.44
Status 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,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
r>i 10.0.0.0 11.11.11.11 0 100 0 i
r>i 20.0.0.0 22.22.22.22 0 100 0 i
r>i 30.0.0.0 33.33.33.33 0 100 0 i
* > 40.0.0.0 0.0.0.0 0 32768 i
* > i 50.0.0.0 33.33.33.33 0 100 0 600 i
R4#
R5:
R5#show ip bgp summary
BGP router identifier 55.55.55.55, local AS number 600
BGP table version is 14, main routing table version 14
5 network entries using 700 bytes of memory
5 path entries using 380 bytes of memory
3/3 BGP path/bestpath attribute entries using 408 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1512 total bytes of memory
BGP activity 26/21 prefixes, 33/28 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
33.33.33.33 4 500 128 129 14 0 0 01:53:17 4
R5#show ip bgp
BGP table version is 14, local router ID is 55.55.55.55
Status 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,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
* > 10.0.0.0 33.33.33.33 0 500 i
* > 20.0.0.0 33.33.33.33 0 500 i
* > 30.0.0.0 33.33.33.33 0 0 500 i
* > 40.0.0.0 33.33.33.33 0 500 i
* > 50.0.0.0 0.0.0.0 0 32768 i
R5#
check routing table and veirify
R1:
R1#show ip route
Codes: 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
+ - replicated route, % - next hop override
Gateway of last resort is not set
1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 1.0.0.0/8 is directly connected, Serial2/0
L 1.1.1.1/32 is directly connected, Serial2/0
O 2.0.0.0/8 [ 110/128] via 1.1.1.2, 04:20:45, Serial2/0
O 3.0.0.0/8 [ 110/128] via 4.4.4.1, 04:20:45, Serial1/0
4.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 4.0.0.0/8 is directly connected, Serial1/0
L 4.4.4.2/32 is directly connected, Serial1/0
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 10.0.0.0/8 is directly connected, Ethernet0/0
L 10.1.1.1/32 is directly connected, Ethernet0/0
11.0.0.0/32 is subnetted, 1 subnets
C 11.11.11.11 is directly connected, Loopback0
O 20.0.0.0/8 [ 110/74] via 1.1.1.2, 04:20:45, Serial2/0
22.0.0.0/32 is subnetted, 1 subnets
O 22.22.22.22 [ 110/65] via 1.1.1.2, 04:16:17, Serial2/0
O 30.0.0.0/8 [ 110/138] via 4.4.4.1, 04:20:45, Serial1/0
[ 110/138] via 1.1.1.2, 04:20:45, Serial2/0
33.0.0.0/32 is subnetted, 1 subnets
O 33.33.33.33 [ 110/129] via 4.4.4.1, 04:15:35, Serial1/0
[ 110/129] via 1.1.1.2, 04:15:35, Serial2/0
O 40.0.0.0/8 [ 110/74] via 4.4.4.1, 04:20:45, Serial1/0
44.0.0.0/32 is subnetted, 1 subnets
O 44.44.44.44 [ 110/65] via 4.4.4.1, 04:14:42, Serial1/0
B 50.0.0.0/8 [ 200/0] via 33.33.33.33, 01:53:05
R1#
R1#ping 50.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 50.1.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent ( 0/5)
R1#ping 50.1.1.1 source 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 50.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
!!!!!
Success rate is 100 percent ( 5/5) , round-trip min/avg/max = 24/26/32 ms
R1#
R2:
R2#show ip route
Codes: 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
+ - replicated route, % - next hop override
Gateway of last resort is not set
1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 1.0.0.0/8 is directly connected, Serial2/0
L 1.1.1.2/32 is directly connected, Serial2/0
2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 2.0.0.0/8 is directly connected, Serial1/0
L 2.2.2.1/32 is directly connected, Serial1/0
O 3.0.0.0/8 [ 110/128] via 2.2.2.2, 04:23:05, Serial1/0
O 4.0.0.0/8 [ 110/128] via 1.1.1.1, 04:23:15, Serial2/0
O 10.0.0.0/8 [ 110/74] via 1.1.1.1, 04:23:15, Serial2/0
11.0.0.0/32 is subnetted, 1 subnets
O 11.11.11.11 [ 110/65] via 1.1.1.1, 04:19:22, Serial2/0
20.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 20.0.0.0/8 is directly connected, Ethernet0/0
L 20.1.1.1/32 is directly connected, Ethernet0/0
22.0.0.0/32 is subnetted, 1 subnets
C 22.22.22.22 is directly connected, Loopback0
O 30.0.0.0/8 [ 110/74] via 2.2.2.2, 04:23:05, Serial1/0
33.0.0.0/32 is subnetted, 1 subnets
O 33.33.33.33 [ 110/65] via 2.2.2.2, 04:17:56, Serial1/0
O 40.0.0.0/8 [ 110/138] via 2.2.2.2, 04:23:05, Serial1/0
[ 110/138] via 1.1.1.1, 04:23:05, Serial2/0
44.0.0.0/32 is subnetted, 1 subnets
O 44.44.44.44 [ 110/129] via 2.2.2.2, 04:17:03, Serial1/0
[ 110/129] via 1.1.1.1, 04:17:03, Serial2/0
B 50.0.0.0/8 [ 200/0] via 33.33.33.33, 01:55:25
R2#
R3:
R3#show ip route
Codes: 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
+ - replicated route, % - next hop override
Gateway of last resort is not set
O 1.0.0.0/8 [ 110/128] via 2.2.2.1, 04:23:46, Serial1/0
2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 2.0.0.0/8 is directly connected, Serial1/0
L 2.2.2.2/32 is directly connected, Serial1/0
3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 3.0.0.0/8 is directly connected, Serial2/0
L 3.3.3.1/32 is directly connected, Serial2/0
O 4.0.0.0/8 [ 110/128] via 3.3.3.2, 04:23:36, Serial2/0
5.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 5.0.0.0/8 is directly connected, Serial3/0
L 5.5.5.1/32 is directly connected, Serial3/0
6.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 6.6.6.0/24 is directly connected, Serial4/0
L 6.6.6.1/32 is directly connected, Serial4/0
O 10.0.0.0/8 [ 110/138] via 3.3.3.2, 04:23:36, Serial2/0
[ 110/138] via 2.2.2.1, 04:23:46, Serial1/0
11.0.0.0/32 is subnetted, 1 subnets
O 11.11.11.11 [ 110/129] via 3.3.3.2, 04:19:54, Serial2/0
[ 110/129] via 2.2.2.1, 04:19:54, Serial1/0
O 20.0.0.0/8 [ 110/74] via 2.2.2.1, 04:23:46, Serial1/0
22.0.0.0/32 is subnetted, 1 subnets
O 22.22.22.22 [ 110/65] via 2.2.2.1, 04:19:10, Serial1/0
30.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 30.0.0.0/8 is directly connected, Ethernet0/0
L 30.1.1.1/32 is directly connected, Ethernet0/0
33.0.0.0/32 is subnetted, 1 subnets
C 33.33.33.33 is directly connected, Loopback0
O 40.0.0.0/8 [ 110/74] via 3.3.3.2, 04:23:36, Serial2/0
44.0.0.0/32 is subnetted, 1 subnets
O 44.44.44.44 [ 110/65] via 3.3.3.2, 04:17:35, Serial2/0
B 50.0.0.0/8 [ 20/0] via 55.55.55.55, 01:56:03
55.0.0.0/32 is subnetted, 1 subnets
S 55.55.55.55 [ 1/0] via 5.5.5.2
R3#
R4:
R4#show ip route
Codes: 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
+ - replicated route, % - next hop override
Gateway of last resort is not set
O 1.0.0.0/8 [ 110/128] via 4.4.4.2, 04:24:36, Serial2/0
O 2.0.0.0/8 [ 110/128] via 3.3.3.1, 04:24:46, Serial1/0
3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 3.0.0.0/8 is directly connected, Serial1/0
L 3.3.3.2/32 is directly connected, Serial1/0
4.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 4.0.0.0/8 is directly connected, Serial2/0
L 4.4.4.1/32 is directly connected, Serial2/0
O 10.0.0.0/8 [ 110/74] via 4.4.4.2, 04:24:36, Serial2/0
11.0.0.0/32 is subnetted, 1 subnets
O 11.11.11.11 [ 110/65] via 4.4.4.2, 04:20:55, Serial2/0
O 20.0.0.0/8 [ 110/138] via 4.4.4.2, 04:24:36, Serial2/0
[ 110/138] via 3.3.3.1, 04:24:46, Serial1/0
22.0.0.0/32 is subnetted, 1 subnets
O 22.22.22.22 [ 110/129] via 4.4.4.2, 04:20:11, Serial2/0
[ 110/129] via 3.3.3.1, 04:20:11, Serial1/0
O 30.0.0.0/8 [ 110/74] via 3.3.3.1, 04:24:46, Serial1/0
33.0.0.0/32 is subnetted, 1 subnets
O 33.33.33.33 [ 110/65] via 3.3.3.1, 04:19:29, Serial1/0
40.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 40.0.0.0/8 is directly connected, Ethernet0/0
L 40.1.1.1/32 is directly connected, Ethernet0/0
44.0.0.0/32 is subnetted, 1 subnets
C 44.44.44.44 is directly connected, Loopback0
B 50.0.0.0/8 [ 200/0] via 33.33.33.33, 01:56:58
R4#
R5:
R5#show ip route
Codes: 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
+ - replicated route, % - next hop override
Gateway of last resort is not set
5.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 5.0.0.0/8 is directly connected, Serial1/0
L 5.5.5.2/32 is directly connected, Serial1/0
6.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 6.6.6.0/24 is directly connected, Serial2/0
L 6.6.6.2/32 is directly connected, Serial2/0
B 10.0.0.0/8 [ 20/0] via 33.33.33.33, 01:54:11
B 20.0.0.0/8 [ 20/0] via 33.33.33.33, 01:54:11
B 30.0.0.0/8 [ 20/0] via 33.33.33.33, 01:54:42
33.0.0.0/32 is subnetted, 1 subnets
S 33.33.33.33 [ 1/0] via 5.5.5.1
B 40.0.0.0/8 [ 20/0] via 33.33.33.33, 01:54:11
50.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C 50.0.0.0/8 is directly connected, Ethernet0/0
L 50.1.1.1/32 is directly connected, Ethernet0/0
55.0.0.0/32 is subnetted, 1 subnets
C 55.55.55.55 is directly connected, Loopback0
R5#
Some highlights:
For R1, R2, R3, R4, with BGP in place, BGP adds a new route for 50.0.0.0/8 network on top of OSPF routes.
The next hop of 50.0.0.0 is 33.33.33.33, which is R3 loopback 0 IP, which is very important, as we don’t need to know WAN IP of R5, which is usually not available as it belongs to another AS/organization.
When we try to ping 50.1.1.1 from R1, it fails without specify soure IP. This is because the default source IP of packet will be R1 WAN IP which is eith 1.1.1.1 or 4.4.4.2, which are not advetized to R5 (outsider), so it couldn’t reply ping packet. Howerver if we specify source IP as LAN (10.0.0.0) of R1, ping works, because R5 has route to 10.0.0.0, the next hop is 33.33.33.33, which R3. From R3, it surely knows how to get to R1 through OSPF route. Very nice!
BGP is kind of simple but very powerful. It was started for ipv4 only, then later it gets extended to support mutiple protocol like ipv6, L2VPN, L3VPN, called as MP-BGP. It is backward compatible though. One of very popular use is in MPLS VPN network. MP-BGP is configured in PE routers to form iBGP, support vpnv4/vpnv6 address, so that PEs can exchange prefixes info needed by MPLS VPN, e.g. RD, labels etc. A good example can be found here .
Reference: BGP youtube video:
BGP Video By Sikandar Shaik