mirror of
				https://github.com/vyos/vyos-documentation.git
				synced 2025-10-26 08:41:46 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			1124 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			1124 lines
		
	
	
		
			48 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| 
 | ||
| ##############################################
 | ||
| L3VPN for Hub-and-Spoke connectivity with VyOS
 | ||
| ##############################################
 | ||
| 
 | ||
| IP/MPLS technology is widely used by various service providers and large 
 | ||
| enterprises in order to achieve better network scalability, manageability 
 | ||
| and flexibility. It also provides the possibility to deliver different 
 | ||
| services for the customers in a seamless manner. 
 | ||
| Layer 3 VPN (L3VPN) is a type of VPN mode that is built and delivered 
 | ||
| through OSI layer 3 networking technologies. Often the border gateway 
 | ||
| protocol (BGP) is used to send and receive VPN-related data that is 
 | ||
| responsible for the control plane. L3VPN utilizes virtual routing and 
 | ||
| forwarding (VRF) techniques to receive and deliver user data as well as 
 | ||
| separate data planes of the end-users. It is built using a combination of 
 | ||
| IP- and MPLS-based information. Generally, L3VPNs are used to send data 
 | ||
| on back-end VPN infrastructures, such as for VPN connections between data 
 | ||
| centres, HQs and branches.
 | ||
| 
 | ||
| An L3VPN consists of multiple access links, multiple VPN routing and 
 | ||
| forwarding (VRF) tables, and multiple MPLS paths or multiple P2MP LSPs. 
 | ||
| An L3VPN can be configured to connect two or more customer sites.
 | ||
| In hub-and-spoke MPLS L3VPN environments, the spoke routers need to have 
 | ||
| unique Route Distinguishers (RDs). In order to use the hub site as a 
 | ||
| transit point for connectivity in such an environment, the spoke sites 
 | ||
| export their routes to the hub. Spokes can talk to hubs, but never have 
 | ||
| direct paths to other spokes. All traffic between spokes is controlled 
 | ||
| and delivered over the hub site.
 | ||
| 
 | ||
| 
 | ||
| To deploy a Layer3 VPN with MPLS on VyOS, we should meet a couple 
 | ||
| requirements in order to properly implement the solution. 
 | ||
| We'll use the following nodes in our LAB environment:
 | ||
| 
 | ||
| * 2 x Route reflectors (VyOS-RRx)
 | ||
| * 4 x Provider routers (VyOS-Px)
 | ||
| * 3 x Provider Edge (VyOs-PEx)
 | ||
| * 3 x Customer Edge (VyOS-CEx)
 | ||
| 
 | ||
| The following software was used in the creation of this document:
 | ||
| 
 | ||
| * Operating system: VyOS
 | ||
| * Version: 1.4-rolling-202110310317
 | ||
| * Image name: vyos-1.4-rolling-202110310317-amd64.iso
 | ||
| 
 | ||
| **NOTE:** VyOS Router (tested with VyOS 1.4-rolling-202110310317) 
 | ||
| –  The configurations below are specifically for VyOS 1.4.x.
 | ||
| 
 | ||
| General information can be found in the :ref:`configuration/vrf/index:L3VPN VRFs` chapter.
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| ********
 | ||
| Topology
 | ||
| ********
 | ||
| .. image:: /_static/images/L3VPN_hub_and_spoke.png
 | ||
|    :width: 80%
 | ||
|    :align: center
 | ||
|    :alt: Network Topology Diagram
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| *****************
 | ||
| How does it work?
 | ||
| *****************
 | ||
| 
 | ||
| As we know the main assumption of L3VPN “Hub and Spoke” is, that the traffic 
 | ||
| between spokes have to pass via hub, in our scenario VyOS-PE2 is the Hub PE 
 | ||
| and the VyOS-CE1-HUB is the central customer office device that is responsible 
 | ||
| for controlling access between all spokes and announcing its network prefixes 
 | ||
| (10.0.0.100/32). VyOS-PE2 has the main VRF (its name is BLUE_HUB), its 
 | ||
| own Route-Distinguisher(RD) and route-target import/export lists. 
 | ||
| Multiprotocol-BGP(MP-BGP) delivers L3VPN related control-plane information to 
 | ||
| the nodes across network where PEs Spokes import the route-target 60535:1030 
 | ||
| (this is export route-target of vrf BLUE_HUB) and export its own route-target 
 | ||
| 60535:1011(this is vrf BLUE_SPOKE export route-target). Therefore, the 
 | ||
| Customer edge nodes can only learn the network prefixes of the HUB site 
 | ||
| [10.0.0.100/32]. For this example VyOS-CE1 has network prefixes 
 | ||
| [10.0.0.80/32] / VyOS-CE2 has network prefixes [10.0.0.90/32]. 
 | ||
| Route-Reflector devices VyOS-RR1 and VyOS-RR2 are used to simplify network 
 | ||
| routes exchange and minimize iBGP peerings between devices.
 | ||
| 
 | ||
| L3VPN configuration parameters table:
 | ||
| 
 | ||
| +----------+-------+------------+-----------------+-------------+-------------+
 | ||
| |   Node   |  Role |     VRF    |        RD       |  RT import  |  RT export  |
 | ||
| +----------+-------+------------+-----------------+-------------+-------------+
 | ||
| | VyOS-PE2 | Hub   | BLUE_HUB   | 10.80.80.1:1011 | 65035:1011  | 65035:1030  |
 | ||
| |          |       |            |                 | 65035:1030  |             |
 | ||
| +----------+-------+------------+-----------------+-------------+-------------+
 | ||
| | VyOS-PE1 | Spoke | BLUE_SPOKE | 10.50.50.1:1011 | 65035:1030  | 65035:1011  |
 | ||
| +----------+-------+------------+-----------------+-------------+-------------+
 | ||
| | VyOS-PE3 | Spoke | BLUE_SPOKE | 10.60.60.1:1011 | 65035:1030  | 65035:1011  |
 | ||
| +----------+-------+------------+-----------------+-------------+-------------+
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| *************
 | ||
| Configuration
 | ||
| *************
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Step-1: Configuring IGP and enabling MPLS LDP
 | ||
| =============================================
 | ||
| 
 | ||
| At the first step we need to configure the IP/MPLS backbone network using OSPF 
 | ||
| as IGP protocol and LDP as label-switching protocol for the base connectivity 
 | ||
| between **P** (rovider), **P** (rovider) **E** (dge) and **R** (oute) **R** 
 | ||
| (eflector) nodes:
 | ||
| 
 | ||
| - VyOS-P1:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces 
 | ||
|    set interfaces dummy dum10 address '10.0.0.3/32'
 | ||
|    set interfaces ethernet eth0 address '172.16.30.1/24'
 | ||
|    set interfaces ethernet eth1 address '172.16.40.1/24'
 | ||
|    set interfaces ethernet eth2 address '172.16.90.1/24'
 | ||
|    set interfaces ethernet eth3 address '172.16.10.1/24'
 | ||
|    set interfaces ethernet eth5 address '172.16.100.1/24'
 | ||
|    
 | ||
|    # protocols ospf+ldp
 | ||
|    set protocols mpls interface 'eth1'
 | ||
|    set protocols mpls interface 'eth2'
 | ||
|    set protocols mpls interface 'eth3'
 | ||
|    set protocols mpls interface 'eth5'
 | ||
|    set protocols mpls interface 'eth0'
 | ||
|    set protocols mpls ldp discovery transport-ipv4-address '10.0.0.3'
 | ||
|    set protocols mpls ldp interface 'eth0'
 | ||
|    set protocols mpls ldp interface 'eth1'
 | ||
|    set protocols mpls ldp interface 'eth2'
 | ||
|    set protocols mpls ldp interface 'eth3'
 | ||
|    set protocols mpls ldp interface 'eth5'
 | ||
|    set protocols mpls ldp router-id '10.0.0.3'
 | ||
|    set protocols ospf area 0 network '0.0.0.0/0'
 | ||
|    set protocols ospf parameters abr-type 'cisco'
 | ||
|    set protocols ospf parameters router-id '10.0.0.3
 | ||
| 
 | ||
| 
 | ||
| - VyOS-P2:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces dummy dum10 address '10.0.0.4/32'
 | ||
|    set interfaces ethernet eth0 address '172.16.30.2/24'
 | ||
|    set interfaces ethernet eth1 address '172.16.20.1/24'
 | ||
|    set interfaces ethernet eth2 address '172.16.120.1/24'
 | ||
|    set interfaces ethernet eth3 address '172.16.60.1/24'
 | ||
|    
 | ||
|    # protocols ospf+ldp
 | ||
|    set protocols mpls interface 'eth1'
 | ||
|    set protocols mpls interface 'eth2'
 | ||
|    set protocols mpls interface 'eth3'
 | ||
|    set protocols mpls interface 'eth0'
 | ||
|    set protocols mpls ldp discovery transport-ipv4-address '10.0.0.4'
 | ||
|    set protocols mpls ldp interface 'eth0'
 | ||
|    set protocols mpls ldp interface 'eth1'
 | ||
|    set protocols mpls ldp interface 'eth2'
 | ||
|    set protocols mpls ldp interface 'eth3'
 | ||
|    set protocols mpls ldp router-id '10.0.0.4'
 | ||
|    set protocols ospf area 0 network '0.0.0.0/0'
 | ||
|    set protocols ospf parameters abr-type 'cisco'
 | ||
|    set protocols ospf parameters router-id '10.0.0.4'
 | ||
| 
 | ||
| - VyOS-P3:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces dummy dum10 address '10.0.0.5/32'
 | ||
|    set interfaces ethernet eth0 address '172.16.110.1/24'
 | ||
|    set interfaces ethernet eth1 address '172.16.40.2/24'
 | ||
|    set interfaces ethernet eth2 address '172.16.50.1/24'
 | ||
|    set interfaces ethernet eth3 address '172.16.70.1/24'
 | ||
|    
 | ||
|    # protocols ospf + ldp
 | ||
|    set protocols mpls interface 'eth1'
 | ||
|    set protocols mpls interface 'eth2'
 | ||
|    set protocols mpls interface 'eth3'
 | ||
|    set protocols mpls interface 'eth0'
 | ||
|    set protocols mpls ldp discovery transport-ipv4-address '10.0.0.5'
 | ||
|    set protocols mpls ldp interface 'eth0'
 | ||
|    set protocols mpls ldp interface 'eth1'
 | ||
|    set protocols mpls ldp interface 'eth2'
 | ||
|    set protocols mpls ldp interface 'eth3'
 | ||
|    set protocols mpls ldp router-id '10.0.0.5'
 | ||
|    set protocols ospf area 0 network '0.0.0.0/0'
 | ||
|    set protocols ospf parameters abr-type 'cisco'
 | ||
|    set protocols ospf parameters router-id '10.0.0.5'
 | ||
| 
 | ||
| - VyOS-P4:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces dummy dum10 address '10.0.0.6/32'
 | ||
|    set interfaces ethernet eth0 address '172.16.80.2/24'
 | ||
|    set interfaces ethernet eth1 address '172.16.130.1/24'
 | ||
|    set interfaces ethernet eth2 address '172.16.50.2/24'
 | ||
|    set interfaces ethernet eth3 address '172.16.60.2/24'
 | ||
|    set interfaces ethernet eth5 address '172.16.140.1/24'
 | ||
|    
 | ||
|    
 | ||
|    # protocols ospf + ldp
 | ||
|    set protocols mpls interface 'eth1'
 | ||
|    set protocols mpls interface 'eth2'
 | ||
|    set protocols mpls interface 'eth3'
 | ||
|    set protocols mpls interface 'eth0'
 | ||
|    set protocols mpls interface 'eth5'
 | ||
|    set protocols mpls ldp discovery transport-ipv4-address '10.0.0.6'
 | ||
|    set protocols mpls ldp interface 'eth0'
 | ||
|    set protocols mpls ldp interface 'eth1'
 | ||
|    set protocols mpls ldp interface 'eth2'
 | ||
|    set protocols mpls ldp interface 'eth3'
 | ||
|    set protocols mpls ldp interface 'eth5'
 | ||
|    set protocols mpls ldp router-id '10.0.0.6'
 | ||
|    set protocols ospf area 0 network '0.0.0.0/0'
 | ||
|    set protocols ospf parameters abr-type 'cisco'
 | ||
|    set protocols ospf parameters router-id '10.0.0.6'
 | ||
| 
 | ||
| - VyOS-PE1:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces dummy dum10 address '10.0.0.7/32'
 | ||
|    set interfaces ethernet eth0 address '172.16.90.2/24'
 | ||
|    
 | ||
|    # protocols  ospf + ldp 
 | ||
|    set protocols mpls interface 'eth0'
 | ||
|    set protocols mpls ldp discovery transport-ipv4-address '10.0.0.7'
 | ||
|    set protocols mpls ldp interface 'eth0'
 | ||
|    set protocols mpls ldp router-id '10.0.0.7'
 | ||
|    set protocols ospf area 0 network '0.0.0.0/0'
 | ||
|    set protocols ospf parameters abr-type 'cisco'
 | ||
|    set protocols ospf parameters router-id '10.0.0.7'
 | ||
| 
 | ||
| - VyOS-PE2:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces dummy dum10 address '10.0.0.8/32'
 | ||
|    set interfaces ethernet eth0 address '172.16.110.2/24'
 | ||
|    set interfaces ethernet eth1 address '172.16.100.2/24'
 | ||
|    set interfaces ethernet eth2 address '172.16.80.1/24'
 | ||
|    
 | ||
|    # protocols  ospf + ldp 
 | ||
|    set protocols mpls interface 'eth0'
 | ||
|    set protocols mpls interface 'eth1'
 | ||
|    set protocols mpls ldp discovery transport-ipv4-address '10.0.0.8'
 | ||
|    set protocols mpls ldp interface 'eth0'
 | ||
|    set protocols mpls ldp interface 'eth1'
 | ||
|    set protocols mpls ldp router-id '10.0.0.8'
 | ||
|    set protocols ospf area 0 network '0.0.0.0/0'
 | ||
|    set protocols ospf parameters abr-type 'cisco'
 | ||
|    set protocols ospf parameters router-id '10.0.0.8'
 | ||
| 
 | ||
| - VyOS-PE3:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces dummy dum10 address '10.0.0.10/32'
 | ||
|    set interfaces ethernet eth0 address '172.16.140.2/24'
 | ||
|    
 | ||
|    # protocols ospf + ldp
 | ||
|    set protocols mpls interface 'eth0'
 | ||
|    set protocols mpls ldp discovery transport-ipv4-address '10.0.0.10'
 | ||
|    set protocols mpls ldp interface 'eth0'
 | ||
|    set protocols mpls ldp router-id '10.0.0.10'
 | ||
|    set protocols ospf area 0 network '0.0.0.0/0'
 | ||
|    set protocols ospf parameters abr-type 'cisco'
 | ||
|    set protocols ospf parameters router-id '10.0.0.10'
 | ||
| 
 | ||
| - VyOS-RR1:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces ethernet eth1 address '172.16.20.2/24'
 | ||
|    set interfaces ethernet eth2 address '172.16.10.2/24'
 | ||
|    set interfaces dummy dum10 address '10.0.0.1/32'
 | ||
|    
 | ||
|    # protocols ospf + ldp
 | ||
|    set protocols mpls interface 'eth1'
 | ||
|    set protocols mpls interface 'eth2'
 | ||
|    set protocols mpls ldp discovery transport-ipv4-address '10.0.0.1'
 | ||
|    set protocols mpls ldp interface 'eth1'
 | ||
|    set protocols mpls ldp interface 'eth2'
 | ||
|    set protocols mpls ldp router-id '10.0.0.1'
 | ||
|    set protocols ospf area 0 network '0.0.0.0/0'
 | ||
|    set protocols ospf parameters abr-type 'cisco'
 | ||
|    set protocols ospf parameters router-id '10.0.0.1'
 | ||
| 
 | ||
| - VyOS-RR2:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces ethernet eth0 address '172.16.80.1/24'
 | ||
|    set interfaces ethernet eth1 address '172.16.70.2/24'
 | ||
|    set interfaces dummy dum10 address '10.0.0.2/32'
 | ||
|    
 | ||
|    # protocols ospf + ldp
 | ||
|    set protocols mpls interface 'eth0'
 | ||
|    set protocols mpls interface 'eth1'
 | ||
|    set protocols mpls ldp discovery transport-ipv4-address '10.0.0.2'
 | ||
|    set protocols mpls ldp interface 'eth1'
 | ||
|    set protocols mpls ldp interface 'eth0'
 | ||
|    set protocols mpls ldp router-id '10.0.0.2'
 | ||
|    set protocols ospf area 0 network '0.0.0.0/0'
 | ||
|    set protocols ospf parameters abr-type 'cisco'
 | ||
|    set protocols ospf parameters router-id '10.0.0.2'
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Step-2: Configuring iBGP for L3VPN control-plane 
 | ||
| ================================================
 | ||
| 
 | ||
| At this step we are going to enable iBGP protocol on MPLS nodes and 
 | ||
| Route Reflectors (two routers for redundancy) that will deliver IPv4 
 | ||
| VPN (L3VPN) routes between them:
 | ||
| 
 | ||
| - VyOS-RR1:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    set protocols bgp system-as '65001'
 | ||
|    set protocols bgp neighbor 10.0.0.7 address-family ipv4-vpn route-reflector-client
 | ||
|    set protocols bgp neighbor 10.0.0.7 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp neighbor 10.0.0.8 address-family ipv4-vpn route-reflector-client
 | ||
|    set protocols bgp neighbor 10.0.0.8 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp neighbor 10.0.0.10 address-family ipv4-vpn route-reflector-client
 | ||
|    set protocols bgp neighbor 10.0.0.10 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp parameters cluster-id '10.0.0.1'
 | ||
|    set protocols bgp parameters log-neighbor-changes
 | ||
|    set protocols bgp parameters router-id '10.0.0.1'
 | ||
|    set protocols bgp peer-group RR_VPNv4 remote-as '65001'
 | ||
|    set protocols bgp peer-group RR_VPNv4 update-source 'dum10'
 | ||
| 
 | ||
| - VyOS-RR2:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    set protocols bgp system-as '65001'
 | ||
|    set protocols bgp neighbor 10.0.0.7 address-family ipv4-vpn route-reflector-client
 | ||
|    set protocols bgp neighbor 10.0.0.7 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp neighbor 10.0.0.8 address-family ipv4-vpn route-reflector-client
 | ||
|    set protocols bgp neighbor 10.0.0.8 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp neighbor 10.0.0.10 address-family ipv4-vpn route-reflector-client
 | ||
|    set protocols bgp neighbor 10.0.0.10 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp parameters cluster-id '10.0.0.1'
 | ||
|    set protocols bgp parameters log-neighbor-changes
 | ||
|    set protocols bgp parameters router-id '10.0.0.2'
 | ||
|    set protocols bgp peer-group RR_VPNv4 remote-as '65001'
 | ||
|    set protocols bgp peer-group RR_VPNv4 update-source 'dum10'
 | ||
| 
 | ||
| - VyOS-PE1:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    set protocols bgp system-as '65001'
 | ||
|    set protocols bgp neighbor 10.0.0.1 address-family ipv4-vpn nexthop-self
 | ||
|    set protocols bgp neighbor 10.0.0.1 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp neighbor 10.0.0.2 address-family ipv4-vpn nexthop-self
 | ||
|    set protocols bgp neighbor 10.0.0.2 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp parameters log-neighbor-changes
 | ||
|    set protocols bgp parameters router-id '10.0.0.7'
 | ||
|    set protocols bgp peer-group RR_VPNv4 remote-as '65001'
 | ||
|    set protocols bgp peer-group RR_VPNv4 update-source 'dum10'
 | ||
| 
 | ||
| - VyOS-PE2:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    set protocols bgp system-as '65001'
 | ||
|    set protocols bgp neighbor 10.0.0.1 address-family ipv4-vpn nexthop-self
 | ||
|    set protocols bgp neighbor 10.0.0.1 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp neighbor 10.0.0.2 address-family ipv4-vpn nexthop-self
 | ||
|    set protocols bgp neighbor 10.0.0.2 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp parameters log-neighbor-changes
 | ||
|    set protocols bgp parameters router-id '10.0.0.8'
 | ||
|    set protocols bgp peer-group RR_VPNv4 remote-as '65001'
 | ||
|    set protocols bgp peer-group RR_VPNv4 update-source 'dum10'
 | ||
| 
 | ||
| - VyOS-PE3:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    set protocols bgp system-as '65001'
 | ||
|    set protocols bgp neighbor 10.0.0.1 address-family ipv4-vpn nexthop-self
 | ||
|    set protocols bgp neighbor 10.0.0.1 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp neighbor 10.0.0.2 address-family ipv4-vpn nexthop-self
 | ||
|    set protocols bgp neighbor 10.0.0.2 peer-group 'RR_VPNv4'
 | ||
|    set protocols bgp parameters log-neighbor-changes
 | ||
|    set protocols bgp parameters router-id '10.0.0.10'
 | ||
|    set protocols bgp peer-group RR_VPNv4 remote-as '65001'
 | ||
|    set protocols bgp peer-group RR_VPNv4 update-source 'dum10'
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Step-3: Configuring L3VPN VRFs on PE nodes
 | ||
| ==========================================
 | ||
| 
 | ||
| This section provides configuration steps for setting up VRFs on our 
 | ||
| PE nodes including CE facing interfaces, BGP, rd and route-target 
 | ||
| import/export based on the pre-defined parameters.
 | ||
| 
 | ||
| - VyOS-PE1:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # VRF settings
 | ||
|    set vrf name BLUE_SPOKE table '200'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast export vpn
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast import vpn
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast label vpn export 'auto'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast network 10.50.50.0/24
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast rd vpn export '10.50.50.1:1011'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast redistribute connected
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast route-target vpn export '65035:1011'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast route-target vpn import '65035:1030'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp system-as '65001'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp neighbor 10.50.50.2 address-family ipv4-unicast as-override
 | ||
|    set vrf name BLUE_SPOKE protocols bgp neighbor 10.50.50.2 remote-as '65035'
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces ethernet eth3 address '10.50.50.1/24'
 | ||
|    set interfaces ethernet eth3 vrf 'BLUE_SPOKE'
 | ||
| 
 | ||
| - VyOS-PE2:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # VRF settings 
 | ||
|    set vrf name BLUE_HUB table '400'
 | ||
|    set vrf name BLUE_HUB protocols bgp address-family ipv4-unicast export vpn
 | ||
|    set vrf name BLUE_HUB protocols bgp address-family ipv4-unicast import vpn
 | ||
|    set vrf name BLUE_HUB protocols bgp address-family ipv4-unicast label vpn export 'auto'
 | ||
|    set vrf name BLUE_HUB protocols bgp address-family ipv4-unicast network 10.80.80.0/24
 | ||
|    set vrf name BLUE_HUB protocols bgp address-family ipv4-unicast rd vpn export '10.80.80.1:1011'
 | ||
|    set vrf name BLUE_HUB protocols bgp address-family ipv4-unicast redistribute connected
 | ||
|    set vrf name BLUE_HUB protocols bgp address-family ipv4-unicast route-target vpn export '65035:1030'
 | ||
|    set vrf name BLUE_HUB protocols bgp address-family ipv4-unicast route-target vpn import '65035:1011 65050:2011 65035:1030'
 | ||
|    set vrf name BLUE_HUB protocols bgp system-as '65001'
 | ||
|    set vrf name BLUE_HUB protocols bgp neighbor 10.80.80.2 address-family ipv4-unicast as-override
 | ||
|    set vrf name BLUE_HUB protocols bgp neighbor 10.80.80.2 remote-as '65035'
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces ethernet eth3 address '10.80.80.1/24'
 | ||
|    set interfaces ethernet eth3 vrf 'BLUE_HUB'
 | ||
| 
 | ||
| - VyOS-PE3:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # VRF settings
 | ||
|    set vrf name BLUE_SPOKE table '200'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast export vpn
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast import vpn
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast label vpn export 'auto'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast network 10.60.60.0/24
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast rd vpn export '10.60.60.1:1011'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast redistribute connected
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast route-target vpn export '65035:1011'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp address-family ipv4-unicast route-target vpn import '65035:1030'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp system-as '65001'
 | ||
|    set vrf name BLUE_SPOKE protocols bgp neighbor 10.60.60.2 address-family ipv4-unicast as-override
 | ||
|    set vrf name BLUE_SPOKE protocols bgp neighbor 10.60.60.2 remote-as '65035'
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces ethernet eth3 address '10.60.60.1/24'
 | ||
|    set interfaces ethernet eth3 vrf 'BLUE_SPOKE'
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Step-4: Configuring CE nodes
 | ||
| ============================
 | ||
| 
 | ||
| Dynamic routing used between CE and PE nodes and eBGP peering 
 | ||
| established for the route exchanging between them. All routes 
 | ||
| received by PEs are then exported to L3VPN and delivered from 
 | ||
| Spoke sites to Hub and vise-versa based on previously 
 | ||
| configured L3VPN parameters.
 | ||
| 
 | ||
| - VyOS-CE1-SPOKE:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces dummy dum20 address '10.0.0.80/32'
 | ||
|    set interfaces ethernet eth0 address '10.50.50.2/24'
 | ||
|    
 | ||
|    # BGP for peering with PE
 | ||
|    set protocols bgp system-as 65035 
 | ||
|    set protocols bgp address-family ipv4-unicast network 10.0.0.80/32
 | ||
|    set protocols bgp neighbor 10.50.50.1 ebgp-multihop '2'
 | ||
|    set protocols bgp neighbor 10.50.50.1 remote-as '65001'
 | ||
|    set protocols bgp neighbor 10.50.50.1 update-source 'eth0'
 | ||
|    set protocols bgp parameters log-neighbor-changes
 | ||
|    set protocols bgp parameters router-id '10.50.50.2'
 | ||
| 
 | ||
| - VyOS-CE1-HUB:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces dummy dum20 address '10.0.0.100/32'
 | ||
|    set interfaces ethernet eth0 address '10.80.80.2/24'
 | ||
|    
 | ||
|    # BGP for peering with PE
 | ||
|    set protocols bgp system-as 65035 
 | ||
|    set protocols bgp address-family ipv4-unicast network 10.0.0.100/32
 | ||
|    set protocols bgp address-family ipv4-unicast redistribute connected
 | ||
|    set protocols bgp neighbor 10.80.80.1 ebgp-multihop '2'
 | ||
|    set protocols bgp neighbor 10.80.80.1 remote-as '65001'
 | ||
|    set protocols bgp neighbor 10.80.80.1 update-source 'eth0'
 | ||
|    set protocols bgp parameters log-neighbor-changes
 | ||
|    set protocols bgp parameters router-id '10.80.80.2'
 | ||
| 
 | ||
| - VyOS-CE2-SPOKE:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # interfaces
 | ||
|    set interfaces dummy dum20 address '10.0.0.90/32'
 | ||
|    set interfaces ethernet eth0 address '10.60.60.2/24'
 | ||
|    
 | ||
|    # BGP for peering with PE 
 | ||
|    set protocols bgp system-as 65035 
 | ||
|    set protocols bgp address-family ipv4-unicast network 10.0.0.90/32
 | ||
|    set protocols bgp neighbor 10.60.60.1 ebgp-multihop '2'
 | ||
|    set protocols bgp neighbor 10.60.60.1 remote-as '65001'
 | ||
|    set protocols bgp neighbor 10.60.60.1 update-source 'eth0'
 | ||
|    set protocols bgp parameters log-neighbor-changes
 | ||
|    set protocols bgp parameters router-id '10.60.60.2'
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Step-5: Verification
 | ||
| ====================
 | ||
| 
 | ||
| This section describes verification commands for MPLS/BGP/LDP 
 | ||
| protocols and L3VPN related routes as well as diagnosis and 
 | ||
| reachability checks between CE nodes.
 | ||
| 
 | ||
| Let’s check IPv4 routing and MPLS information on provider nodes 
 | ||
| (same procedure for all P nodes):
 | ||
| 
 | ||
| - “show ip ospf neighbor” for checking ospf relationship
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-P1:~$  show ip ospf neighbor
 | ||
|    
 | ||
|    Neighbor ID 	Pri State       	Dead Time Address     	Interface            RXmtL RqstL DBsmL
 | ||
|    10.0.0.4       	1 Full/Backup   	34.718s   172.16.30.2 	eth0:172.16.30.1       0 	  0 	  0
 | ||
|    10.0.0.5       	1 Full/Backup   	35.132s   172.16.40.2 	eth1:172.16.40.1       0 	  0 	  0
 | ||
|    10.0.0.7       	1 Full/Backup   	34.764s   172.16.90.2 	eth2:172.16.90.1       0 	  0 	  0
 | ||
|    10.0.0.1       	1 Full/Backup   	35.642s   172.16.10.2 	eth3:172.16.10.1       0 	  0 	  0
 | ||
|    10.0.0.8       	1 Full/Backup   	35.484s   172.16.100.2	eth5:172.16.100.1      0 	  0     0
 | ||
| 
 | ||
| - “show mpls ldp neighbor “ for checking ldp neighbors
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-P1:~$ show mpls ldp neighbor
 | ||
|    AF   ID          	State   	   Remote Address	Uptime
 | ||
|    ipv4 10.0.0.1     	OPERATIONAL 10.0.0.1     	07w5d06h
 | ||
|    ipv4 10.0.0.4     	OPERATIONAL 10.0.0.4     	09w3d00h
 | ||
|    ipv4 10.0.0.5     	OPERATIONAL 10.0.0.5     	09w2d23h
 | ||
|    ipv4 10.0.0.7     	OPERATIONAL 10.0.0.7     	03w0d01h
 | ||
|    ipv4 10.0.0.8     	OPERATIONAL 10.0.0.8     	01w3d02h
 | ||
| 
 | ||
| - “show mpls ldp binding” for checking mpls label assignment
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-P1:~$ show mpls ldp discovery
 | ||
|    AF   Destination      	Nexthop     	Local    Label Remote Label  In Use
 | ||
|    ipv4 10.0.0.1/32       	10.0.0.1     	23      	      imp-null     	yes
 | ||
|    ipv4 10.0.0.1/32       	10.0.0.4     	23      	      20            	no
 | ||
|    ipv4 10.0.0.1/32       	10.0.0.5     	23      	      17            	no
 | ||
|    ipv4 10.0.0.1/32       	10.0.0.7     	23      	      16            	no
 | ||
|    ipv4 10.0.0.1/32       	10.0.0.8     	23      	      16            	no
 | ||
|    ipv4 10.0.0.2/32       	10.0.0.1     	20      	      16            	no
 | ||
|    ipv4 10.0.0.2/32       	10.0.0.4     	20      	      22            	no
 | ||
|    ipv4 10.0.0.2/32       	10.0.0.5     	20      	      24           	yes
 | ||
|    ipv4 10.0.0.2/32       	10.0.0.7     	20      	      17            	no
 | ||
|    ipv4 10.0.0.2/32       	10.0.0.8     	20      	      17            	no
 | ||
|    ipv4 10.0.0.3/32       	10.0.0.1     	imp-null	      17            	no
 | ||
|    ipv4 10.0.0.3/32       	10.0.0.4     	imp-null	      16            	no
 | ||
|    ipv4 10.0.0.3/32       	10.0.0.5     	imp-null	      18            	no
 | ||
|    ipv4 10.0.0.3/32       	10.0.0.7     	imp-null	      18            	no
 | ||
|    ipv4 10.0.0.3/32       	10.0.0.8     	imp-null	      18            	no
 | ||
|    ipv4 10.0.0.4/32       	10.0.0.1     	16      	      18            	no
 | ||
|    ipv4 10.0.0.4/32       	10.0.0.4     	16      	      imp-null     	yes
 | ||
|    ipv4 10.0.0.4/32       	10.0.0.5     	16      	      19            	no
 | ||
|    ipv4 10.0.0.4/32       	10.0.0.7     	16      	      19            	no
 | ||
|    ipv4 10.0.0.4/32       	10.0.0.8     	16      	      19            	no
 | ||
|    ipv4 10.0.0.5/32       	10.0.0.1     	21      	      19            	no
 | ||
|    ipv4 10.0.0.5/32       	10.0.0.4     	21      	      17            	no
 | ||
|    ipv4 10.0.0.5/32       	10.0.0.5     	21      	      imp-null     	yes
 | ||
|    ipv4 10.0.0.5/32       	10.0.0.7     	21      	      20            	no
 | ||
|    ipv4 10.0.0.5/32       	10.0.0.8     	21      	      20            	no
 | ||
|    ipv4 10.0.0.6/32       	10.0.0.1     	17      	      20            	no
 | ||
|    ipv4 10.0.0.6/32       	10.0.0.4     	17      	      23           	yes
 | ||
|    ipv4 10.0.0.6/32       	10.0.0.5     	17      	      21           	yes
 | ||
|    ipv4 10.0.0.6/32       	10.0.0.7     	17      	      21            	no
 | ||
|    ipv4 10.0.0.6/32       	10.0.0.8     	17      	      21            	no
 | ||
|    ipv4 10.0.0.7/32       	10.0.0.1     	22      	      21            	no
 | ||
|    ipv4 10.0.0.7/32       	10.0.0.4     	22      	      18            	no
 | ||
|    ipv4 10.0.0.7/32       	10.0.0.5     	22      	      20            	no
 | ||
|    ipv4 10.0.0.7/32       	10.0.0.7     	22      	      imp-null     	yes
 | ||
|    ipv4 10.0.0.7/32       	10.0.0.8     	22      	      22            	no
 | ||
|    ipv4 10.0.0.8/32       	10.0.0.1     	24      	      22            	no
 | ||
|    ipv4 10.0.0.8/32       	10.0.0.4     	24      	      19            	no
 | ||
|    ipv4 10.0.0.8/32       	10.0.0.5     	24      	      16            	no
 | ||
|    ipv4 10.0.0.8/32       	10.0.0.7     	24      	      22            	no
 | ||
|    ipv4 10.0.0.8/32       	10.0.0.8     	24      	      imp-null     	yes
 | ||
|    ipv4 10.0.0.9/32       	10.0.0.1     	18      	      23            	no
 | ||
|    ipv4 10.0.0.9/32       	10.0.0.4     	18      	      21           	yes
 | ||
|    ipv4 10.0.0.9/32       	10.0.0.5     	18      	      22            	no
 | ||
|    ipv4 10.0.0.9/32       	10.0.0.7     	18      	      23            	no
 | ||
|    ipv4 10.0.0.9/32       	10.0.0.8     	18      	      23            	no
 | ||
|    ipv4 10.0.0.10/32   	10.0.0.1     	19      	      24            	no
 | ||
|    ipv4 10.0.0.10/32   	10.0.0.4     	19      	      24           	yes
 | ||
|    ipv4 10.0.0.10/32   	10.0.0.5     	19      	      23           	yes
 | ||
|    ipv4 10.0.0.10/32   	10.0.0.7     	19      	      24            	no
 | ||
|    ipv4 10.0.0.10/32   	10.0.0.8     	19      	      24            	no
 | ||
|    
 | ||
| Now we’re checking iBGP status and routes from route-reflector 
 | ||
| nodes to other devices:
 | ||
| 
 | ||
| - “show bgp ipv4 vpn summary” for checking BGP VPNv4 neighbors:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-RR1:~$ show bgp ipv4 vpn summary
 | ||
|    BGP router identifier 10.0.0.1, local AS number 65001 vrf-id 0
 | ||
|    BGP table version 0
 | ||
|    RIB entries 9, using 1728 bytes of memory
 | ||
|    Peers 4, using 85 KiB of memory
 | ||
|    Peer groups 1, using 64 bytes of memory
 | ||
|    
 | ||
|    Neighbor    	V     	AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt
 | ||
|    10.0.0.7     	4  	65001  	7719  	7733    	      0	   0	0   5d07h56m        	2   	10
 | ||
|    10.0.0.8     	4  	65001  	7715  	7724    	      0	   0	0   5d08h28m        	4   	10
 | ||
|    10.0.0.9     	4  	65001  	7713  	7724    	      0	   0	0   5d08h28m        	2   	10
 | ||
|    10.0.0.10 	4  	65001  	7713  	7724    	      0	   0	0   5d08h28m        	2   	10
 | ||
|    
 | ||
|    Total number of neighbors 4
 | ||
| 
 | ||
| - “show bgp ipv4 vpn”  for checking all VPNv4 prefixes information: 
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-RR1:~$ show bgp ipv4 vpn
 | ||
|    BGP table version is 2, local router ID is 10.0.0.1, vrf id 0
 | ||
|    Default local pref 100, local AS 65001
 | ||
|    Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
 | ||
|               	i internal, r RIB-failure, S Stale, R Removed
 | ||
|    Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
 | ||
|    Origin codes:  i - IGP, e - EGP, ? - incomplete
 | ||
|    
 | ||
|       Network      	Next Hop        	Metric LocPrf Weight Path
 | ||
|    Route Distinguisher: 10.50.50.1:1011
 | ||
|    *>i10.50.50.0/24	10.0.0.7              	0	100  	0 i
 | ||
|    	UN=10.0.0.7 EC{65035:1011} label=80 type=bgp, subtype=0
 | ||
|    *>i80.80.80.80/32   10.0.0.7              	0	100  	0 65035 i
 | ||
|    	UN=10.0.0.7 EC{65035:1011} label=80 type=bgp, subtype=0
 | ||
|    Route Distinguisher: 10.60.60.1:1011
 | ||
|    *>i10.60.60.0/24	10.0.0.10          	0	100  	0 i
 | ||
|    	UN=10.0.0.10 EC{65035:1011} label=80 type=bgp, subtype=0
 | ||
|    *>i90.90.90.90/32   10.0.0.10          	0	100  	0 65035 i
 | ||
|    	UN=10.0.0.10 EC{65035:1011} label=80 type=bgp, subtype=0
 | ||
|    Route Distinguisher: 10.80.80.1:1011
 | ||
|    *>i10.80.80.0/24	10.0.0.8              	0	100  	0 i
 | ||
|    	UN=10.0.0.8 EC{65035:1030} label=80 type=bgp, subtype=0
 | ||
|    *>i100.100.100.100/32
 | ||
|                    	10.0.0.8              	0	100  	0 65035 i
 | ||
|    	UN=10.0.0.8 EC{65035:1030} label=80 type=bgp, subtype=0
 | ||
|    Route Distinguisher: 172.16.80.1:2011
 | ||
|    *>i10.110.110.0/24  10.0.0.8              	0	100  	0 65050 i
 | ||
|    	UN=10.0.0.8 EC{65050:2011} label=81 type=bgp, subtype=0
 | ||
|    *>i172.16.80.0/24   10.0.0.8              	0	100  	0 i
 | ||
|    	UN=10.0.0.8 EC{65050:2011} label=81 type=bgp, subtype=0
 | ||
|    Route Distinguisher: 172.16.100.1:2011
 | ||
|    *>i10.210.210.0/24  10.0.0.9              	0	100  	0 65050 i
 | ||
|    	UN=10.0.0.9 EC{65050:2011} label=80 type=bgp, subtype=0
 | ||
|    *>i172.16.100.0/24  10.0.0.9              	0	100  	0 i
 | ||
|    	UN=10.0.0.9 EC{65050:2011} label=80 type=bgp, subtype=0
 | ||
| 
 | ||
| - “show bgp ipv4 vpn x.x.x.x/x” for checking best path selected 
 | ||
|   for specific VPNv4 destination
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-RR1:~$ show bgp  ipv4 vpn 10.0.0.100/32
 | ||
|    BGP routing table entry for 10.80.80.1:1011:10.0.0.100/32
 | ||
|    not allocated
 | ||
|    Paths: (1 available, best #1)
 | ||
|      Advertised to non peer-group peers:
 | ||
|      10.0.0.7 10.0.0.8 10.0.0.9 10.0.0.10
 | ||
|      65035, (Received from a RR-client)
 | ||
|    	10.0.0.8 from 10.0.0.8 (10.0.0.8)
 | ||
|      	Origin incomplete, metric 0, localpref 100, valid, internal, best (First path received)
 | ||
|      	Extended Community: RT:65035:1030
 | ||
|      	Remote label: 80
 | ||
|      	Last update: Tue Oct 19 13:45:32 202
 | ||
|    
 | ||
| Also we can verify how PE devices receives VPNv4 networks from the RRs 
 | ||
| and installing them to the specific customer VRFs:
 | ||
| 
 | ||
| - “show bgp ipv4 vpn summary” for checking iBGP neighbors against 
 | ||
|   route-reflector devices:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE1:~$ show bgp ipv4 vpn summary
 | ||
|    BGP router identifier 10.0.0.7, local AS number 65001 vrf-id 0
 | ||
|    BGP table version 0
 | ||
|    RIB entries 9, using 1728 bytes of memory
 | ||
|    Peers 2, using 43 KiB of memory
 | ||
|    Peer groups 1, using 64 bytes of memory
 | ||
|    
 | ||
|    Neighbor    	V     	AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt
 | ||
|    10.0.0.1     	4  	65001  	8812  	8794    	   0	   0	   0   01:18:42        	8    	2
 | ||
|    10.0.0.2     	4  	65001  	8800  	8792    	   0	   0	   0   6d02h27m        	8    	2
 | ||
| 
 | ||
| - “show bgp vrf all” for checking all the prefix learning on BGP 
 | ||
|    within VRFs:
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE1:~$ show  bgp vrf all
 | ||
| 
 | ||
|    Instance default:
 | ||
|    No BGP prefixes displayed, 0 exist
 | ||
|    
 | ||
|    Instance BLUE_SPOKE:
 | ||
|    BGP table version is 8, local router ID is 10.50.50.1, vrf id 6
 | ||
|    Default local pref 100, local AS 65001
 | ||
|    Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
 | ||
|               	i internal, r RIB-failure, S Stale, R Removed
 | ||
|    Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
 | ||
|    Origin codes:  i - IGP, e - EGP, ? - incomplete
 | ||
|    
 | ||
|       Network      	Next Hop        	Metric LocPrf Weight Path
 | ||
|    *  10.50.50.0/24	0.0.0.0              	0     	32768 ?
 | ||
|    *>              	0.0.0.0              	0     	32768 i
 | ||
|    *> 10.80.80.0/24	10.0.0.8@0<           	0	100  	0 i
 | ||
|    *               	10.0.0.8@0<           	0	100  	0 i
 | ||
|    *> 10.0.0.80/32   10.50.50.2           	0         	0 65035 i
 | ||
|    *> 10.0.0.100/32
 | ||
|                    	10.0.0.8@0<           	0	100  	0 65035 ?
 | ||
|    *               	10.0.0.8@0<           	0	100  	0 65035 ?
 | ||
| 
 | ||
| - “show bgp vrf BLUE_SPOKE summary” for checking EBGP neighbor 
 | ||
|    information between PE and CE:
 | ||
|    
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE1:~$ show bgp vrf BLUE_SPOKE summary
 | ||
| 
 | ||
| 
 | ||
|    IPv4 Unicast Summary:
 | ||
|    BGP router identifier 10.50.50.1, local AS number 65001 vrf-id 6
 | ||
|    BGP table version 8
 | ||
|    RIB entries 7, using 1344 bytes of memory
 | ||
|    Peers 1, using 21 KiB of memory
 | ||
|    
 | ||
|    Neighbor    	V     	AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt
 | ||
|    10.50.50.2  	4  	65035  	9019  	9023    	      0	0	   0   6d06h12m        	1    	4
 | ||
|    
 | ||
|    Total number of neighbors 1
 | ||
| 
 | ||
| - “show ip route vrf BLUE_SPOKE” for viewing the RIB in our Spoke PE. 
 | ||
|    Using this command we are also able to check the transport and 
 | ||
|    customer label (inner/outer) for Hub network prefix (10.0.0.100/32):
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE1:~$ show ip route vrf BLUE_SPOKE
 | ||
| 
 | ||
|    Codes: K - kernel route, C - connected, S - static, R - RIP,
 | ||
|       	O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
 | ||
|       	T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
 | ||
|       	F - PBR, f - OpenFabric,
 | ||
|       	> - selected route, * - FIB route, q - queued, r - rejected, b - backup
 | ||
|    
 | ||
|    VRF BLUE_SPOKE:
 | ||
|    K>* 0.0.0.0/0 [255/8192] unreachable (ICMP unreachable), 03w0d23h
 | ||
|    C>* 10.50.50.0/24 is directly connected, eth3, 03w0d23h
 | ||
|    B>  10.80.80.0/24 [200/0] via 10.0.0.8 (vrf default) (recursive), label 80, weight 1, 04:22:00
 | ||
|      *                     	via 172.16.90.1, eth0 (vrf default), label 24/80, weight 1, 04:22:00
 | ||
|    B>* 10.0.0.80/32 [20/0] via 10.50.50.2, eth3, weight 1, 6d05h30m
 | ||
|    B>  10.0.0.100/32 [200/0] via 10.0.0.8 (vrf default) (recursive), label 80, weight 1, 04:22:00
 | ||
|      *                          	via 172.16.90.1, eth0 (vrf default), label 24/80, weight 1, 04:22:00
 | ||
| 
 | ||
| - “show bgp ipv4 vpn x.x.x.x/32” for checking the best-path to the 
 | ||
|    specific VPNv4 destination including extended community and 
 | ||
|    remotelabel information. This procedure is the same on all Spoke nodes:
 | ||
|    
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE1:~$ show bgp ipv4 vpn 10.0.0.100/32
 | ||
|    BGP routing table entry for 10.80.80.1:1011:10.0.0.100/32
 | ||
|    not allocated
 | ||
|    Paths: (2 available, best #1)
 | ||
|      Not advertised to any peer
 | ||
|      65035
 | ||
|    	10.0.0.8 from 10.0.0.1 (10.0.0.8)
 | ||
|      	Origin incomplete, metric 0, localpref 100, valid, internal, best (Neighbor IP)
 | ||
|      	Extended Community: RT:65035:1030
 | ||
|      	Originator: 10.0.0.8, Cluster list: 10.0.0.1
 | ||
|      	Remote label: 80
 | ||
|      	Last update: Tue Oct 19 13:45:26 2021
 | ||
|      65035
 | ||
|    	10.0.0.8 from 10.0.0.2 (10.0.0.8)
 | ||
|      	Origin incomplete, metric 0, localpref 100, valid, internal
 | ||
|      	Extended Community: RT:65035:1030
 | ||
|      	Originator: 10.0.0.8, Cluster list: 10.0.0.1
 | ||
|      	Remote label: 80
 | ||
|      	Last update: Wed Oct 13 12:39:34 202
 | ||
| 
 | ||
| Now, let’s check routing information on out Hub PE:
 | ||
| 
 | ||
| - “show bgp ipv4 vpn summary” for checking iBGP neighbors again 
 | ||
|    VyOS-RR1/RR2
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE2:~$ show bgp ipv4 vpn summary
 | ||
|    BGP router identifier 10.0.0.8, local AS number 65001 vrf-id 0
 | ||
|    BGP table version 0
 | ||
|    RIB entries 9, using 1728 bytes of memory
 | ||
|    Peers 2, using 43 KiB of memory
 | ||
|    Peer groups 1, using 64 bytes of memory
 | ||
|    
 | ||
|    Neighbor    	V     	AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt
 | ||
|    10.0.0.1     	4  	65001 	15982 	15949    	0	0	0 05:41:28        	6    	4
 | ||
|    10.0.0.2     	4  	65001  	9060  	9054    	0	0	0 6d06h47m        	6    	4
 | ||
|    
 | ||
|    Total number of neighbors
 | ||
| 
 | ||
| - “show bgp vrf all” for checking all the prefixes learning on BGP
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE2:~$ show bgp vrf all
 | ||
| 
 | ||
|    Instance default:
 | ||
|    No BGP prefixes displayed, 0 exist
 | ||
|    
 | ||
|    Instance BLUE_HUB:
 | ||
|    BGP table version is 50, local router ID is 10.80.80.1, vrf id 8
 | ||
|    Default local pref 100, local AS 65001
 | ||
|    Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
 | ||
|               	i internal, r RIB-failure, S Stale, R Removed
 | ||
|    Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self
 | ||
|    Origin codes:  i - IGP, e - EGP, ? - incomplete
 | ||
|    
 | ||
|       Network      	Next Hop        	Metric LocPrf Weight Path
 | ||
|    *> 10.50.50.0/24	10.0.0.7@0<           	0	100  	0 i
 | ||
|    *               	10.0.0.7@0<           	0	100  	0 i
 | ||
|    *> 10.60.60.0/24	10.0.0.10@0<       	0	100  	0 i
 | ||
|    *               	10.0.0.10@0<       	0	100  	0 i
 | ||
|    *  10.80.80.0/24	10.80.80.2           	0         	0 65035 ?
 | ||
|    *               	0.0.0.0              	0     	32768 i
 | ||
|    *>              	0.0.0.0              	0     	32768 ?
 | ||
|    *> 10.110.110.0/24  172.16.80.2@9<       	0         	0 65050 i
 | ||
|    *> 10.210.210.0/24  10.0.0.9@0<           	0	100  	0 65050 i
 | ||
|    *               	10.0.0.9@0<           	0	100  	0 65050 i
 | ||
|    *> 10.0.0.80/32   10.0.0.7@0<           	0	100  	0 65035 i
 | ||
|    *               	10.0.0.7@0<           	0	100  	0 65035 i
 | ||
|    *> 10.0.0.90/32   10.0.0.10@0<       	0	100  	0 65035 i
 | ||
|    *               	10.0.0.10@0<       	0	100  	0 65035 i
 | ||
|    *> 10.0.0.100/32
 | ||
|                    	10.80.80.2           	0         	0 65035 ?
 | ||
|    *> 172.16.80.0/24   0.0.0.0@9<           	0     	32768 ?
 | ||
|                    	0.0.0.0@9<           	0     	32768 i
 | ||
|    *> 172.16.100.0/24  10.0.0.9@0<           	0	100  	0 i
 | ||
|    *               	10.0.0.9@0<           	0	100  	0 i
 | ||
| 
 | ||
| - “show bgp vrf BLUE_HUB summary” for checking EBGP neighbor 
 | ||
|    CE Hub device
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE2:~$ show bgp vrf BLUE_HUB summary
 | ||
| 
 | ||
|    IPv4 Unicast Summary:
 | ||
|    BGP router identifier 10.80.80.1, local AS number 65001 vrf-id 8
 | ||
|    BGP table version 50
 | ||
|    RIB entries 19, using 3648 bytes of memory
 | ||
|    Peers 1, using 21 KiB of memory
 | ||
|    
 | ||
|    Neighbor    	V     	AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt
 | ||
|    10.80.80.2  	4  	65035 	15954 	15972    	   0	0	   0   01w4d01h        	2   	10
 | ||
|    
 | ||
| - “show ip route vrf BLUE_HUB” to view the RIB in our Hub PE. 
 | ||
|    With this command we are able to check the transport and 
 | ||
|    customer label (inner/outer) for network spokes prefixes 
 | ||
|    10.0.0.80/32 - 10.0.0.90/32
 | ||
|    
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE2:~$ show ip route vrf BLUE_HUB
 | ||
|    Codes: K - kernel route, C - connected, S - static, R - RIP,
 | ||
|       	O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
 | ||
|       	T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
 | ||
|       	F - PBR, f - OpenFabric,
 | ||
|       	> - selected route, * - FIB route, q - queued, r - rejected, b - backup
 | ||
|    VRF BLUE_HUB:
 | ||
|    K>* 0.0.0.0/0 [255/8192] unreachable (ICMP unreachable), 01w4d01h
 | ||
|    B>  10.50.50.0/24 [200/0] via 10.0.0.7 (vrf default) (recursive), label 144, weight 1, 05:53:15
 | ||
|      *                     	via 172.16.100.1, eth1 (vrf default), label 22/144, weight 1, 05:53:15
 | ||
|    B>  10.60.60.0/24 [200/0] via 10.0.0.10 (vrf default) (recursive), label 144, weight 1, 05:53:15
 | ||
|      *                     	via 172.16.110.1, eth0 (vrf default), label 23/144, weight 1, 05:53:15
 | ||
|    C>* 10.80.80.0/24 is directly connected, eth3, 01w4d01h
 | ||
|    B>* 10.110.110.0/24 [200/0] via 172.16.80.2, eth2 (vrf GREEN), weight 1, 01w4d01h
 | ||
|    B>  10.210.210.0/24 [200/0] via 10.0.0.9 (vrf default) (recursive), label 144, weight 1, 05:53:15
 | ||
|      *                       	via 172.16.100.1, eth1 (vrf default), label 18/144, weight 1, 05:53:15
 | ||
|      *                       	via 172.16.110.1, eth0 (vrf default), label 22/144, weight 1, 05:53:15
 | ||
|    B>  10.0.0.80/32 [200/0] via 10.0.0.7 (vrf default) (recursive), label 144, weight 1, 05:53:15
 | ||
|      *                      	via 172.16.100.1, eth1 (vrf default), label 22/144, weight 1, 05:53:15
 | ||
|    B>  10.0.0.90/32 [200/0] via 10.0.0.10 (vrf default) (recursive), label 144, weight 1, 05:53:15
 | ||
|      *                      	via 172.16.110.1, eth0 (vrf default), label 23/144, weight 1, 05:53:15
 | ||
|    B>* 10.0.0.100/32 [20/0] via 10.80.80.2, eth3, weight 1, 01w4d01h
 | ||
|    B>* 172.16.80.0/24 [200/0] is directly connected, eth2 (vrf GREEN), weight 1, 01w4d01h
 | ||
|    B>  172.16.100.0/24 [200/0] via 10.0.0.9 (vrf default) (recursive), label 144, weight 1, 05:53:15
 | ||
|      *                       	via 172.16.100.1, eth1 (vrf default), label 18/144, weight 1, 05:53:15
 | ||
|      *                       	via 172.16.110.1, eth0 (vrf default), label 22/144, weight 1, 05:53:15
 | ||
| 
 | ||
| - “show bgp ipv4 vpn x.x.x.x/32” for checking best-path, 
 | ||
|    extended community and remote label of specific destination
 | ||
|    
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    vyos@VyOS-PE2:~$ show bgp ipv4 vpn 10.0.0.80/32
 | ||
|    BGP routing table entry for 10.50.50.1:1011:10.0.0.80/32
 | ||
|    not allocated
 | ||
|    Paths: (2 available, best #1)
 | ||
|      Not advertised to any peer
 | ||
|      65035
 | ||
|    	10.0.0.7 from 10.0.0.1 (10.0.0.7)
 | ||
|      	Origin IGP, metric 0, localpref 100, valid, internal, best (Neighbor IP)
 | ||
|      	Extended Community: RT:65035:1011
 | ||
|      	Originator: 10.0.0.7, Cluster list: 10.0.0.1
 | ||
|      	Remote label: 144
 | ||
|      	Last update: Tue Oct 19 13:45:30 2021
 | ||
|      65035
 | ||
|    	10.0.0.7 from 10.0.0.2 (10.0.0.7)
 | ||
|      	Origin IGP, metric 0, localpref 100, valid, internal
 | ||
|      	Extended Community: RT:65035:1011
 | ||
|      	Originator: 10.0.0.7, Cluster list: 10.0.0.1
 | ||
|      	Remote label: 144
 | ||
|      	Last update: Wed Oct 13 12:39:37 2021
 | ||
|    
 | ||
|    vyos@VyOS-PE2:~$ show bgp ipv4 vpn 10.0.0.90/32
 | ||
|    BGP routing table entry for 10.60.60.1:1011:10.0.0.90/32
 | ||
|    not allocated
 | ||
|    Paths: (2 available, best #1)
 | ||
|      Not advertised to any peer
 | ||
|      65035
 | ||
|    	10.0.0.10 from 10.0.0.1 (10.0.0.10)
 | ||
|      	Origin IGP, metric 0, localpref 100, valid, internal, best (Neighbor IP)
 | ||
|      	Extended Community: RT:65035:1011
 | ||
|      	Originator: 10.0.0.10, Cluster list: 10.0.0.1
 | ||
|      	Remote label: 144
 | ||
|     	Last update: Tue Oct 19 13:45:30 2021
 | ||
|      65035
 | ||
|    	10.0.0.10 from 10.0.0.2 (10.0.0.10)
 | ||
|      	Origin IGP, metric 0, localpref 100, valid, internal
 | ||
|      	Extended Community: RT:65035:1011
 | ||
|      	Originator: 10.0.0.10, Cluster list: 10.0.0.1
 | ||
|      	Remote label: 144
 | ||
|      	Last update: Wed Oct 13 12:45:44 2021
 | ||
| 
 | ||
| Finally, let’s check the reachability between CEs:
 | ||
| 
 | ||
| - VyOS-CE1-SPOKE ----->   VyOS-CE-HUB
 | ||
| 
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # check rib 
 | ||
|    vyos@VyOS-CE1-SPOKE:~$ show ip route
 | ||
|    Codes: K - kernel route, C - connected, S - static, R - RIP,
 | ||
|       	O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
 | ||
|       	T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
 | ||
|       	F - PBR, f - OpenFabric,
 | ||
|       	> - selected route, * - FIB route, q - queued, r - rejected, b - backup
 | ||
|    
 | ||
|    B   10.50.50.0/24 [20/0] via 10.50.50.1 inactive, weight 1, 6d07h53m
 | ||
|    C>* 10.50.50.0/24 is directly connected, eth0, 09w0d00h
 | ||
|    B>* 10.80.80.0/24 [20/0] via 10.50.50.1, eth0, weight 1, 6d07h53m
 | ||
|    C>* 10.0.0.80/32 is directly connected, dum20, 09w0d00h
 | ||
|    B>* 10.0.0.100/32 [20/0] via 10.50.50.1, eth0, weight 1, 6d07h53m
 | ||
|    
 | ||
|    # check icmp
 | ||
|    vyos@VyOS-CE1-SPOKE:~$ ping 10.0.0.100 interface 10.0.0.80
 | ||
|    PING 10.0.0.100 (10.0.0.100) from 10.0.0.80 : 56(84) bytes of data.
 | ||
|    64 bytes from 10.0.0.100: icmp_seq=1 ttl=62 time=6.52 ms
 | ||
|    64 bytes from 10.0.0.100: icmp_seq=2 ttl=62 time=4.13 ms
 | ||
|    64 bytes from 10.0.0.100: icmp_seq=3 ttl=62 time=4.04 ms
 | ||
|    64 bytes from 10.0.0.100: icmp_seq=4 ttl=62 time=4.03 ms
 | ||
|    ^C
 | ||
|    --- 10.0.0.100 ping statistics ---
 | ||
|    4 packets transmitted, 4 received, 0% packet loss, time 8ms
 | ||
|    rtt min/avg/max/mdev = 4.030/4.680/6.518/1.064 ms
 | ||
|    
 | ||
|    # check network path
 | ||
|    vyos@VyOS-CE1-SPOKE:~$ traceroute 10.0.0.100
 | ||
|    traceroute to 10.0.0.100 (10.0.0.100), 30 hops max, 60 byte packets
 | ||
|     1  10.50.50.1 (10.50.50.1)  1.041 ms  1.252 ms  1.835 ms
 | ||
|     2  * * *
 | ||
|     3  10.0.0.100 (10.0.0.100)  9.225 ms  9.159 ms  9.121 m
 | ||
| 
 | ||
| - VyOS-CE-HUB -------> VyOS-CE1-SPOKE
 | ||
| - VyOS-CE-HUB -------> VyOS-CE2-SPOKE
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # check rib
 | ||
|    vyos@VyOS-CE-HUB:~$ show ip route
 | ||
|    Codes: K - kernel route, C - connected, S - static, R - RIP,
 | ||
|       	O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
 | ||
|       	T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
 | ||
|       	F - PBR, f - OpenFabric,
 | ||
|       	> - selected route, * - FIB route, q - queued, r - rejected, b - backup
 | ||
|    
 | ||
|    B>* 10.50.50.0/24 [20/0] via 10.80.80.1, eth0, weight 1, 6d08h04m
 | ||
|    B>* 10.60.60.0/24 [20/0] via 10.80.80.1, eth0, weight 1, 6d08h35m
 | ||
|    C>* 10.80.80.0/24 is directly connected, eth0, 01w6d07h
 | ||
|    B>* 10.110.110.0/24 [20/0] via 10.80.80.1, eth0, weight 1, 01w4d02h
 | ||
|    B>* 10.210.210.0/24 [20/0] via 10.80.80.1, eth0, weight 1, 6d08h35m
 | ||
|    B>* 10.0.0.80/32 [20/0] via 10.80.80.1, eth0, weight 1, 6d08h04m
 | ||
|    B>* 10.0.0.90/32 [20/0] via 10.80.80.1, eth0, weight 1, 6d08h35m
 | ||
|    C>* 10.0.0.100/32 is directly connected, dum20, 01w6d07h
 | ||
|    B>* 172.16.80.0/24 [20/0] via 10.80.80.1, eth0, weight 1, 01w4d02h
 | ||
|    B>* 172.16.100.0/24 [20/0] via 10.80.80.1, eth0, weight 1, 6d08h35m
 | ||
|    
 | ||
|    # check icmp
 | ||
|    vyos@VyOS-CE-HUB:~$ ping 10.0.0.80 interface 10.0.0.100 c 4
 | ||
|    PING 10.0.0.80 (10.0.0.80) from 10.0.0.100 : 56(84) bytes of data.
 | ||
|    64 bytes from 10.0.0.80: icmp_seq=1 ttl=62 time=3.31 ms
 | ||
|    64 bytes from 10.0.0.80: icmp_seq=2 ttl=62 time=4.23 ms
 | ||
|    64 bytes from 10.0.0.80: icmp_seq=3 ttl=62 time=3.89 ms
 | ||
|    64 bytes from 10.0.0.80: icmp_seq=4 ttl=62 time=3.22 ms
 | ||
|    
 | ||
|    --- 10.0.0.80 ping statistics ---
 | ||
|    4 packets transmitted, 4 received, 0% packet loss, time 9ms
 | ||
|    rtt min/avg/max/mdev = 3.218/3.661/4.226/0.421 ms
 | ||
|    
 | ||
|    vyos@VyOS-CE-HUB:~$ ping 10.0.0.90 interface 10.0.0.100 c 4
 | ||
|    PING 10.0.0.90 (10.0.0.90) from 10.0.0.100 : 56(84) bytes of data.
 | ||
|    64 bytes from 10.0.0.90: icmp_seq=1 ttl=62 time=7.46 ms
 | ||
|    64 bytes from 10.0.0.90: icmp_seq=2 ttl=62 time=4.43 ms
 | ||
|    64 bytes from 10.0.0.90: icmp_seq=3 ttl=62 time=4.60 ms
 | ||
|    ^C
 | ||
|    --- 10.0.0.90 ping statistics ---
 | ||
|    3 packets transmitted, 3 received, 0% packet loss, time 6ms
 | ||
|    rtt min/avg/max/mdev = 4.430/5.498/7.463/1.391 ms
 | ||
|    
 | ||
|    # check network path
 | ||
|    vyos@VyOS-CE-HUB:~$ traceroute 10.0.0.80
 | ||
|    traceroute to 10.0.0.80 (10.0.0.80), 30 hops max, 60 byte packets
 | ||
|     1  10.80.80.1 (10.80.80.1)  1.563 ms  1.341 ms  1.075 ms
 | ||
|     2  * * *
 | ||
|     3  10.0.0.80 (10.0.0.80)  8.125 ms  8.019 ms  7.781 ms
 | ||
|    
 | ||
|    vyos@VyOS-CE-HUB:~$ traceroute 10.0.0.90
 | ||
|    traceroute to 10.0.0.90 (10.0.0.90), 30 hops max, 60 byte packets
 | ||
|     1  10.80.80.1 (10.80.80.1)  1.305 ms  1.137 ms  1.097 ms
 | ||
|     2  * * *
 | ||
|     3  * * *
 | ||
|     4  10.0.0.90 (10.0.0.90)  9.358 ms  9.325 ms  9.292 ms
 | ||
| 
 | ||
| - VyOS-CE2-SPOKE ------->  VyOS-CE-HUB
 | ||
| 
 | ||
| .. code-block:: none
 | ||
|    
 | ||
|    # check rib
 | ||
|    vyos@rt-ce2-SPOKE:~$ show ip route
 | ||
|    Codes: K - kernel route, C - connected, S - static, R - RIP,
 | ||
|       	O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
 | ||
|       	T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
 | ||
|       	F - PBR, f - OpenFabric,
 | ||
|       	> - selected route, * - FIB route, q - queued, r - rejected, b - backup
 | ||
|    
 | ||
|    B   10.60.60.0/24 [20/0] via 10.60.60.1 inactive, weight 1, 02w6d00h
 | ||
|    C>* 10.60.60.0/24 is directly connected, eth0, 02w6d00h
 | ||
|    B>* 10.80.80.0/24 [20/0] via 10.60.60.1, eth0, weight 1, 6d08h46m
 | ||
|    C>* 10.0.0.90/32 is directly connected, dum20, 02w6d00h
 | ||
|    B>* 10.0.0.100/32 [20/0] via 10.60.60.1, eth0, weight 1, 6d08h46m
 | ||
|    
 | ||
|    # check icmp
 | ||
|    vyos@rt-ce2-SPOKE:~$ ping 10.0.0.100 interface 10.0.0.90 c 4
 | ||
|    PING 10.0.0.100 (10.0.0.100) from 10.0.0.90 : 56(84) bytes of data.
 | ||
|    64 bytes from 10.0.0.100: icmp_seq=1 ttl=62 time=4.97 ms
 | ||
|    64 bytes from 10.0.0.100: icmp_seq=2 ttl=62 time=4.45 ms
 | ||
|    64 bytes from 10.0.0.100: icmp_seq=3 ttl=62 time=4.20 ms
 | ||
|    64 bytes from 10.0.0.100: icmp_seq=4 ttl=62 time=4.29 ms
 | ||
|    
 | ||
|    --- 10.0.0.100 ping statistics ---
 | ||
|    4 packets transmitted, 4 received, 0% packet loss, time 9ms
 | ||
|    rtt min/avg/max/mdev = 4.201/4.476/4.971/0.309 ms
 | ||
|    
 | ||
|    # check network path
 | ||
|    vyos@rt-ce2-SPOKE:~$ traceroute 10.0.0.100
 | ||
|    traceroute to 10.0.0.100 (10.0.0.100), 30 hops max, 60 byte packets
 | ||
|     1  10.60.60.1 (10.60.60.1)  1.343 ms  1.190 ms  1.152 ms
 | ||
|     2  * * *
 | ||
|     3  * * *
 | ||
|     4  10.0.0.100 (10.0.0.100)  7.504 ms  7.480 ms  7.488 ms
 | ||
| 
 | ||
| **Note:** At the moment, trace mpls doesn’t show labels/paths. So we’ll see * * *  for the transit routers of the mpls backbone.
 |