Dawno temu napisałem o tworzeniu VRF’ów na platformie Cisco. We wcześniejszym artykule umieściłem opis co to jest VRF oraz do czego może służyć. Dziś wracam do tematu ale na urządzeniach firmy Huawei, do tego wykorzystam oprogramowanie eNSP które udostępnia ten Vendor.
Na wstępie trzeba powiedzieć że na platformie Huwaei VRF nazywamy vpn-instance. Ale dla przejrzystości wpisu będę posługiwał się nadal nazwą VRF
Mała Uwaga
Jedną z różnic jaką znalazłem pomiędzy Cisco a Huawei to, że nie możemy robić exportu i importu tzw. routing leaking z i do globalnej tablicy routingu. Z jednej strony jest to zabezpieczenie dla głównej tablicy routingu, która służy do zestawienia sieci MPLS – przy projektowaniu sieci trzeba o tym pamiętać.
Rysunek poglądowy:
Praca w eNSP
Uruchamiamy nasze eNSP w którym tworzymy nową topologię gdzie w niej umieszczamy na chwilę obecną jeden router AR2240 które uruchamiamy i przechodzimy do konfiguracji.
gdzie konfigurujemy:
- nowy hostname
- pierwszy vrf Internet
- nadajemy route-distingusisher
- nadajemy import i export dla tego VRF’u
Krok 2 powtarzamy dla 2 pozostałych vrfów
[Huawei]sysname vrf-test [vrf-test] [vrf-test] [vrf-test] [vrf-test]ip vpn-instance Internet [vrf-test-vpn-instance-Internet]rou [vrf-test-vpn-instance-Internet]route-distinguisher 65000:100 [vrf-test-vpn-instance-Internet-af-ipv4]ip [vrf-test-vpn-instance-Internet-af-ipv4]vp [vrf-test-vpn-instance-Internet-af-ipv4]vpn [vrf-test-vpn-instance-Internet-af-ipv4]vpn-target 65000:100 IVT Assignment result: Info: VPN-Target assignment is successful. EVT Assignment result: Info: VPN-Target assignment is successful. [vrf-test-vpn-instance-Internet-af-ipv4]
Konfiguracja wygląda tak dla trzech vrfów
# ip vpn-instance Internet ipv4-family route-distinguisher 65000:100 vpn-target 65000:100 export-extcommunity vpn-target 65000:100 import-extcommunity # ip vpn-instance dc1 ipv4-family route-distinguisher 65000:101 vpn-target 65000:101 export-extcommunity vpn-target 65000:101 import-extcommunity # ip vpn-instance mgmt ipv4-family route-distinguisher 65000:102 vpn-target 65000:102 export-extcommunity vpn-target 65000:102 import-extcommunity #
Wyświetlamy jakie są VRF’y – używamy do tego polecenia display ip vpn-instance
<vrf-test>display ip vpn-instance Total VPN-Instances configured : 3 Total IPv4 VPN-Instances configured : 3 Total IPv6 VPN-Instances configured : 0 VPN-Instance Name RD Address-family Internet 65000:100 IPv4 dc1 65000:101 IPv4 mgmt 65000:102 IPv4
Konfigurujemy interfejsy w każdy z VRF’ów
przykład tworzymy interfejs LoopBack 100 który przypisujemy do VRF Internet i nadajemy jemu adres
[vrf-test]int LoopBack 100 [vrf-test-LoopBack100]ip bg [vrf-test-LoopBack100]ip b [vrf-test-LoopBack100]ip binding vp [vrf-test-LoopBack100]ip binding vpn-instance Internet Info: All IPv4 related configurations on this interface are removed! Info: All IPv6 related configurations on this interface are removed! [vrf-test-LoopBack100]ip ad [vrf-test-LoopBack100]ip address 192.168.10.1 32
Konfiguracja LoopBacków dla wszystkich VRF’ów
# interface LoopBack100 ip binding vpn-instance Internet ip address 192.168.10.1 255.255.255.255 # interface LoopBack101 ip binding vpn-instance dc1 ip address 10.10.10.1 255.255.255.255 # interface LoopBack102 ip binding vpn-instance mgmt ip address 10.255.255.1 255.255.255.255 #
sprawdzamy przypisanie interfejsów do VRF’ów
<vrf-test>display ip vpn-instance interface Total VPN-Instances configured : 3 VPN-Instance Name and ID : Internet, 1 Interface Number : 1 Interface list : LoopBack100 VPN-Instance Name and ID : dc1, 2 Interface Number : 1 Interface list : LoopBack101 VPN-Instance Name and ID : mgmt, 3 Interface Number : 1 Interface list : LoopBack102
Konfigurujemy MP-BGP
Konfigurujemy multiprotocol bgp dla każdego VRF’u gdzie skonfigurujemy wszystkie sieci direct będą dystrybuowane przez MP-BGP. Ta konfiguracja posłuży nam to połączenia pomiędzy VRF’ami – wykonamy leaking.
<vrf-test>system-view Enter system view, return user view with Ctrl+Z. [vrf-test]bgp 65000 [vrf-test-bgp]ipv4-family vpn-instance Internet [vrf-test-bgp-Internet]import-route direct
konfiguracja całości:
# bgp 65000 # ipv4-family unicast undo synchronization # ipv4-family vpn-instance Internet import-route direct # ipv4-family vpn-instance dc1 import-route direct # ipv4-family vpn-instance mgmt import-route direct #
Konfigurujemy odpowiednio leaking pomiędzy VRF’ami
VRF | Internet | DC1 | MGMT |
Internet | I/E | I | I |
DC1 | brak | I/E | I |
MGMT | Brak | I | I/E |
[vrf-test]ip vpn-instance mgmt [vrf-test-vpn-instance-mgmt]vpn-target 65000:101 import-extcommunity IVT Assignment result: Info: VPN-Target assignment is successful. [vrf-test-vpn-instance-mgmt]
cała konfiguracja
# ip vpn-instance Internet ipv4-family route-distinguisher 65000:100 vpn-target 65000:100 export-extcommunity vpn-target 65000:100 65000:101 65000:102 import-extcommunity # ip vpn-instance dc1 ipv4-family route-distinguisher 65000:101 vpn-target 65000:101 export-extcommunity vpn-target 65000:101 65000:102 import-extcommunity # ip vpn-instance mgmt ipv4-family route-distinguisher 65000:102 vpn-target 65000:102 export-extcommunity vpn-target 65000:102 65000:101 import-extcommunity #
weryfikacja MP-BGP
<vrf-test>display bgp vpnv4 all brief VPNv4: RD Num Peer Num Route Num 3 0 3 VPN-Instance(IPv4-family): VPN-Instance Name Peer Num Route Num Internet 0 3 dc1 0 2 mgmt 0 2
weryfikacja tablic routingu zgodnie tabelką wyżej
<vrf-test>display ip routing-table vpn-instance Internet Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: Internet Destinations : 4 Routes : 4 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.10.10.1/32 BGP 255 0 D 127.0.0.1 InLoopBack0 10.255.255.1/32 BGP 255 0 D 127.0.0.1 InLoopBack0 192.168.10.1/32 Direct 0 0 D 127.0.0.1 LoopBack100 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 <vrf-test>display ip routing-table vpn-instance DC1 Info: The specified VPN instance does not exist. <vrf-test>display ip routing-table vpn-instance dc1 Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: dc1 Destinations : 3 Routes : 3 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.10.10.1/32 Direct 0 0 D 127.0.0.1 LoopBack101 10.255.255.1/32 BGP 255 0 D 127.0.0.1 InLoopBack0 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 <vrf-test>display ip routing-table vpn-instance mgmt Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Tables: mgmt Destinations : 3 Routes : 3 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.10.10.1/32 BGP 255 0 D 127.0.0.1 InLoopBack0 10.255.255.1/32 Direct 0 0 D 127.0.0.1 LoopBack102 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 <vrf-test>