Thursday 20 April 2017

DMVPN Part III. BGP over DMVPN WAN

Introduction

In this article, I am going to set up BGP routing over the dual homed DMVPN WAN. Why I use BGP and not some other routing protocol (OSPF, ISIS, RIP, EIGRP)? I want to use route summarization and advance, centralized route filtering. OSPF does not full fill these requirements. It is a Link State routing protocol and all routers within the OSPF area must have identical Link State Database. This means that route filtering and summarization can only be done between areas, not inside the area. The other Link State routing protocol IS-IS is not supported with DMVPN, so it is also out of the question. RIP is a Hop Count routing protocol and we could use it if we want to implement a very simple routing. However, I want to use advanced, centralized routing policy, so RIP is not my choice. Then we have two vector based protocols; EIGRP (distance vector) and BGP (path vector). These are the “de facto” routing protocols for routing over the DMVPN WAN and I could pick either one. However, I prefer BGP as a WAN routing protocol, so that is why I am going to use it in my example.

In our example topology (figure 1), we have two sites:

Central Site: We have edge routers S1R1 and S1R2, with two virtual Routing Instance (VRF); default and front-door VRFs. Physical interfaces 3 and 4 on both routers belong to default VRF and also participates in OSPF Area 0. Both routers S1R1 and S1R2 have also tunnel interfaces, Tunnel11 and Tunnel12 respectively that belongs to the default VRF. Internal BGP peering between the Central site and Remote site runs between Tunnel interfaces. Physical Interface 2 in both edge routers belongs to front-door VRF, which is a termination point for the WAN connection. There is no iBGP peering between routers S1R1 and S1R2. Both edge routers are BGP route-Reflectors. Router S1R3 has four networks attached to it (172.16.0.0/24, 172.16.1.0/24, 172.16.2.0/24 and 172.16.3.0/24). We advertise these networks via OSPF as well as the default route.  It also has an Interface Looback1000 with address 10.28.158.1, which we are going to use for testing a default route. Network 10.28.158.0/24 is not advertised with OSPF.


Branch Site: We only have one router in Branch Site. There are two Tunnel Interfaces and one LAN interface, which all belongs to default VRF. There are two front-door VRFs, one for the MPLS connection and one for the Internet connection. Note that Interface towards the Internet gets its IP address via DHCP from the router INET-R112.




Figure 1: Physical topology and IP addressing.


Basic BGP setup

Step-1: BGP peering:
Both Central site routers use dynamic BGP peering, where the local BGP process listens incoming BGP connections (TCP 179) from remote peers. We are going to set up the peer limit to 10. Since we use iBGP between the Central site and Remote site and there might be several Remote sites (even though we only have one), both routers S1R1 and S1R2 are BGP route-reflectors. We are going to use “next-hop-self all” command because BGP does not change the next hop address for iBGP prefix by default. “Soft reconfiguration inbound” command is used because we want to be able to run inbound BGP filter without resetting BGP. By the way, the main reason for using iBGP instead of eBGP is that I want to be able to build the stable, template-based configuration for both Central site and Remote sites routers. If we use eBGP, we should have different AS number for each site. It means that the BGP configuration would be different in each Remote site. We could, of course, use the same AS number in all remote sites, but then we need special configurations on route-reflectors, other vice routing update include a route from another Spoke site will not be installed to received Spoke routers BGP table due to same AS number (BGP loop prevention mechanism).

Step-2: summary route + default route from Central site to Remote site:
Since we use network clause for summary and default route, we need to have an exact match for the summary networks in a routing table, so we create the static Null0 route. The default route is installed into the routing table from the OSPF process.

Step-3: Advertising connected network from the Remote site to the Central site.
We just use “redistribute connected” command under the BGP address-family ipv4.

Step-4: Redistribution from BGP to OSPF in Central site.
BGP does not redistribute internal BGP routes into IGP by default, so in addition to BGP to OSPF redistribution under the OSPF process, we need to use “bgp redistribute-internal” command under the “BGP address-family ipv4” configuration.

Router S1R1 BGP configuration
S1R1
router ospf 1
 redistribute bgp 64501 subnets
!
router bgp 64501
 bgp log-neighbor-changes
 bgp listen range 10.11.21.0/24 peer-group SPOKE-ROUTERS
 bgp listen limit 10
 neighbor SPOKE-ROUTERS peer-group
 neighbor SPOKE-ROUTERS remote-as 64501
 neighbor SPOKE-ROUTERS timers 20 60
 !
 address-family ipv4
  bgp redistribute-internal
  network 0.0.0.0
  network 172.16.0.0 mask 255.255.252.0
  neighbor SPOKE-ROUTERS activate
  neighbor SPOKE-ROUTERS send-community
  neighbor SPOKE-ROUTERS route-reflector-client
  neighbor SPOKE-ROUTERS next-hop-self all
  neighbor SPOKE-ROUTERS soft-reconfiguration inbound
 exit-address-family
!
ip route 172.16.0.0 255.255.252.0 null 0

Router S2R1 BGP configuration.
S2R1#
router bgp 64501
 bgp log-neighbor-changes
 neighbor HUB-MPLS peer-group
 neighbor HUB-MPLS remote-as 64501
 neighbor HUB-INET peer-group
 neighbor HUB-INET remote-as 64501
 neighbor 10.11.21.11 peer-group HUB-MPLS
 neighbor 10.12.21.12 peer-group HUB-INET
 !
 address-family ipv4
  redistribute connected
  neighbor HUB-MPLS send-community
  neighbor HUB-MPLS next-hop-self all
  neighbor HUB-MPLS soft-reconfiguration inbound
  neighbor HUB-INET send-community
  neighbor HUB-INET next-hop-self all
  neighbor HUB-INET soft-reconfiguration inbound
  neighbor 10.11.21.11 activate
  neighbor 10.12.21.12 activate
 exit-address-family

Now we should be able to ping from the router S2R1 to the router S1R3.
S2R1#ping 10.28.158.1 source 172.16.21.21
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.28.158.1, timeout is 2 seconds:
Packet sent with a source address of 172.16.21.21
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/6/12 ms
S2R1#

Looks great, we have a connection. We still have two issues here!

First: Suboptimal routing.
Let’s log in to the router S1R1 and take a trace to address 172.16.21.21 behind S2R1.
S1R1#traceroute 172.16.21.21
Type escape sequence to abort.
Tracing the route to 172.16.21.21
VRF info: (vrf in name/id, vrf out name/id)
  1 10.11.12.12 25 msec 2 msec 2 msec
  2 10.12.21.21 5 msec 3 msec *


As we can see, this is not the data path that we were expecting. Instead of using best path over the tunnel11, S1R1 sent packets S1R2 and from there over the Tunnel12 to S2R1. Let’s take a look to the RIB of S1R1. It has a route learned via OSPF from the router S1R2 and not via BGP from the router S2R1.

S1R1#sh ip route | i 172.16.21.0
O E2     172.16.21.0/24 [110/1] via 10.11.12.12, 01:02:59, GigabitEthernet3

What about S1R2? It has learned the route to network 172.16.21.0/24 from S2R1 via BGP which is correct.
S1R2#sh ip route | i 172.16.21.0
B        172.16.21.0/24 [200/0] via 10.12.21.21, 02:12:4

So what has happened? In figure 2 we can see that router S2R1 redistributes connected networks to the BGP at time=T1. Both routers receive BGP update at time=T2. The update goes through routers BGP Input Policy Engines and BGP Decision processes and then both routers install route into RIB.  Router S1R2 processes BGP update just a little bit faster than router S1R1 and it sends an OSPF LSA about 172.16.21.0/24 at time=T3. Router S1R1 receives OSPF LSA. Since the Administrative Distance (AD) of OSPF is 110 and iBGP AD is 200, router S1R1 replaces the routing entry learned from iBGP with the route learned from OSPF.




Figure 2.

Solution: We change the AD of iBGP routes to be better than AD of OSPF in every BGP router. We will change eBGP AD from 20 to 200, iBGP and Local BGP (locally injected) routes from 200 to 19. Then we reload the RIB with command “clear ip route *”.

Router bgp 64501
 Address-family ipv4
  distance bgp 200 19 19

clear ip route *


Now S1R1 use route learned via BGP instead via OSPF.
S1R1#sh ip route | i 172.16.21. 
B        172.16.21.0/24 [19/0] via 10.11.21.21, 00:02:38

The reason for changing also the AD of eBGP from its default 20 to 200 is that we want to protect internal routes learned from DMVPN domain from routes learned via eBGP outside the DMVPN domain. For example, if both sites peers with Cloud Provider (Figure 3) and Remote site router S2R1 advertise network 172.16.21.0/24 to Cloud Provider via eBGP. Central site router S1R1 might receive an eBGP update from the router CPR1 and accept it if Cloud Proved hides origin AS Path 64501. If tunnel between S1R1 and S2R1 goes down, router S1R1 still has two possible routes to network 172.16.21.0/24, route received from OSPF (AD 110) and route received eBGP (AD 20). It will install the eBGP route to the RIB because of better AD of eBGP. In this situation, data path will be asymmetric; data sourced from 172.16.21.0/24 to S1R1 goes over the DMVPN WAN and data path sourced from S1R1 to 172.16.21.0/24 goes through the Cloud Provider network. This is what we want to prevent by changing also the AD of eBGP.





Figure 3.

Second: Tunnel addresses.

If we look at the routers S1R1 routing table, we can see that it has an entry for the Tunnel12 network.
S1R1#sh ip route bgp
<snipped>
      10.0.0.0/8 is variably subnetted, 10 subnets, 3 masks
B        10.12.21.0/24 [19/0] via 10.11.21.21, 00:11:03
      172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks
B        172.16.21.0/24 [19/0] via 10.11.21.21, 00:11:03
      192.168.21.0/32 is subnetted, 1 subnets
B        192.168.21.21 [19/0] via 10.11.21.21, 00:11:03

We have the same situation in the router S1R2; it has a routing entry in the RIB for Tunnel11 network.
S1R2#sh ip route bgp
<snipped>
      10.0.0.0/8 is variably subnetted, 10 subnets, 3 masks
B        10.11.21.0/24 [19/0] via 10.12.21.21, 00:11:50
      172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks
B        172.16.21.0/24 [19/0] via 10.12.21.21, 00:11:50
      192.168.21.0/32 is subnetted, 1 subnets
B        192.168.21.21 [19/0] via 10.12.21.21, 00:11:50

We are redistributing BGP routes into OSPF and that is why also router S1R3 has a RIB entry for both Tunnel11 and Tunnel12 networks.
S1R3#sh ip route ospf | i 10.*.21
O E2     10.11.21.0/24 [110/1] via 10.12.13.12, 00:00:57, GigabitEthernet0/2
O E2     10.12.21.0/24 [110/1] via 10.11.13.11, 00:00:57, GigabitEthernet0/1

The reason for this is that we are redistributing connected networks without filtering from S2R1 to BGP, so both Tunnel network are included in BGP updates. We could inject routes with “network” command on S2R1, but then we have one more router specific configuration for Remote site routers and that is what we want to avoid.

Solution: We will use route-map to filter Tunnel networks from redistribution in router S2R1.

route-map CONNECTED-TO-BGP deny 10
 description ** Do not advertise Tunnel interfaces to BGP **
 match interface Tunnel11 Tunnel12
!
route-map CONNECTED-TO-BGP permit 100
!
Router bgp 64501
 address-family ipv4
   redistribute connected route-map CONNECTED-TO-BGP

clear ip bgp * soft out

There are no BGP learned Tunnel networks in edge routers RIB anymore.

S1R1#sh ip route bgp
<snipped>
      172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks
B        172.16.21.0/24 [19/0] via 10.11.21.21, 00:24:22
      192.168.21.0/32 is subnetted, 1 subnets
B        192.168.21.21 [19/0] via 10.11.21.21, 00:24:22

S1R2#sh ip route bgp
<snipped>
      172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks
B        172.16.21.0/24 [19/0] via 10.12.21.21, 00:25:14
      192.168.21.0/32 is subnetted, 1 subnets
B        192.168.21.21 [19/0] via 10.12.21.21, 00:25:14

One thing about summary route 172.16.0.0/22 generated by Central site routers. Networks included into the summary network are behind the router S1R3. In case that router S1R3 fails, both routers S1R1 and S1R2 continues advertising the summary route to S2R1. We can change this by creating the tracking object in both routers S1R1 and S1R2 to track the reachability of the loopback0 192.168.13.13 of router S1R3. Then we create the static Null0 route for the summary network, which is installed into the RIB only if the tracking object status is UP. We do not have to track the default route since in situation where S1R3 fails, routers S1R1 and S1R2 will remove default route learned via OSPF from their RIB. We have set up the AD of the static route to 254 to make sure that Null0 route does not override summary routes if it is learned from another source via dynamic routing.

track 3 ip route 192.168.13.13 255.255.255.255 reachability
!
ip route 172.16.0.0 255.255.252.0 Null0 254 track 3

Now we going to test track by shutting down the loopback0 interface on S1R3.

Tracking state change from UP to DOWN and both routers S1R1 and S1R2 removes the summary route from their RIB and then they send BGP withdrawn message to router S2R1.
S1R1#   
%TRACK-6-STATE: 3 ip route 192.168.13.13/32 reachability Up -> Down

S1R2#
 %TRACK-6-STATE: 3 ip route 192.168.13.13/32 reachability Up -> Down

For the reaction to withdrawn message, router S2R1 removes the summary network from its RIB.
S2R1
del 172.16.0.0 via 10.11.21.11, bgp metric [19/1]
 delete subnet route to 172.16.0.0/22


BGP routing policy

We filtered Tunnel network out from BGP updates on router S2R1 in the previous chapter. Now we are going to do some additional filtering.

BGP filtering and traffic steering

Central site routers S1R1 and S1R2 sends the summary network 172.16.0.0/22 and default route 0.0.0.0/0 to Remote site router S2R1. Router S2R1 should not send BGP update from these networks back to the Central site due to BGP loop prevention mechanism. However, just for the safety reason, we will create policy, which denies these routes from the Remote peer. With the same route-map, we also deny both Tunnel networks, even though router S2R1 does not advertise those due to its own routing policy.

First, we create prefix lists (common configuration for both routers):
ip prefix-list DEFAULT-ROUTE seq 10 permit 0.0.0.0/0
ip prefix-list DMVPN-T11 seq 10 permit 10.11.21.0/24
ip prefix-list DMVPN-T12 seq 10 permit 10.12.21.0/24
ip prefix-list SITE1-INTERNAL-PREFIX seq 10 permit 172.16.0.0/22

Then we will create route map, where we deny unwanted networks and permits everything else.
route-map FROM-MPLS-SPOKE deny 10
 match ip address prefix-list SITE1-INTERNAL-PREFIX
!
route-map FROM-MPLS-SPOKE deny 20
 match ip address prefix-list DEFAULT-ROUTE
!
route-map FROM-MPLS-SPOKE deny 30
 match ip address prefix-list DMVPN-T11
!
route-map FROM-MPLS-SPOKE deny 40
 match ip address prefix-list DMVPN-T12
!
route-map FROM-MPLS-SPOKE permit 50

Then we will set up ingress filter towards router S2R1
router bgp 64501
 address-family ipv4
  neighbor SPOKE-ROUTERS route-map FROM-MPLS-SPOKE in

clear ip bgp * so in

Figure 4 shows our current BGP routing policy.

Figure 4.

As can be seen from figure 4, outgoing BGP updates are not filtered in Central sites routers. We will create an outgoing route-map that permits only default and summary routes. Since we want that Remote site uses DMVPN over MPLS as the primary path to the Central site, we set the Local-Preference to 10000 on router S1R1 and to 1000 on router S1R2. In addition to Local-Preference, we will also add BGP community value 64501:111 to default route and community value 64501:11 to summary network on router S1R1. We also add BGP community value 64501:112 to default route and community value 64501:12 to summary network on router S1R2. Communities can be used for site-specific traffic steering later.

Router S1R1 configuration
route-map TO-MPLS-SPOKE permit 10
 match ip address prefix-list SITE1-INTERNAL-PREFIX
 set local-preference 10000
 set community 64501:11
!
route-map TO-MPLS-SPOKE permit 30
 match ip address prefix-list DEFAULT-ROUTE
 set local-preference 10000
 set community 64501:111
!
router bgp 64501
 address-family ipv4
  neighbor SPOKE-ROUTERS route-map TO-MPLS-SPOKE out


Now we have BGP policy described in Figure 5.

Figure 5.

From the BGP table of S2R1, we can see that it has received routing update about network 172.16.0.0/22 from both Central site routers with correct Local-Preference and community value. Since S1R1 update has a better Local-Preference, router S2R1 select it as the best route.

S2R1#sh ip bgp 172.16.0.0
BGP routing table entry for 172.16.0.0/22, version 6
Paths: (2 available, best #2, table default)
  Not advertised to any peer
  Refresh Epoch 1
  Local, (received & used)
    10.12.21.12 from 10.12.21.12 (192.168.12.12)
      Origin IGP, metric 1, localpref 1000, valid, internal
      Community: 64501:12
      rx pathid: 0, tx pathid: 0
  Refresh Epoch 2
  Local, (received & used)
    10.11.21.11 from 10.11.21.11 (192.168.11.11)
      Origin IGP, metric 0, localpref 10000, valid, internal, best
      Community: 64501:11
      rx pathid: 0, tx pathid: 0x0

So what is the purpose of community values? The remote site uses centrally advertised Local-Preference for the best path selection. However, we might have a situation, where the primary path is congested only on one remote site while other sites do not have any problems. In this situation, we need to do site specific traffic steering, which overrides centrally controlled policy. One possible approach is to use community-based solution, where the Local-Preference is changed locally based on community values received via BGP updates. For example, default route received from S1R2 has community 64501:12. We can change the Local-Preference for all routes with that community to be higher than Local-preference received from S1R1. This moves only the Internet traffic to the secondary path and leaves the business critical traffic to the primary path.

We have defined the BGP policy between the Central and Remote site for primary and backup link selection so far. We can now test connectivity from the router S1R3 to the router S2R1.
S1R3#traceroute 172.16.21.21
Type escape sequence to abort.
Tracing the route to 172.16.21.21
VRF info: (vrf in name/id, vrf out name/id)
  1 10.11.13.11 3 msec
    10.12.13.12 3 msec
    10.11.13.11 3 msec
  2 10.12.21.21 5 msec
    10.11.21.21 7 msec
    10.12.21.21 5 msec

Ok, this is not what we wanted, every second packet is sent to S1R1 and every second packet to S1R2, hence S1R3 is load-balancing traffic over two equal cost path. As we can see from S1R3 RIB, it has two entry about network 172.16.21.0/0 in its RIB with equal metric 1 to the destination.

S1R3#sh ip route 172.16.21.0
Routing entry for 172.16.21.0/24
  Known via "ospf 1", distance 110, metric 1, type extern 2, forward metric 1
  Last update from 10.11.13.11 on GigabitEthernet0/1, 00:10:09 ago
  Routing Descriptor Blocks:
  * 10.12.13.12, from 192.168.12.12, 00:29:20 ago, via GigabitEthernet0/2
      Route metric is 1, traffic share count is 1
    10.11.13.11, from 192.168.11.11, 00:10:09 ago, via GigabitEthernet0/1
      Route metric is 1, traffic share count is 1

We can fix this by redistributing routes from BGP to OSPF with better (smaller) metric on router S1R1 than on router S1R2. We are going to use route-map, which sets the metric for redistributed routes to 100 on router S1R1 and to 1000 on router S1R2. On the same route-map, we are also going to deny default route and our local route to be redistributed from BGP into OSPF. In addition to metric modification, we also change the metric type to type-1 because we want that routes redistributed from DMVPN WAN are preferred over the routes redistributed from some other source (default type for redistributed routes is Type-2).

Router S1R1 configuration. Note that prefix-lists already exists on both edge routers.
ip prefix-list DEFAULT-ROUTE seq 10 permit 0.0.0.0/0
!        
ip prefix-list SITE1-INTERNAL-PREFIX seq 10 permit 172.16.0.0/22
!
!
route-map BGP-to-OSPF deny 10
 match ip address prefix-list SITE1-INTERNAL-PREFIX
!
route-map BGP-to-OSPF deny 30
 match ip address prefix-list DEFAULT-ROUTE
!
route-map BGP-to-OSPF permit 60
 set metric 100
 set metric-type type-1
!
router ospf 1
 redistribute bgp 64501 subnets route-map BGP-to-OSPF

Router S1R2 configuration
ip prefix-list DEFAULT-ROUTE seq 10 permit 0.0.0.0/0
!        
ip prefix-list SITE1-INTERNAL-PREFIX seq 10 permit 172.16.0.0/22
!
!
route-map BGP-to-OSPF deny 10
 match ip address prefix-list SITE1-INTERNAL-PREFIX
!
route-map BGP-to-OSPF deny 30
 match ip address prefix-list DEFAULT-ROUTE
!
route-map BGP-to-OSPF permit 60
 set metric 1000
 set metric-type type-1
!
router ospf 1
 redistribute bgp 64501 subnets route-map BGP-to-OSPF

Now we have only one route to 172.16.21.0/0 in S1R3 RIB learned from S1R1.
S1R3#sh ip route 172.16.21.0
Routing entry for 172.16.21.0/24
  Known via "ospf 1", distance 110, metric 101, type extern 1
  Last update from 10.11.13.11 on GigabitEthernet0/1, 00:10:58 ago
  Routing Descriptor Blocks:
  * 10.11.13.11, from 192.168.11.11, 00:10:58 ago, via GigabitEthernet0/1
      Route metric is 101, traffic share count is 1

Also, the traceroute looks as expected.
S1R3#traceroute 172.16.21.21
Type escape sequence to abort.
Tracing the route to 172.16.21.21
VRF info: (vrf in name/id, vrf out name/id)
  1 10.11.13.11 2 msec 3 msec 3 msec
  2 10.11.21.21 5 msec 5 msec *

If tunnel between routers S1R1 and S2R1 goes down, S1R1 removes 172.16.21.0/24 from its BGP table and start using route learned via OSPF. In this situation router S1R3 receives routing updates from S1R2 with metric 1001 and from S1R1 with metric 1002 and it starts using the link to S1R2.
We test this by shutting down the Tunnel11 interface on S1R1

1R1(config)#int tunn11
S1R1(config-if)#shut
*Mar 22 19:03:42.790: %LINEPROTO-5-UPDOWN: Line protocol on Interface Tunnel11, changed state to down
*Mar 22 19:03:42.791: %LINK-5-CHANGED: Interface Tunnel11, changed state to administratively down

BGP peering is torn down after BGP Hold-down timer expires.
*Mar 22 19:04:41.104: %BGP-3-NOTIFICATION: sent to neighbor *10.11.21.21 4/0 (hold time expired) 0 bytes do sh ip bgp
*Mar 22 19:04:41.105: %BGP_SESSION-5-ADJCHANGE: neighbor *10.11.21.21 IPv4 Unicast topology base removed from session  Neighbor deleted
*Mar 22 19:04:41.105: %BGP-5-ADJCHANGE: neighbor *10.11.21.21 Down BGP Notification sent

And S1R3 updates its RIB. Metric through the router S1R2 is now 1001.
S1R3#
*Mar 22 17:53:27.034: RT: updating ospf 172.16.21.0/24 (0x0)  :
    via 10.12.13.12 Gi0/2  0 1048578
*Mar 22 17:53:27.034: RT: closer admin distance for 172.16.21.0, flushing 1 routes
*Mar 22 17:53:27.035: RT: add 172.16.21.0/24 via 10.12.13.12, ospf metric [110/1001]

When we bring up the interface Tunnel11 on router S1R1, router S1R3 updates its RIB. Metric through the router S1R1 is now 101.
Mar 22 17:57:15.792: RT: updating ospf 172.16.21.0/24 (0x0)  :
    via 10.11.13.11 Gi0/1  0 1048578

*Mar 22 17:57:15.792: RT: closer admin distance for 172.16.21.0, flushing 1 routes
*Mar 22 17:57:15.793: RT: add 172.16.21.0/24 via 10.11.13.11, ospf metric [110/101]

Conclusion

Figure 6 shows the complexity of routing operation. In my first DMVPN post (DMVPN Part I. Basic Operation and Configuration), there is a figure 9, that shows DMVPN complexity. By replacing the “Routing” box with our picture, we have quite complete view about the operation and relationship between different components of DMVPN WAN.

Figure 6.

You may wonder why there is no iBGP peering between routers S1R1 and S1R2. BGP peering between Hub and Remote site are internal, so in case that we wanted to use BGP between Hub site routers S1R1 and S1R2 we need to configure them as Route Reflectors, otherwise, updates are not passed because of the BGP internal loop prevention mechanism. 


Reference:
Cisco Intelligent WAN (iWAN) – ISBN-10: 1-58714-463-8

Brad Edgeworth, Jean Marc Barozet, David Prall, Anthony Lockhart, Nir Ben-Dvora





No comments:

Post a Comment

Note: only a member of this blog may post a comment.