How to configure Spoke-Hub-Hub-Spoke (SHHS) Setup


This article discusses Spoke-Hub-Hub-Spoke (SHHS) configuration via Versa Director GUI. Topology A is referred in doing the SHHS configuration. In Spoke-Hub-Hub-Spoke setup, there are three different transport domain(Networks) connecting the topology.  Transport Domain id 30 for SPOKE1& SPOKE2  to HUB1(MPLS1), Transport Domain id 20 HUB1 to HUB2 (Internet) connectivity and Transport Domain id 35 for  SPOKE3& SPOKE 4 to HUB2 (MPLS2). Controller reachability is  via Hub only (Refer  KB for Controller behind HUB setup). There is no direct communication between two spokes of different spoke group. HUB1 and HUB2 will act as transit for communication between two different spoke groups

Setup Details


Pre-requisite

· Versa director and Controller already deployed. Should be aware of Workflow Template and Branch On boarding.

Configuration

1. Configuring Hub1 Template

 

cid:image001.png@01D4EE2C.5F7C4B60

 

 cid:image002.png@01D4EE2C.8F52FFA0




Follow work flow template to created  Device Configuration > Workflow>Devices> + Add Device and Device Group for HUB1 staging

2. Configuring Hub 2 Template







Follow work flow template to create  Device 

3. Configure Hub to install routes from peer Hub and advertise to their Spoke Groups

·     Hub1



§  There is already a redistribution policy created by workflow “To-DUN-SubOrg-LAN-VR-Export”, configured in LAN-VR and called in LAN-Export-VR to export BGP routes from LAN-VR to LAN-Export-VR on HUB1. 

§  These routes are advertise by HUB1 from LAN-Export-VR as next hop-self  to controller(RR, but this can cause a routing loop as HUB1 will be advertising HUB2 and its spoke group routes as self. 

§  To avoid this we will add one more term to redistribution policy “To-DUN-SubOrg-LAN-VR-Export” in DUN-SubOrg-LAN-VR to match routes learned via Hub2 and add specific community when exporting them to LAN-Export-VR of HUB1.

§  First we will create a prefix list to match the HUB2 routes. 



§  In redistribution policy To-DUN-SubOrg-LAN-VR-Export add on more term(PEER-HUB) on top and call the prefix-list PEER-HUB. You can also uses Community/Extended Community in place of Prefix Filter.



§  Add a community in action and accept. We have set community 8889:1 for HUB2 routes in HUB1 (On HUB2 set it to 8880:1 for HUB1 routes


cid:image043.png@01D4EE33.D1DF4480


§  In routing instance DUN-SubOrg-Control-VR on Hub1 edit  BGP> Import-From-SDWAN-policy and add a term(Reject-Loop) on top to reject the Hub1 and it spoke(1/2) group routes exported by Hub2.

§  We will use community configured on HUB2 for HUB1 routes to match and reject them.




· HUB 2

§  On Hub2, follow similar step as we did in Hub1. Add VRF import target of Hub1to Install the Hub1 advertised routes in Hub2 LAN-VR. 



§  Set specific community to HUB1 route when exporting to LAN-Export-VR.


cid:image049.png@01D4EE3C.B5345060

 cid:image050.png@01D4EE3C.B5345060



§  Reject the Hub2 and it spoke group routes exported by Hub1



4. Configure Hub to be transit for Spoke and Controller Communication.

5. Configuring Spoke Groups




6. Configuring Spoke Templates






7. To configure the Spoke 3 & Spoke 4






8. Reachability Validation

#HUB1: 

“LAN-VR”  and “LAN-VR-Export” in HUB will have routes for spoke subnets. Hub will act as transit router  for all spoke to spoke communication.

admin@HUB1-cli> show route routing-instance DUN-SubOrg-LAN-VR-Export

Prot   Type  Dest Address/Mask   Next-hop        Age      Interface name

----   ----  -----------------   --------        ---      --------------

BGP    RTI  +192.168.77.0/24     0.0.0.0         2d23h10m Indirect

BGP    RTI  +192.168.88.0/24     0.0.0.0         2d23h10m Indirect

BGP    RTI  +192.168.99.0/24     0.0.0.0         2d23h11m Indirect

BGP    RTI  +192.168.109.0/24    0.0.0.0         2d23h11m Indirect

BGP    RTI  +192.168.129.0/24    0.0.0.0         2d23h11m Indirect

 admin@HUB1-cli> show route routing-instance DUN-SubOrg-LAN-VR

Prot   Type  Dest Address/Mask   Next-hop        Age      Interface name

----   ----  -----------------   --------        ---      --------------

conn   N/A  +169.254.0.2/31      0.0.0.0         2d23h20m tvi-0/603.0

local  N/A  +169.254.0.3/32      0.0.0.0         2d23h20m directly connected

conn   N/A  +192.168.56.0/24     0.0.0.0         2d23h11m vni-0/2.0

local  N/A  +192.168.56.1/32     0.0.0.0         2d23h11m directly connected

BGP    N/A  +192.168.77.0/24     10.4.64.103     2d23h11m Indirect

BGP    N/A  +192.168.88.0/24     10.4.64.105     2d23h11m Indirect

BGP    N/A  +192.168.99.0/24     10.4.64.106     2d23h11m Indirect

BGP    N/A  +192.168.109.0/24    10.4.64.106     2d23h11m Indirect

BGP    N/A  +192.168.129.0/24    10.4.64.106     2d23h11m Indirect

admin@HUB1-cli> show interfaces brief

tvi-0/16.0   n/a                up     up     2       DUN-SubOrg-Control-VR   10.4.0.104/32

tvi-0/17.0   n/a                up     up     2       DUN-SubOrg-Control-VR   10.4.64.104/32

tvi-0/602.0  n/a                up     up     2       INT-Transport-VR        169.254.0.2/31

tvi-0/603.0  n/a                up     up     2       DUN-SubOrg-LAN-VR       169.254.0.3/31

tvi-0/604.0  n/a                up     up     2       INT-Transport-VR        169.254.0.4/31

tvi-0/605.0  n/a                up     up     2       MPLS-HUB1-Transport-VR  169.254.0.5/31

vni-0/0.0    52:54:00:ac:f4:70  up     up     2       INT-Transport-VR        192.168.50.10/24

vni-0/1.0    52:54:00:df:7f:3b  up     up     2       MPLS-HUB1-Transport-VR  192.168.51.10/24

vni-0/2.0    52:54:00:a3:cd:d0  up     up     2       DUN-SubOrg-LAN-VR       192.168.56.1/24 


 #SPOKE1:

Spoke1 will have all route  with next hop as hub1 tvi-0/17 (.104)

admin@SPOKE1-cli> show route routing-instance DUN-SubOrg-LAN-VR

Prot   Type  Dest Address/Mask   Next-hop        Age      Interface name

----   ----  -----------------   --------        ---      --------------

BGP    N/A  +192.168.56.0/24     10.4.64.104     2d23h06m Indirect

conn   N/A  +192.168.77.0/24     0.0.0.0         5d15h16m vni-0/2.10

local  N/A  +192.168.77.1/32     0.0.0.0         5d15h16m directly connected

BGP    N/A  +192.168.88.0/24     10.4.64.104     2d23h06m Indirect

BGP    N/A  +192.168.99.0/24     10.4.64.104     2d23h06m Indirect

BGP    N/A  +192.168.109.0/24    10.4.64.104     2d23h06m Indirect

BGP    N/A  +192.168.129.0/24    10.4.64.104     2d23h06m Indirect 


admin@SPOKE1-cli> show interfaces brief

tvi-0/16.0  n/a                up     up     2       DUN-SubOrg-Control-VR  10.4.0.103/32

tvi-0/17.0  n/a                up     up     2       DUN-SubOrg-Control-VR  10.4.64.103/32

vni-0/1.0   52:54:00:1a:9b:e6  up     up     2       SG-MPLS1-Transport-VR  192.168.71.1/24

vni-0/2.10  52:54:00:e8:96:34  up     up     2       DUN-SubOrg-LAN-VR      192.168.77.1/24 


#SPOKE2:

Similarly spoke2 will have all route   with  next hop as hub1 tvi-0/17 (.104)

admin@SPOKE2-cli> show route routing-instance DUN-SubOrg-LAN-VR

Prot   Type  Dest Address/Mask   Next-hop        Age      Interface name

----   ----  -----------------   --------        ---      --------------

BGP    N/A  +192.168.56.0/24     10.4.64.104     2d23h08m Indirect

BGP    N/A  +192.168.77.0/24     10.4.64.104     2d23h08m Indirect

conn   N/A  +192.168.88.0/24     0.0.0.0         5d15h22m vni-0/2.0

local  N/A  +192.168.88.1/32     0.0.0.0         5d15h22m directly connected

BGP    N/A  +192.168.99.0/24     10.4.64.104     2d23h08m Indirect

BGP    N/A  +192.168.109.0/24    10.4.64.104     2d23h08m Indirect

BGP    N/A  +192.168.129.0/24    10.4.64.104     2d23h08m Indirect


admin@SPOKE2-cli> show interfaces brief

tvi-0/16.0  n/a                up     up     2       DUN-SubOrg-Control-VR  10.4.0.105/32

tvi-0/17.0  n/a                up     up     2       DUN-SubOrg-Control-VR  10.4.64.105/32

vni-0/1.0   52:54:00:4b:65:2f  up     up     2       SG-MPLS1-Transport-VR  192.168.81.1/24

vni-0/2.0   52:54:00:26:f0:e4  up     up     2       DUN-SubOrg-LAN-VR      192.168.88.1/24 


#HUB2: 

“LAN-VR”  and “LAN-VR-Export” in HUB will have routes for spoke subnets. Hub will act as transit router  for all spoke to spoke communication.

admin@HUB1-cli> show route routing-instance DUN-SubOrg-LAN-VR-Export

Prot   Type  Dest Address/Mask   Next-hop        Age      Interface name

----   ----  -----------------   --------        ---      --------------

BGP    RTI  +192.168.56.0/24     0.0.0.0         2d23h22m Indirect

BGP    RTI  +192.168.77.0/24     0.0.0.0         2d23h22m Indirect

BGP    RTI  +192.168.88.0/24     0.0.0.0         2d23h22m Indirect

BGP    RTI  +192.168.109.0/24    0.0.0.0         2d23h37m Indirect

BGP    RTI  +192.168.129.0/24    0.0.0.0         2d23h35m Indirect

 

admin@HUB1-cli> show route routing-instance DUN-SubOrg-LAN-VR

Prot   Type  Dest Address/Mask   Next-hop        Age      Interface name

----   ----  -----------------   --------        ---      --------------

BGP    N/A  +192.168.56.0/24     10.4.64.104     2d23h22m Indirect

BGP    N/A  +192.168.77.0/24     10.4.64.104     2d23h22m Indirect

BGP    N/A  +192.168.88.0/24     10.4.64.104     2d23h22m Indirect

conn   N/A  +192.168.99.0/24     0.0.0.0         2d23h42m vni-0/2.0

local  N/A  +192.168.99.1/32     0.0.0.0         2d23h42m directly connected

BGP    N/A  +192.168.109.0/24    10.4.64.107     2d23h37m Indirect

BGP    N/A  +192.168.129.0/24    10.4.64.108     2d23h35m Indirect 


admin@HUB1-cli> show interfaces brief

tvi-0/16.0   n/a                up     up     2       DUN-SubOrg-Control-VR   10.4.0.106/32

tvi-0/17.0   n/a                up     up     2       DUN-SubOrg-Control-VR   10.4.64.106/32

tvi-0/602.0  n/a                up     up     2       INT-Transport-VR        169.254.0.2/31

tvi-0/603.0  n/a                up     up     2       DUN-SubOrg-LAN-VR       169.254.0.3/31

tvi-0/604.0  n/a                up     up     2       INT-Transport-VR        169.254.0.4/31

tvi-0/605.0  n/a                up     up     2       MPLS-HUB2-Transport-VR  169.254.0.5/31

vni-0/0.0    52:54:00:5a:e4:e4  up     up     2       INT-Transport-VR        192.168.90.1/24

vni-0/1.0    52:54:00:52:b0:e3  up     up     2       MPLS-HUB2-Transport-VR  192.168.91.1/24

vni-0/2.0    52:54:00:85:84:75  up     up     2       DUN-SubOrg-LAN-VR       192.168.99.1/24


 #SPOKE3:

Spoke3  will have all routes with next hop as hub2 tvi-0/17 (.106)

admin@SPOKE1-cli> show route routing-instance DUN-SubOrg-LAN-VR

Prot   Type  Dest Address/Mask   Next-hop        Age      Interface name

----   ----  -----------------   --------        ---      --------------

BGP    N/A  +192.168.56.0/24     10.4.64.106     2d23h24m Indirect

BGP    N/A  +192.168.77.0/24     10.4.64.106     2d23h24m Indirect

BGP    N/A  +192.168.88.0/24     10.4.64.106     2d23h24m Indirect

BGP    N/A  +192.168.99.0/24     10.4.64.106     2d23h40m Indirect

conn   N/A  +192.168.109.0/24    0.0.0.0         2d23h40m vni-0/2.0

local  N/A  +192.168.109.1/32    0.0.0.0         2d23h40m directly connected

BGP    N/A  +192.168.129.0/24    10.4.64.106     2d23h37m Indirect


admin@SPOKE1-cli> show interfaces brief

NAME        MAC                OPER   ADMIN  TENANT  VRF                    IP

-----------------------------------------------------------------------------------------------

tvi-0/16.0  n/a                up     up     2       DUN-SubOrg-Control-VR  10.4.0.107/32

tvi-0/17.0  n/a                up     up     2       DUN-SubOrg-Control-VR  10.4.64.107/32

vni-0/1.0   52:54:00:61:25:6e  up     up     2       SG-MPLS2-Transport-VR  192.168.101.1/24

vni-0/2.0   52:54:00:5c:be:e1  up     up     2       DUN-SubOrg-LAN-VR      192.168.109.1/24


#SPOKE4:

Similarly spoke4 will have all routes with next hop as hub2 tvi-0/17 (.106)

admin@SPOKE2-cli> show route routing-instance DUN-SubOrg-LAN-VR

Prot   Type  Dest Address/Mask   Next-hop        Age      Interface name

----   ----  -----------------   --------        ---      --------------

BGP    N/A  +192.168.56.0/24     10.4.64.106     2d23h25m Indirect

BGP    N/A  +192.168.77.0/24     10.4.64.106     2d23h25m Indirect

BGP    N/A  +192.168.88.0/24     10.4.64.106     2d23h25m Indirect

BGP    N/A  +192.168.99.0/24     10.4.64.106     2d23h39m Indirect

BGP    N/A  +192.168.109.0/24    10.4.64.106     2d23h39m Indirect

conn   N/A  +192.168.129.0/24    0.0.0.0         2d23h39m vni-0/2.0

local  N/A  +192.168.129.1/32    0.0.0.0         2d23h39m directly connected


admin@SPOKE2-cli> show interfaces brief

tvi-0/16.0  n/a                up     up     2       DUN-SubOrg-Control-VR  10.4.0.108/32

tvi-0/17.0  n/a                up     up     2       DUN-SubOrg-Control-VR  10.4.64.108/32

vni-0/1.0   52:54:00:8c:7f:91  up     up     2       SG-MPLS2-Transport-VR  192.168.121.1/24

vni-0/2.0   52:54:00:c6:75:5e  up     up     2       DUN-SubOrg-LAN-VR      192.168.129.1/24