Предположим у нас есть такая топология :
Для начала настроим маршрутизацию на устройствах :
R1
interface Loopback0
ip address 1.1.1.1 255.255.255.255interface GigabitEthernet1
ip address 10.0.5.1 255.255.255.0 interface GigabitEthernet2
ip address 10.0.0.1 255.255.255.0
mpls ip interface GigabitEthernet3
ip address 10.0.1.1 255.255.255.0
mpls ip router ospf 1
router-id 1.1.1.1
network 1.1.1.1 0.0.0.0 area 0
network 10.0.0.0 0.0.0.255 area 0
network 10.0.1.0 0.0.0.255 area 0R2
interface Loopback0
ip address 2.2.2.2 255.255.255.255
interface GigabitEthernet1
ip address 10.0.0.2 255.255.255.0
mpls ip router ospf 1
router-id 2.2.2.2
network 2.2.2.2 0.0.0.0 area 0
network 10.0.0.0 0.0.0.255 area 0R3
interface Loopback0
ip address 3.3.3.3 255.255.255.255
interface GigabitEthernet1
ip address 10.0.1.2 255.255.255.0
mpls ip router ospf 1
router-id 3.3.3.3
network 3.3.3.3 0.0.0.0 area 0
network 10.0.1.0 0.0.0.255 area 0
Как видим ничего сложного , для передачи лупбеков используем OSPF, так же сразу включаем LDP на интерфейсах. Далее настроим VPNv4 соседство как указано на нашей схеме, то есть у R2 и R3 будет соседство с R1, настройки на R4 пока отложим.
R1
router bgp 65000
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 2.2.2.2 remote-as 65000
neighbor 2.2.2.2 update-source Loopback0
neighbor 3.3.3.3 remote-as 65000
neighbor 3.3.3.3 update-source Loopback0
!
address-family vpnv4
neighbor 2.2.2.2 activate
neighbor 2.2.2.2 send-community extended
neighbor 3.3.3.3 activate
neighbor 3.3.3.3 send-community extended
exit-address-familyR2,R3router bgp 65000
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 1.1.1.1 remote-as 65000
neighbor 1.1.1.1 update-source Loopback0
!
address-family vpnv4
neighbor 1.1.1.1 activate
neighbor 1.1.1.1 send-community extended
exit-address-family
VPNv4 BGP соседство у нас поднялось, но передавать пока нечего:
Теперь время создать наши VRF , у нас их будет два, VRF-A и VRF-B :
На R1 создадим VRF-A и VRF-B:ip vrf VRF-A
rd 1.1.1.1:10
route-target export 65000:10
route-target import 65000:10
ip vrf VRF-B
rd 1.1.1.1:20
route-target export 65000:20
route-target import 65000:20
На R2 создадим VRF-A :
ip vrf VRF-A
rd 2.2.2.2:10
route-target export 65000:10
route-target import 65000:10
На R3 создадим VRF-B : ip vrf VRF-B
rd 3.3.3.3:20
route-target export 65000:20
route-target import 65000:20
Создадим лупбек интерфейсы и добавим их в созданные VRF :
На R1:
interface Loopback10
ip vrf forwarding VRF-A
ip address 10.10.10.1 255.255.255.255
interface Loopback20
ip vrf forwarding VRF-B
ip address 10.10.20.1 255.255.255.255На R2:
interface Loopback10
ip vrf forwarding VRF-A
ip address 10.10.10.2 255.255.255.255на R3:
interface Loopback20
ip vrf forwarding VRF-B
ip address 10.10.20.3 255.255.255.255
Проанонсируем наши подсети в BGP:
на R1
router bgp 65000
address-family ipv4 vrf VRF-A
redistribute connected
exit-address-family
!
address-family ipv4 vrf VRF-B
redistribute connected
exit-address-familyна R2 :
router bgp 65000
address-family ipv4 vrf VRF-A
redistribute connected
exit-address-familyна R3:
router bgp 65000
address-family ipv4 vrf VRF-B
redistribute connected
exit-address-family
После введенных команд начнется обмен VPNv4 префиксами:
И в наши VRF прилетят маршруты (Точнее пока только один маршрут):
Можно пропинговать полученные маршруты:
Как видим все в порядке . Между R1 и R4 у нас стык, на котором используется Option -A , для работы Opion-A нам надо для каждого VRF организовать ip связанность между R1 и R4, не трудно догадаться что для этого мы будем использовать саб интерфейсы :
на R1 :
interface GigabitEthernet1.10
encapsulation dot1Q 10
ip vrf forwarding VRF-A
ip address 172.16.10.1 255.255.255.0interface GigabitEthernet1.20
encapsulation dot1Q 20
ip vrf forwarding VRF-B
ip address 172.16.20.1 255.255.255.0
Можно переходить к настойкам роутера R4:
создадим VRF-A и VRF-B :ip vrf VRF-A
rd 11.11.11.11:10
route-target export 65100:10
route-target import 65100:10
!
ip vrf VRF-B
rd 11.11.11.11:20
route-target export 65100:20
route-target import 65100:20Создадим сабинтерфейсы для option-a стыка: interface GigabitEthernet1.10
encapsulation dot1Q 10
ip vrf forwarding VRF-A
ip address 172.16.10.2 255.255.255.0
!
interface GigabitEthernet1.20
encapsulation dot1Q 20
ip vrf forwarding VRF-B
ip address 172.16.20.2 255.255.255.0создадим лупбек интерфейсы и посадим их в созданные VRF : interface Loopback10
ip vrf forwarding VRF-A
ip address 44.44.44.10 255.255.255.255
!
interface Loopback20
ip vrf forwarding VRF-B
ip address 44.44.44.20 255.255.255.255
Ну и последний штрих , организация передачи маршрутов через Option- A стык, я буду использовать EBGP.
на R1 настраиваем EBGP соседство для каждого VRF:
router bgp 65000
address-family ipv4 vrf VRF-A
neighbor 172.16.10.2 remote-as 65100
neighbor 172.16.10.2 activate
exit-address-family
address-family ipv4 vrf VRF-B
neighbor 172.16.20.2 remote-as 65100
neighbor 172.16.20.2 activate
exit-address-familyна R4 настраиваем EBGP соседство, и анонсируем сети лупбек интерфейсов: router bgp 65100
bgp log-neighbor-changes
no bgp default ipv4-unicast
!
address-family ipv4 vrf VRF-A
network 44.44.44.10 mask 255.255.255.255
neighbor 172.16.10.1 remote-as 65000
neighbor 172.16.10.1 activate
exit-address-family
!
address-family ipv4 vrf VRF-B
network 44.44.44.20 mask 255.255.255.255
redistribute connected
neighbor 172.16.20.1 remote-as 65000
neighbor 172.16.20.1 activate
exit-address-family
Ну вот и все , можно проверить маршрутизацию :
Как видим маршруты прилетают , можно пропинговать :
Возможно позже добавлю Option-C стык … Но это не точно…