BGP Basic Labs
BGP Basic Labs
Emanuele Mazza
CCIE 11957
[email protected]
www.linkedin.com/in/emanuelemazza
Presentation_ID
Cisco Confidential
Objective
These lab examples are not meant to demonstrate
proper or realistic BGP configurations, nor does it
include all the necessary commands to ensure proper
routing operation.
The objective of these examples are to show some of
the basic BGP configuration commands and their affect
on a network, including wrong configurations or
misconfigurations.
Hopefully this series of configurations and outputs will
help explain the how BGP is implemented and its
operation.
Our Scenario
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Lo0
AS200
RIP
version 2
192.168.1.32/27
Why IBGP?
.33
.194 SanJose3 .198
S0
S1
192.168.1.192/30
192.168.1.196/30
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
In order for the boundary routers SanJose1 and SanJose2 to exchange BGP routes that
they learn from ISP1 and ISP2 respectively, they must do one of the following:
Redistribution Not recommended!
Redistribute from BGP into the IGP (RIPv2) so those routes get propagated to the
other boundary router.
Redistribute from IGP (RIPv2) to BGP to learn routes from the other boundary
router or the use of BGP network statements.
Disadvantages: Can be a lot of routes being injected into the IGP; may also
require the use of route filters so not all routes are injected into the IGP or back4 out
to the other ISP.
Lo0
AS200
RIP
version 2
192.168.1.32/27
Why IBGP?
.33
.194 SanJose3 .198
S0
S1
192.168.1.192/30
192.168.1.196/30
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
In order for the boundary routers SanJose1 and SanJose2 to exchange BGP
routes that they learn from ISP1 and ISP2 respectively, they must do one of the
following:
IBGP
This allows the boundary routers to share EBGP routes without the
redistributing via an IGP.
Requires:
Synchronization: Cant advertise via EBGP if the boundary router
doesnt have it in its IGP routing table because the other IGP routers
will drop it. (Can turn this off if fully meshed IBGP or non-transit AS!)
5
Must know how to reach the next hop address of the route. (example
coming!)
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Setup
RIPv2 running within AS200
10.1.0.0/24 is between SanJose1 and ISP1s 10.2.0.0/24 networks,
both of which are part of 10.0.0.0/8 classful network.
RIPv2 was chosen because this will create a different situation than
with the two different Class B networks between SanJose2 and ISP2.
7
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
Successful
pings
ISP1
.1
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Results:
AS 200 Boundary (SanJose1 and SanJose2) routers can ping peer ISP
networks
AS 200 Boundary (SanJose1 and SanJose2) routers can NOT ping
opposite ISP networks (SanJose1 can not ping 172.16.1.1)
ISP routers (ISP1 and ISP2) can ping remote peers attached networks
only, NOT SanJose3 network (we will see why in a moment).
9
ISP1
router bgp 100
network 10.2.0.0 mask 255.255.255.0
neighbor 10.1.0.2 remote-as 200
ISP2
router bgp 300
network 172.16.0.0
neighbor 172.30.1.2 remote-as 200
SanJose3
router rip
version 2
network 192.168.1.0
SanJose1
router rip
version 2
network 192.168.1.0
!
router bgp 200
network 192.168.1.0
neighbor 10.1.0.1 remote-as 100
SanJose2
router rip
version 2
network 192.168.1.0
!
router bgp 200
network 192.168.1.0
neighbor 172.30.1.1 remote-as 300
10
ISP1#show ip route
C
C
B
10.0.0.0/24 is
10.2.0.0 is
10.1.0.0 is
192.168.1.0/24
subnetted, 2 subnets
directly connected, Loopback0
directly connected, Serial0
[20/0] via 10.1.0.2, 00:25:16
ISP1#show ip bgp
Network
Next Hop
Metric LocPrf Weight Path
*> 10.2.0.0/24
0.0.0.0
0
32768 i
*> 192.168.1.0
10.1.0.2
0
0 200 i
-----------------------------------------------------------------------ISP2#show ip route
C
C
B
ISP2#show ip bgp
Network
*> 172.16.0.0
*> 192.168.1.0
Next Hop
0.0.0.0
172.30.1.2
11
SanJose1#show ip route
B
C
R
C
R
C
R
SanJose1#show ip bgp
Network
*> 10.2.0.0/24
*> 192.168.1.0
Next Hop
10.1.0.1
0.0.0.0
Status codes - Status of the table entry. The status is displayed at the beginning of each line in the table. It can be one
of the following values:
> The table entry is the best entry to use for that network.
i The table entry was learned via an internal BGP (iBGP) session
12
SanJose2#show ip route
B
C
C
R
R
R
C
SanJose2#show ip bgp
Network
*> 172.16.0.0
*> 192.168.1.0
Next Hop
172.30.1.1
0.0.0.0
13
SanJose3#show ip route
R
R
C
C
C
SanJose3 does not have a route to the ISP networks or the networks
between the ISPs and the Boundary routers, so the ICMP Echo
Replies fail.
SanJose3 does not get any routes from the boundary routers except
IGP routes.
There are no BGP routes redistributed into the IGP and SanJose3 is
not IBGP peering with any BGP speakers.
14
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
IBGP
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
IBGP
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Results:
AS 200 Boundary routers can ping peer ISP networks
AS 200 Boundary routers can NOT ping opposite ISP networks
ISP routers can ping remote peers attached networks only, NOT SanJose3
network
Synchronization is on, The BGP synchronization rule states that if an AS
provides transit service to another AS, BGP should not advertise a route until all
of the routers within the AS have learned about the route via an IGP. The
16
boundary routers do not forward the opposite ISP routes because the other
routers in the AS do not know about it.
ISP1
router bgp 100
network 10.2.0.0 mask 255.255.255.0
neighbor 10.1.0.2 remote-as 200
ISP2
router bgp 300
network 172.16.0.0
neighbor 172.30.1.2 remote-as 200
SanJose3
router rip
version 2
network 192.168.1.0
SanJose1
router rip
version 2
network 192.168.1.0
!
router bgp 200
network 192.168.1.0
neighbor 10.1.0.1 remote-as 100
neighbor 192.168.1.197 remote-as 200
SanJose2
router rip
version 2
network 192.168.1.0
!
router bgp 200
network 192.168.1.0
neighbor 172.30.1.1 remote-as 300
neighbor 192.168.1.193 remote-as 200
17
SanJose1#show ip route
Next Hop
10.1.0.1
172.30.1.1
0.0.0.0
192.168.1.197
SanJose2#show ip route
B
C
C
R
R
R
C
SanJose2#show ip bgp
Network
Next Hop
* i10.2.0.0/24
10.1.0.1
*> 172.16.0.0
172.30.1.1
* i192.168.1.0
192.168.1.193
*>
0.0.0.0
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
IBGP
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
Synchronization
IBGP
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
When an IBGP router receives an update about a destination from an IBGP peer, it tries
to verify reachability to that destination via an IGP, such as RIP or OSPF.
If the IBGP router cant find the destination network in its IGP routing table, it will not
advertise the destination to other BGP peers.
If the route is not reachable through the IGP running within the AS, non-BGP routers
will not be able to route traffic passing through the AS towards this destination.
It is pointless to advertise destinations to external peers if traffic sent through this AS is
going to be dropped by some non-BGP router within the AS anyway.
Synchronization can be safely turned off on border routers:
When all transit routers inside the AS are running fully meshed IBGP.
When the AS is not a transit AS.
21
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
IBGP
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Results:
By itself, this will not change the reachability issues, because we have
not resolved the problem with the boundary routers being able to reach
the next-hop interface (SanJose1 still can not reach 172.30.1.1).
We will make another change in a moment.
Later, we might see that creating a full-mesh IBGP domain might not be
the best configuration choice.
22
ISP1
router bgp 100
network 10.2.0.0 mask 255.255.255.0
neighbor 10.1.0.2 remote-as 200
ISP2
router bgp 300
network 172.16.0.0
neighbor 172.30.1.2 remote-as 200
SanJose3
router rip
version 2
network 192.168.1.0
!
router bgp 200
no synchronization
neighbor 192.168.1.193 remote-as 200
neighbor 192.168.1.197 remote-as 200
SanJose1
router rip
version 2
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 10.1.0.1 remote-as 100
neighbor 192.168.1.194 remote-as 200
neighbor 192.168.1.197 remote-as 200
!
SanJose2
router rip
version 2
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 172.30.1.1 remote-as 300
neighbor 192.168.1.193 remote-as 200
neighbor 192.168.1.198 remote-as 200
23
SanJose1#show ip route
Same Problem
Next Hop
10.1.0.1
172.30.1.1
0.0.0.0
192.168.1.197
SanJose2#show ip route
B
C
C
R
R
R
C
Same Problem
SanJose2#show ip bgp
Network
Next Hop
* i10.2.0.0/24
10.1.0.1
*> 172.16.0.0
172.30.1.1
* i192.168.1.0
192.168.1.193
*>
0.0.0.0
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
Complete
reachability
IBGP
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
Step #4 Adding the networks between the boundary routers and the ISP
routers to the RIP routing domain.
EBGP is configured between ISP routers and AS200 boundary routers.
RIPv2 is running within AS200, including the 10.0.0.0 and 172.30.0.0 network
statements and passive interfaces.
IBGP is configured between SanJose1, SanJose2 and SanJose3, full-mesh.
No synchronization has been configured on all IBGP routers.
There are no static routes.
26
ISP1
router bgp 100
network 10.2.0.0 mask 255.255.255.0
neighbor 10.1.0.2 remote-as 200
ISP2
router bgp 300
network 172.16.0.0
neighbor 172.30.1.2 remote-as 200
SanJose3
router rip
version 2
network 192.168.1.0
!
router bgp 200
no synchronization
neighbor 192.168.1.193 remote-as 200
neighbor 192.168.1.197 remote-as 200
SanJose1
router rip
version 2
passive-interface Serial0/1
network 10.0.0.0
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 10.1.0.1 remote-as 100
neighbor 192.168.1.194 remote-as 200
neighbor 192.168.1.197 remote-as 200
SanJose2
router rip
version 2
passive-interface Serial0/1
network 172.30.0.0
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 172.30.1.1 remote-as 300
neighbor 192.168.1.193 remote-as 200
27 200
neighbor 192.168.1.198 remote-as
SanJose1#show ip route
B
172.16.0.0/16 [200/0] via 172.30.1.1, 00:17:56
R
172.30.0.0/16 [120/2] via 192.168.1.194, 00:00:20, Serial0/0
10.0.0.0/24 is subnetted, 2 subnets
B
10.2.0.0 [20/0] via 10.1.0.1, 00:17:50
C
10.1.0.0 is directly connected, Serial0/1
192.168.1.0/24 is variably subnetted, 5 subnets, 2 masks
R
192.168.1.96/27 [120/2] via 192.168.1.194, 00:00:20, Serial0/0
C
192.168.1.64/27 is directly connected, Loopback0
R
192.168.1.32/27 [120/1] via 192.168.1.194, 00:00:20, Serial0/0
C
192.168.1.192/30 is directly connected, Serial0/0
R
192.168.1.196/30 [120/1] via 192.168.1.194, 00:00:20, Serial0/0
SanJose1#show ip bgp
Network
Next Hop
*> 10.2.0.0/24
10.1.0.1
*>i172.16.0.0
172.30.1.1
*> 192.168.1.0
0.0.0.0
* i
192.168.1.197
Now that the networks between the ISPs and the boundary routers are
being propagated by RIP, the boundary routers now have a route to the
BGP next hops.
Because of this the BGP routes to the opposite ISP network is
28
reachable and in the routing table.
SanJose2#show ip route
B
172.16.0.0/16 [20/0] via 172.30.1.1, 00:21:51
172.30.0.0/24 is subnetted, 1 subnets
C
172.30.1.0 is directly connected, Serial0/1
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
B
10.2.0.0/24 [200/0] via 10.1.0.1, 00:21:40
R
10.0.0.0/8 [120/2] via 192.168.1.198, 00:00:03, Serial0/0
192.168.1.0/24 is variably subnetted, 5 subnets, 2 masks
C
192.168.1.96/27 is directly connected, Loopback0
R
192.168.1.64/27 [120/2] via 192.168.1.198, 00:00:03, Serial0/0
R
192.168.1.32/27 [120/1] via 192.168.1.198, 00:00:03, Serial0/0
R
192.168.1.192/30 [120/1] via 192.168.1.198, 00:00:03, Serial0/0
C
192.168.1.196/30 is directly connected, Serial0/0
SanJose2#show ip bgp
Network
Next Hop
*>i10.2.0.0/24
10.1.0.1
*> 172.16.0.0
172.30.1.1
* i192.168.1.0
192.168.1.193
*>
0.0.0.0
Not only is the 10.2.0.0 network reachable, but the 10.0.0.0/8 classful
network, which includes 10.1.0.0/24. This will come into play in a moment.
The BGP route to the opposite ISP network is reachable and in the
29
routing table.
SanJose3#show ip route
B
R
B
R
R
R
C
B
C
C
SanJose3#show ip bgp
Network
*>i10.2.0.0/24
*>i172.16.0.0
*>i192.168.1.0
* i
Next Hop
10.1.0.1
172.30.1.1
192.168.1.193
192.168.1.197
ISP1#show ip route
B
C
C
B
ISP1#show ip bgp
Network
*> 10.2.0.0/24
*> 172.16.0.0
*> 192.168.1.0
Next Hop
0.0.0.0
10.1.0.2
10.1.0.2
31
ISP2#show ip route
C
C
B
B
ISP2#show ip bgp
Network
*> 10.2.0.0/24
*> 172.16.0.0
*> 192.168.1.0
Next Hop
172.30.1.2
0.0.0.0
172.30.1.2
Path
200 100 i
i
200 i
32
SanJose1#ping 172.16.1.1
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 84/84/84
SanJose1#ping 10.2.0.1
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/28/28
------------------------------------SanJose3#ping 172.16.1.1
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/56/56
SanJose3#ping 10.2.0.1
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/56/60
--------------------------------------SanJose2#ping 172.16.1.1
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/28/32
SanJose2#ping 10.2.0.1
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 84/84/84
ms
ms
ms
ms
ms
ms
33
ISP2#ping 10.2.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
34
ISP2#show ip route
172.16.0.0/24 is subnetted, 1 subnets
C
172.16.1.0 is directly connected, Loopback0
172.30.0.0/24 is subnetted, 1 subnets
C
172.30.1.0 is directly connected, Serial0/0
10.0.0.0/24 is subnetted, 1 subnets
B
10.2.0.0 [20/0] via 172.30.1.2, 00:23:09
B
192.168.1.0/24 [20/0] via 172.30.1.2, 00:23:09
ISP2#show ip bgp
Network
*> 10.2.0.0/24
*> 172.16.0.0
*> 192.168.1.0
Next Hop
172.30.1.2
0.0.0.0
172.30.1.2
Path
200 100 i
i
200 i
ISP1#show ip route
B
172.16.0.0/16 [20/0] via 10.1.0.2, 00:15:14
10.0.0.0/24 is subnetted, 2 subnets
C
10.2.0.0 is directly connected, Loopback0
C
10.1.0.0 is directly connected, Serial0
B
192.168.1.0/24 [20/0] via 10.1.0.2, 00:15:14
ISP1#show ip bgp
Network
*> 10.2.0.0/24
*> 172.16.0.0
*> 192.168.1.0
Next Hop
0.0.0.0
10.1.0.2
10.1.0.2
ISP2 does have a route to 10.2.0.0 and ISP1 has a route to 172.16.0.0
The ping uses a source IP address of 172.30.1.1 and ISP1 does NOT have a route
35
back to this destination address. (This also applies to pings from ISP1.)
Extended pings with a reachable source IP address will work!
ISP2#ping
Protocol [ip]:
Target IP address: 10.2.0.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 172.16.1.1
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 108/112/116 ms
ISP2 does have a route to 10.2.0.0 and ISP1 has a route to 172.16.0.0
The ping uses a source IP address of 172.30.1.1 and ISP1 does NOT have
a route back to this destination address. (This also applies to pings from
ISP1.)
Extended pings with a reachable source IP address will work!
36
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
IBGP
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
ISP1
router bgp 100
network 10.2.0.0 mask 255.255.255.0
neighbor 10.1.0.2 remote-as 200
ISP2
router bgp 300
network 172.16.0.0
neighbor 172.30.1.2 remote-as 200
SanJose3
router rip
version 2
network 192.168.1.0
!
no router bgp 200
SanJose1
router rip
version 2
passive-interface Serial0/1
network 10.0.0.0
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 10.1.0.1 remote-as 100
neighbor 192.168.1.197 remote-as 200
SanJose2
router rip
version 2
passive-interface Serial0/1
network 172.30.0.0
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 172.30.1.1 remote-as 300
neighbor 192.168.1.193 remote-as 200
38
Results
SanJose3 does NOT have a route to 172.16.0.0 on ISP2.
SanJose3 does have a route to 10.0.0.0 on ISP1 only because
SanJose1 is propagating its 10.1.0.0/24 subnet, so it has a route to the
classful 10.0.0.0 network.
SanJose3 does NOT have the specific ISP networks in its routing table
so it may drop packets as it is passed through between SanJose1 and
SanJose2.
SanJose1 and SanJose2 can NOT reach the opposite ISP2s
172.16.1.1 because SanJose3 does not have a route to 172.16.0.0
on ISP1.
However, SanJose1, SanJose2 and SanJose3 can reach ISP1s
10.2.0.1 because RIP is sending the 10.0.0.0 classful route which
includes the serial link between SJ1 and ISP1.
ISPs They will NOT be able to ping each other, because SJ3 has a
route for the 10.0.0.0 network but NOT for the 172.16.0.0 network, thus
pings from ISP2 to ISP1 will get to ISP2 but the replies will get dropped
by SJ3 as it does not have a route for 172.16.0.0.
39
ISP1#show ip route
B
C
C
B
ISP1#show ip bgp
Network
*> 10.2.0.0/24
*> 172.16.0.0
*> 192.168.1.0
Next Hop
0.0.0.0
10.1.0.2
10.1.0.2
ISP1#ping 192.168.1.33
Sending 5, 100-byte ICMP Echos to 192.168.1.33, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/56/60 ms
ISP1#ping 172.16.1.1
40
SanJose1#show ip route
B
172.16.0.0/16 [200/0] via 172.30.1.1, 00:35:40
R
172.30.0.0/16 [120/2] via 192.168.1.194, 00:00:04, Serial0/0
10.0.0.0/24 is subnetted, 2 subnets
B
10.2.0.0 [20/0] via 10.1.0.1, 00:40:06
C
10.1.0.0 is directly connected, Serial0/1
192.168.1.0/24 is variably subnetted, 5 subnets, 2 masks
R
192.168.1.96/27 [120/2] via 192.168.1.194, 00:00:04, Serial0/0
C
192.168.1.64/27 is directly connected, Loopback0
R
192.168.1.32/27 [120/1] via 192.168.1.194, 00:00:04, Serial0/0
C
192.168.1.192/30 is directly connected, Serial0/0
R
192.168.1.196/30 [120/1] via 192.168.1.194, 00:00:05, Serial0/0
SanJose1#show ip bgp
Network
Next Hop
*> 10.2.0.0/24
10.1.0.1
*>i172.16.0.0
172.30.1.1
* i192.168.1.0
192.168.1.197
*>
0.0.0.0
SanJose1#ping 10.2.0.1
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/28/32 ms
SanJose1#ping 172.16.1.1
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
41
SanJose3#show ip route
R
172.30.0.0/16 [120/1] via 192.168.1.197, 00:00:25, Serial0/1
R
10.0.0.0/8 [120/1] via 192.168.1.193, 00:00:06, Serial0/0
192.168.1.0/24 is variably subnetted, 5 subnets, 2 masks
R
192.168.1.96/27 [120/1] via 192.168.1.197, 00:00:25, Serial0/1
R
192.168.1.64/27 [120/1] via 192.168.1.193, 00:00:06, Serial0/0
C
192.168.1.32/27 is directly connected, Loopback0
Wheres
C
192.168.1.192/30 is directly connected, Serial0/0
C
192.168.1.196/30 is directly connected, Serial0/1
172.16.0.0?
SanJose3#ping 10.2.0.1
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/56/60 ms
SanJose3#ping 172.16.1.1
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
SanJose2#show ip route
B
172.16.0.0/16 [20/0] via 172.30.1.1, 00:43:13
172.30.0.0/24 is subnetted, 1 subnets
C
172.30.1.0 is directly connected, Serial0/1
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
B
10.2.0.0/24 [200/0] via 10.1.0.1, 00:38:57
R
10.0.0.0/8 [120/2] via 192.168.1.198, 00:00:04, Serial0/0
192.168.1.0/24 is variably subnetted, 5 subnets, 2 masks
C
192.168.1.96/27 is directly connected, Loopback0
R
192.168.1.64/27 [120/2] via 192.168.1.198, 00:00:04, Serial0/0
R
192.168.1.32/27 [120/1] via 192.168.1.198, 00:00:05, Serial0/0
R
192.168.1.192/30 [120/1] via 192.168.1.198, 00:00:05, Serial0/0
C
192.168.1.196/30 is directly connected, Serial0/0
Again,this
looks fine for
SJ2, but
172.16.0.0 does
NOT exist on
SJ3.
SanJose2#show ip bgp
Network
Next Hop
*>i10.2.0.0/24
10.1.0.1
*> 172.16.0.0
172.30.1.1
* i192.168.1.0
192.168.1.193
*>
0.0.0.0
SanJose2#ping 10.2.0.1
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 84/84/84 ms
SanJose2#ping 172.16.1.1
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/29/32 ms
43
ISP2#show ip route
172.16.0.0/24 is subnetted, 1 subnets
C
172.16.1.0 is directly connected, Loopback0
172.30.0.0/24 is subnetted, 1 subnets
C
172.30.1.0 is directly connected, Serial0/0
10.0.0.0/24 is subnetted, 1 subnets
B
10.2.0.0 [20/0] via 172.30.1.2, 00:44:58
B
192.168.1.0/24 [20/0] via 172.30.1.2, 00:49:15
ISP2#show ip bgp
Network
Next Hop
*> 10.2.0.0/24
172.30.1.2
*> 172.16.0.0
0.0.0.0
*> 192.168.1.0
172.30.1.2
ISP2#ping 10.2.0.1
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
ISP2#ping 192.168.1.65
Sending 5, 100-byte ICMP Echos to 192.168.1.65, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 84/84/88 ms
44
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
SanJose1
.2 S1
10.1.0.0/24
S0 .1
ISP1
.1
Complete
reachability
IBGP
S0
.197
.97
SanJose2
.2 S1
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
ISP1
router bgp 100
network 10.2.0.0 mask 255.255.255.0
neighbor 10.1.0.2 remote-as 200
ISP2
router bgp 300
network 172.16.0.0
neighbor 172.30.1.2 remote-as 200
SanJose3
router rip
version 2
network 192.168.1.0
SanJose1
router rip
version 2
passive-interface Serial0/1
network 10.0.0.0
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 10.1.0.1 remote-as 100
neighbor 192.168.1.197 remote-as 200
SanJose2
router rip
version 2
redistribute bgp 200 metric 2
passive-interface Serial0/1
network 172.30.0.0
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 172.30.1.1 remote-as 300
neighbor 192.168.1.193 remote-as 200
!
46
SanJose2#show ip route
As before.
B
172.16.0.0/16 [20/0] via 172.30.1.1, 01:22:20
172.30.0.0/24 is subnetted, 1 subnets
C
172.30.1.0 is directly connected, Serial0/1
10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
B
10.2.0.0/24 [200/0] via 10.1.0.1, 01:18:04
R
10.0.0.0/8 [120/2] via 192.168.1.198, 00:00:21, Serial0/0
192.168.1.0/24 is variably subnetted, 5 subnets, 2 masks
C
192.168.1.96/27 is directly connected, Loopback0
R
192.168.1.64/27 [120/2] via 192.168.1.198, 00:00:21, Serial0/0
R
192.168.1.32/27 [120/1] via 192.168.1.198, 00:00:21, Serial0/0
R
192.168.1.192/30 [120/1] via 192.168.1.198, 00:00:21, Serial0/0
C
192.168.1.196/30 is directly connected, Serial0/0
SanJose2#show ip bgp
BGP table version is 4, local router ID is 192.168.1.97
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network
*>i10.2.0.0/24
*> 172.16.0.0
* i192.168.1.0
*>
SanJose2#
Next Hop
10.1.0.1
172.30.1.1
192.168.1.193
0.0.0.0
ISP2#show ip route
172.16.0.0/24 is subnetted, 1 subnets
C
172.16.1.0 is directly connected, Loopback0
172.30.0.0/24 is subnetted, 1 subnets
C
172.30.1.0 is directly connected, Serial0/0
10.0.0.0/24 is subnetted, 1 subnets
B
10.2.0.0 [20/0] via 172.30.1.2, 01:19:44
B
192.168.1.0/24 [20/0] via 172.30.1.2, 01:24:01
ISP2#show ip bgp
Network
Next Hop
*> 10.2.0.0/24
172.30.1.2
*> 172.16.0.0
0.0.0.0
*> 192.168.1.0
172.30.1.2
As before.
48
SanJose3#show ip route
R
R
R
SanJose3 now has a route for 172.16.0.0 which was redistributed into
RIP by SanJose2.
This gives us the rest of the connectivity we need.
10.0.0.0 network was already in SanJose2s routing table because
SanJose1s has a RIP network 10.0.0.0 statement.
Remember 10.2.0.0 and 10.1.0.0 belong to this classful network.
49
SanJose1#show ip route
R
R
Next Hop
10.1.0.1
172.30.1.1
192.168.1.197
0.0.0.0
ISP1#show ip route
B
C
C
B
As before.
ISP1#show ip bgp
Network
*> 10.2.0.0/24
*> 172.16.0.0
*> 192.168.1.0
Next Hop
0.0.0.0
10.1.0.2
10.1.0.2
51
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
IBGP
SanJose1
.2 S1
ISP1
.1
.197
.97
SanJose2
.2 S1
10.1.0.0/24
S0 .1
S0
172.30.1.0/24
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
What if we did not want to redistribute the serial networks between the boundary routers and the ISPs
into our rip network.
network What would be the consequences? How could we fix them?
Eventually, for ISP1 to reach ISP2 we will use next-hop attribute.
SanJose1 can ping 172.16.1.1. We will see that SanJose1 has an IGP route to 172.16.0.0 as this was
redistributed by SanJose2 from BGP into rip, so it can ping 172.16.1.1. However, the 172.16.0.0 route
in the BGP routing table shows a next hop of 172.30.1.1, in which SanJose1 does not have a route for.
Because BGP does not have a route for the next hop, it does not include this route in its update to its
EBGP peer, ISP1.
ISP2 does have a route to ISP1s 10.2.0.0/24 network because RIP is advertising the classful 10.0.0.0
network which includes the serial link between ISP1 and SanJose1. However, it can NOT ping it52
because the reply can NOT get back as explained in the previous paragraph.
ISP1
router bgp 100
network 10.2.0.0 mask 255.255.255.0
neighbor 10.1.0.2 remote-as 200
ISP2
router bgp 300
network 172.16.0.0
neighbor 172.30.1.2 remote-as 200
SanJose3
router rip
version 2
network 192.168.1.0
SanJose1
router rip
version 2
redistribute bgp 200 metric 2
passive-interface Serial0/1
no network 10.0.0.0
network 192.168.1.0
router bgp 200
no synchronization
network 192.168.1.0
neighbor 10.1.0.1 remote-as 100
neighbor 192.168.1.197 remote-as 200
SanJose2
router rip
version 2
redistribute bgp 200 metric 2
passive-interface Serial0/1
no network 172.30.0.0
network 192.168.1.0
router bgp 200
no synchronization
network 192.168.1.0
neighbor 172.30.1.1 remote-as 300
neighbor 192.168.1.193 remote-as 200
53
!
ISP1#show ip route
C
C
B
10.0.0.0/24 is
10.2.0.0 is
10.1.0.0 is
192.168.1.0/24
ISP1#show ip bgp
Network
*> 10.2.0.0/24
*> 192.168.1.0
subnetted, 2 subnets
directly connected, Loopback0
directly connected, Serial0
[20/0] via 10.1.0.2, 00:08:34
ISP1#ping 192.168.1.97
Sending 5, 100-byte ICMP Echos to 192.168.1.97, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 84/84/84 ms
ISP1#ping
Protocol [ip]:
Target IP address: 172.16.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
ISP1#ping 172.30.1.1
54
SanJose1#show ip route
R
55
SanJose3#show ip route
R
R
SanJose2#show ip route
B
C
B
R
C
R
R
R
C
SanJose2#show ip bgp
sends
10.2.0.0 to ISP2 via
EBGP because Next
hop of 10.1.0.1 is
reachable, as part of
the 10.0.0.0/8 net.
Network
Next Hop
Metric LocPrf Weight Path
*>i10.2.0.0/24
10.1.0.1
0
100
0 100 i
*> 172.16.0.0
172.30.1.1
0
0 300 i
* i192.168.1.0
192.168.1.193
0
100
0 i
*>
0.0.0.0
0
32768 i
RIP redistributed the
SanJose2#ping 10.2.0.1
Sending 5, 100-byte ICMP Echos to 10.2.0.1, timeout is 2 seconds:
entire classful
!!!!!
10.0.0.0/8 network.
Success rate is 100 percent (5/5), round-trip min/avg/max = 84/84/84 ms
SanJose2#ping 172.16.1.1
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/29/32 ms
57
ISP2#show ip route
C
C
B
B
ISP2#show ip bgp
Network
Next Hop
*> 10.2.0.0/24
172.30.1.2
*> 172.16.0.0
0.0.0.0
*> 192.168.1.0
172.30.1.2
ISP2#ping
Protocol [ip]:
Target IP address: 10.2.0.1
.....
Success rate is 0 percent (0/5)
Path
200 100 i
i
200 i
58
Lo0
AS200
RIP
version 2
192.168.1.32/27
.33
192.168.1.64/27
Lo0
EBGP
.65
.193 S0
IBGP
SanJose1
.2 S1
10.1.0.0/24
.197
.97
SanJose2
.2 S1
172.30.1.0/24
S0 .1
ISP1
.1
Complete
reachability
S0
192.168.1.96/27
Lo0
EBGP
.1 S0
ISP2
.1
10.2.0.0/24
Lo0
172.16.1.0/24
Lo0
AS100
AS300
EBGP routes carried into IBGP use the external EBGP next hop. SanJose1s BGP
table has 172.30.1.1 as the next hop for 172.16.0.0/16, but does not have a route to
172.30.1.1, so it does not forward this route to ISP1.
BGP Path Selection: If the path specifies a next hop that is inaccessible, drop the
update. (coming)
Lets change the next hop to be the internal IBGP next hop.
IBGP peers SanJose1 and SanJose2 will use next-hop self in peering with each
other. This will change to next hops from the EBGP next hop to the internal IBGP
next hop.
59
All works!!!
ISP1
router bgp 100
network 10.2.0.0 mask 255.255.255.0
neighbor 10.1.0.2 remote-as 200
ISP2
router bgp 300
network 172.16.0.0
neighbor 172.30.1.2 remote-as 200
SanJose3
router rip
version 2
network 192.168.1.0
SanJose1
router rip
version 2
redistribute bgp 200 metric 2
passive-interface Serial0/1
no network 10.0.0.0 (from before)
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 10.1.0.1 remote-as 100
neighbor 192.168.1.197 remote-as 200
neighbor 192.168.1.197 next-hop-self
SanJose2
router rip
version 2
redistribute bgp 200 metric 2
passive-interface Serial0/1
no network 172.30.0.0 (from before)
network 192.168.1.0
!
router bgp 200
no synchronization
network 192.168.1.0
neighbor 172.30.1.1 remote-as 300
neighbor 192.168.1.193 remote-as 200
neighbor 192.168.1.193 next-hop-self
!
60
ISP1#show ip route
B
C
C
B
Looks good!
ISP1#show ip bgp
Network
*> 10.2.0.0/24
*> 172.16.0.0
*> 192.168.1.0
Next Hop
0.0.0.0
10.1.0.2
10.1.0.2
ISP1#ping 192.168.1.33
Sending 5, 100-byte ICMP Echos to 192.168.1.33, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 56/56/60 ms
ISP1#ping
Protocol [ip]:
Target IP address: 172.16.1.1
Extended commands [n]: y
Source address or interface: 10.2.0.1
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 108/111/112 ms
ISP1#
61
Next Hop
10.1.0.1
192.168.1.197
192.168.1.197
0.0.0.0
SanJose3#show ip route
R
R
R
R
C
C
C
63
SanJose2#show ip bgp
Network
*>i10.2.0.0/24
*> 172.16.0.0
* i192.168.1.0
*>
Next Hop
192.168.1.193
172.30.1.1
192.168.1.193
0.0.0.0
Emanuele Mazza
CCIE 11957
[email protected]
www.linkedin.com/in/emanuelemazza
Presentation_ID
Cisco Confidential
65