250.15.0, BECAUSE IT WILL NOT SYNC UP WITH OSPF DUETO THE DIFFEREN...
203.250.15.0, because it will not sync up with OSPF due
to the difference in masks. I will also keep sync off on RTB
in order for it to advertise 203.250.13.0 for the same reason.
Let us bring RTB’s s1 up and see what all the routes will look
like. I will also enable OSPF on serial 1 of RTB and make it
passive in order for RTA to know about the nexthop 192.208.10.5
via IGP. Otherwise some looping will occur because in order to
get to nexthop 192.208.10.5 we would have to go the other
way via EBGP. The updated configs of RTA and RTB follow:
RTA#
hostname RTA
ip subnet-zero
interface Loopback0
ip address 203.250.13.41 255.255.255.0
interface Ethernet0
ip address 203.250.14.1 255.255.255.0
interface Serial0
ip address 128.213.63.1 255.255.255.252
router ospf 10
redistribute bgp 100 metric 2000 subnets
passive-interface Serial0
network 203.250.0.0 0.0.255.255 area 0
RTB#
hostname RTB
ip address 203.250.15.2 255.255.255.252
interface Serial1
ip address 192.208.10.6 255.255.255.252
redistribute bgp 100 metric 1000 subnets
passive-interface Serial1
network 192.208.0.0 0.0.255.255 area 0
router bgp 100
no synchronization
network 203.250.15.0
neighbor 192.208.10.5 remote-as 300
neighbor 203.250.13.41 remote-as 100
And the BGP tables look like this:
RTA#sh ip bgp
BGP table version is 117, local router ID is 203.250.13.41
Status codes: s suppressed, d damped, h history, * valid, > best,
i -internal Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 128.213.0.0 128.213.63.2 0 0 200 i
*>i192.208.10.0 192.208.10.5 0 100 0 300 i
*>i195.211.10.0 192.208.10.5 100 0 300 500 i
* 128.213.63.2 0 200 400 500 i
*> 200.200.10.0 128.213.63.2 0 200 400 i
*> 203.250.13.0 0.0.0.0 0 32768 i
*> 203.250.14.0 0.0.0.0 0 32768 i
*>i203.250.15.0 203.250.15.2 0 100 0 i
RTB#sh ip bgp
BGP table version is 12, local router ID is 203.250.15.10
*>i128.213.0.0 128.213.63.2 0 100 0 200 i
* 192.208.10.5 0 300 500 400
200 i
*> 192.208.10.0 192.208.10.5 0 0 300 i
*> 195.211.10.0 192.208.10.5 0 300 500 i
*>i200.200.10.0 128.213.63.2 100 0 200 400 i
* 192.208.10.5 0 300 500 400 i
*>i203.250.13.0 203.250.13.41 0 100 0 i
*>i203.250.14.0 203.250.13.41 0 100 0 i
*> 203.250.15.0 0.0.0.0 0 32768 i
There are multiple ways to design our network to talk to the two
different ISPs AS200 and AS300. One way is to have a primary ISP and a
backup ISP. We could learn partial routes from one of the ISPs and
default routes to both ISPs. In this example, I have chosen to receive
partial routes from AS200 and only local routes from AS300.
Both RTA and RTB are generating default routes into OSPF with RTB
being more preferred (lower metric). This way I could balance outgoing
traffic between the two ISPs.
Potential asymmetry might occur if traffic going out from RTA comes back
via RTB. This might occur if you are using the same pool of IP
addresses (same major net) when talking to the two ISPs. Because of
aggregation your whole AS might look as one whole entity to the
outside world and entry points to your network could occur via RTA
or RTB. You might find out that all incoming traffic to your AS is
coming via one single point even though you have multiple points
to the internet. In our example, I have chosen two different major
nets when talking to the two ISPs.
One other potential reason for asymmetry is the different advertised
path length to reach your AS. One service provider might be closer to
ip address 203.250.14.1 255.255.255.0
network 128.213.0.0 0.0.255.255 area 0
default-information originate metric 2000
network 203.250.13.0
network 203.250.14.0
neighbor 128.213.63.2 remote-as 200
neighbor 128.213.63.2 route-map setlocalpref in
neighbor 203.250.15.2 remote-as 100
neighbor 203.250.15.2 update-source Loopback0
ip classless
ip default-network 200.200.0.0
route-map setlocalpref permit 10
set local-preference 200
On RTA, the local preference for routes coming from AS200 is set
to 200. I have also picked network 200.200.0.0 to be the candidate
default, using the “ip default-network” command.
The “default-information originate” command is used with OSPF to
inject the default route inside the OSPF domain. This command is
also used with ISIS and BGP. For RIP, 0.0.0.0 is automatically
redistributed into RIP without additional configuration. For IGRP
and EIGRP, the default information is injected into the IGP
domain after redistributing BGP into IGRP/EIGRP. Also with
IGRP/EIGRP we can redistribute a static route to 0.0.0.0 into the
IGP domain.
RTF#
hostname RTF
ip address 203.250.14.2 255.255.255.0
ip address 203.250.15.1 255.255.255.252
interface Loopback1
ip address 203.250.15.10 255.255.255.252
!
network 192.208.10.6 0.0.0.0 area 0
default-information originate metric 1000
For RTB, the local preference for updates coming in from AS300 is set
to 300 which is higher than the IBGP updates coming in from RTA. This
way AS100 will pick RTB for AS300’s local routes. Any other routes on
RTB (if they exist) will be sent internally with a local preference of
100 which is lower than 200 coming in from RTA, and this way RTA will be
preferred.
Note that I have only advertised AS300’s local routes. Any path info
that does not match ^300$ will be dropped. If you wanted to advertise
the local routes and the neighbor routes (customers of the ISP) you
can use the following: ^300_[0-9]*
This is the output of the regular expression indicating AS300’s local
routes:
RTB#sh ip bgp regexp ^300$
BGP table version is 14, local router ID is 203.250.15.10
Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal
Origin codes: i - IGP, e - EGP, ? - incomplete
*> 192.208.10.0 192.208.10.5 0 300 0 300
RTC#
hostname RTC
ip address 128.213.63.130 255.255.255.192
interface Serial2/0
ip address 128.213.63.5 255.255.255.252
interface Serial2/1
ip address 128.213.63.2 255.255.255.252
router bgp 200
network 128.213.0.0
aggregate-address 128.213.0.0 255.255.0.0 summary-only
neighbor 128.213.63.1 remote-as 100
neighbor 128.213.63.1 distribute-list 1 out
neighbor 128.213.63.6 remote-as 400
access-list 1 deny 195.211.0.0 0.0.255.255
access-list 1 permit any
On RTC, I have aggregated 128.213.0.0/16 and indicated the specific
routes to be injected into AS100. If the ISP refuses to do this task
then you have to filter on the incoming end of AS100.
RTD#
hostname RTD
ip address 192.208.10.174 255.255.255.192
interface Serial0/0
ip address 192.208.10.5 255.255.255.252
interface Serial0/1
ip address 192.208.10.2 255.255.255.252
router bgp 300
network 192.208.10.0
neighbor 192.208.10.1 remote-as 500
neighbor 192.208.10.6 remote-as 100
RTG#
hostname RTG
ip address 195.211.10.174 255.255.255.192
ip address 192.208.10.1 255.255.255.252
ip address 195.211.10.1 255.255.255.252
router bgp 500
network 195.211.10.0
aggregate-address 195.211.0.0 255.255.0.0 summary-only
neighbor 192.208.10.2 remote-as 300
On RTG, I have demonstrated the use of community filtering by adding a
no-export community to 195.211.0.0 updates towards RTD. This way RTD
will not export that route to RTB. It doesn’t matter in our case because
RTB is not accepting these routes anyway.
RTE#
hostname RTE
ip address 200.200.10.1 255.255.255.0
ip address 195.211.10.2 255.255.255.252
ip address 128.213.63.6 255.255.255.252
router bgp 400
network 200.200.10.0
aggregate-address 200.200.0.0 255.255.0.0 summary-only
neighbor 128.213.63.5 remote-as 200
neighbor 195.211.10.1 remote-as 500
RTE is aggregating 200.200.0.0/16.
And following are the final bgp and routing tables for RTA, RTF and RTB:
BGP table version is 21, local router ID is 203.250.13.41
*> 128.213.0.0 128.213.63.2 0 200 0 200 i
*>i192.208.10.0 192.208.10.5 0 300 0 300 i
*> 200.200.0.0/16 128.213.63.2 200 0 200 400 i
RTA#sh ip rou
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
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
Gateway of last resort is 128.213.63.2 to network 200.200.0.0