VRF Lite – VRF без MPLS

MPLS VRF-ите са едно колкото популярно, толкова и рекламирано решение за provider vpn-и и сегрегация на трафик в трета мрежа, което предлага и разчита на няколко неща, за да се продава 😉 :

  • Сегментиране на трафик между устройства на различни клиенти през трета мрежа, обикновено доставчик на услуга;
  • Възможност за запазване на маршрутната информация на клиента, чрез прозрачно пренасяне на маршрутната информация между неговите устройства от различните страни на мрежата на доставчика;
  • Възможност за доставчика да носи няколко маршрутни таблици, сегментирани една от друга, и евентуално включващи припокриващи се адресни пространства, вkл. RFC1918 адреси;

Решението за такава ситуация, базирано на MPLS VPN-и с различни VRF-и (Virtual Routing and Forwarding) разрешава всички от гореизброените проблеми на базата на няколко неща:

  • Настройка на маршрутно отношение между клиентският (Customer Edge – CE) рутер, и граничен рутер на доставчика (Provider Edge – PE), използвайки рутинг протокола на клиента;
  • Анонсиране от клиента на всички вътрешни мрежи по това рутинг отношение, както към вътрешен рутинг съсед в клиентската мрежа;
  • Наличие на поне една VRF инстанция за всеки клиент;
  • Маркиране от страна на PE устройството на клиентските маршрути със специфичен Route Distinguisher (RD) етикет, по този начин формирайки т.нар. VPNv4 адрес;
  • Редистрибуция от PE устройтвото на клиентските маршрути от клиентският рутинг протокол към MP-iBGP протокол, вървящ между PE устройствата в различните краища на мрежата на доставчика;
  • Наличие на стабилен вътрешен IGP рутинг протокол, осигуряващ свързаност на MPLS мрежата и косвено на MP-BGP;
  • Наличие на стабилна и мащабируема MPLS конфигурация в опорната мрежа на доставчика;

Всичко това е чудесно, ако сте доставчик, имащ готов MPLS Core. Ако обаче се опитвате да разработите специфично решение за собствени нужди, решение базирано на MPLS VPN ви изправя пред няколко предизвикателства, повечето от които са свързани с осигуряване на скъпи ресурси:

  • Настройка на 3 рутинг протокола на всяко PE-устройство (протокол на клиента, MP-BGP, и отделен вътрешен рутинг протокол);
  • Осигуряване  на достатъчно мощни и надеждни PE-рутери, способни да поддържат надеждно и мащабируемо 3те рутинг протокола, както и определен брой VRF-и;
  • Осигуряване на достатъчно мощни и надеждни core рутери, поддържащи MPLS Core на мрежата;

VRF Lite представлява VRF без изискване за опорна MPLS свързаност, и без необходимост от 3 рутинг протокола на PE устройствата. По този начин можем да постигнем пренос на няколко паралалелни рутинг таблици през опорна мрежа, без да имаме MPLS.

При използването на VRF с MPLS разделеността на комуникацията между рутинг таблиците се постига чрез използването на отделен рутинг протокол между PE устройствата, който носи различните маршрутни таблици, тагнати със съответният етикет. За да има разделяне на комуникацията и сегрегация на отделните рутинг таблици при използването на VRF Lite, т.е. без MPLS, трябва да има разделена комуникация между рутинг отношенията, носещи различните маршрутни таблици.

За илюстрация на двата варианта VRF, можем да използваме две топологии на тестови мрежи.

VRF върху готов MPLS backbone с OSPF като вътрешен рутинг протокол

MPLS with OSPF and a single VRF

MPLS with OSPF and a single VRF

В тази ситуация имаме готова MPLS опорна мрежа, два клиентски рутера, и два PE рутера. В тази топология има един VRF – maka.biz – настроен между клиентските рутери. Да видим конфигурацията на двата PE рутера R5 и R6:

R5:

!
version 12.4
service timestamps debug datetime
service timestamps log datetime
service password-encryption
!
hostname AggrR5
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$PQ3m$GEf/oh.1lkMcCFmSVv05t0
!
no aaa new-model
!
resource policy
!
ip cef
!
!
!
We define the VRF here:
!------------------------
ip vrf maka.biz
rd 100:1
route-target export 1:100
route-target import 1:100
!
no ip domain lookup
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
username admin secret 5 $1$WQsy$l8IBaM0ei1LmFoBG8k/fb1
!
!
!
!
!
!
!
interface Loopback0
ip address 172.31.0.5 255.255.255.255
!
interface FastEthernet0/0
description IC to MPLSCore3 f0/0
ip address 172.30.254.2 255.255.255.252
duplex full
speed 100
mpls ip
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
interface POS1/0
ip vrf forwarding maka.biz
ip address 172.29.2.1 255.255.255.252
!
interface POS2/0
no ip address
shutdown
!
router eigrp 100
no default-information in
no auto-summary
!
address-family ipv4 vrf maka.biz
redistribute bgp 100 metric 64 1000 255 1 1500
network 172.29.2.0 0.0.0.3
no default-information in
no auto-summary
autonomous-system 100
exit-address-family
!
router ospf 100
router-id 172.31.0.5
log-adjacency-changes
redistribute connected subnets route-map INJECT-LOOPBACK-INTO-OSPF
network 172.30.254.0 0.0.0.3 area 1
!
router bgp 100
no synchronization
bgp log-neighbor-changes
neighbor 172.31.0.6 remote-as 100
neighbor 172.31.0.6 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 172.31.0.6 activate
neighbor 172.31.0.6 send-community both
exit-address-family
!
address-family ipv4 vrf maka.biz
redistribute eigrp 100
no synchronization
exit-address-family
!
no ip http server
no ip http secure-server
!
!
!
!
ip prefix-list Permit-Local-Loopback description Permits only local Loopback address
ip prefix-list Permit-Local-Loopback seq 10 permit 172.31.0.5/32
ip prefix-list Permit-Local-Loopback seq 20 deny 0.0.0.0/0 le 32
logging alarm informational
!
!
!
route-map INJECT-LOOPBACK-INTO-OSPF permit 10
match ip address prefix-list Permit-Local-Loopback
set tag 101
!
!
!
!
control-plane
!
!
!
!
!
!
gatekeeper
shutdown
!
!
line con 0
login local
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login local
!
!
end

В случая, на PE рутера AggrR5 има три рутинг протокола:

  • EIGRP 100 с дефиниран vrf, в който има рутинг отношение с клиентският рутер R7;
  • BGP 100, по който има iBGP neighborship с другия PE рутер R6; Маршрутите от EIGRP 100 се вкарват в BGP процеса, за да бъдат пренесени от него директно до другия PE рутер, без за това да се използва рутинг протокола, държащ вътрешното маршрутизиране на доставчика и MPLS опорната среда;
  • OSPF 100, който държи маршрутизацията в опорната мрежа и MPLS свързаността, без да носи никаква маршрутна информация на клиента;

Конфигурацията на другият PE рутер AggrR6 е еквивалентна:

!
version 12.4
service timestamps debug datetime
service timestamps log datetime
service password-encryption
!
hostname AggrR6
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$9YEQ$uZlyuTzGqxufECuDjnf4s.
!
no aaa new-model
!
resource policy
!
ip cef
!
!
!
!
ip vrf maka.biz
rd 100:1
route-target export 1:100
route-target import 1:100

!
no ip domain lookup
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
username admin secret 5 $1$gJsl$bxfN4trCZLuWc1HnPaFpV1
!
!
!
!
!
!
!
interface Loopback0
ip address 172.31.0.6 255.255.255.255
!
interface FastEthernet0/0
description IC to MPLSCore4 f2/0
ip address 172.30.254.6 255.255.255.252
duplex full
speed 100
mpls ip
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
interface POS1/0
ip vrf forwarding maka.biz
ip address 172.28.2.1 255.255.255.252

!
interface POS2/0
no ip address
shutdown
!
router eigrp 100
no auto-summary
!
address-family ipv4 vrf maka.biz
redistribute bgp 100 metric 64 1000 255 1 1500
network 172.28.2.0 0.0.0.3
no default-information in
no auto-summary
autonomous-system 100
exit-address-family

!
router ospf 100
router-id 172.31.0.6
log-adjacency-changes
redistribute connected subnets route-map INJECT-LOOPBACK-INTO-OSPF
network 172.30.254.4 0.0.0.3 area 2

!
router bgp 100
no synchronization
bgp log-neighbor-changes
neighbor 172.31.0.5 remote-as 100
neighbor 172.31.0.5 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 172.31.0.5 activate
neighbor 172.31.0.5 send-community both
exit-address-family
!
address-family ipv4 vrf maka.biz
redistribute eigrp 100
no synchronization
exit-address-family

!
no ip http server
no ip http secure-server
!
!
!
!
ip prefix-list Permit-Local-Loopback description Permit only local looopback0
ip prefix-list Permit-Local-Loopback seq 10 permit 172.31.0.6/32
ip prefix-list Permit-Local-Loopback seq 20 deny 0.0.0.0/0 le 32
logging alarm informational
!
!
!
route-map INJECT-LOOPBACK-INTO-OSPF permit 10
description Ijects only Lo0 into OSPF
match ip address prefix-list Permit-Local-Loopback
set tag 101
!
!
!
!
control-plane
!
!
!
!
!
!
gatekeeper
shutdown
!
!
line con 0
login local
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login local
!
!
end

Имайки това предвид, можем да погледнем разликата в настройката на VRF Lite с различна и значително опростена тестова топология.

VRF Lite без MPLS, с използване на един рутинг протокол

VRF Lite with one routing protocol and separate connectivity

VRF Lite with one routing protocol and separate connectivity

Тук ситуацията е доста опростена – в този лаб имаме два рутера, като вместо клиентски рутери, използваме по два loopback интерфейса на всеки от тях, за да генерираме две “клиентски” мрежи от двете страни. Всяка от клиентските мрежи е разпределена в отделен VRF, също както и свързаността между двата рутера – използвани са два ieee 802.1q подинтерфейса с отделни мрежи, по които да върви рутинг отношението за отделните VRF-и. Единственият рутинг протокол който е използван между рутерите носещи VRF-ите е EIGRP, като той носи двата VRF-а, а при необходимост може да носи и отделно маршрутна информация за самата опорна мрежа, в главната маршрутна таблица, а не във VRF.

Конфигурациите на двете устройства са изложени по-долу.

R1:

!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$BZ3Q$Kb58LcCY0oG4J/vrStso2/
!
no aaa new-model
ip cef
!
!
!
!
ip vrf 1.maka.biz
rd 100:1
route-target export 1:100
route-target import 1:100
!
ip vrf 2.maka.biz
rd 200:2
route-target export 2:200
route-target import 2:200
!
multilink bundle-name authenticated
!
!
!
archive
log config
hidekeys
!
!
!
!
!
interface Loopback0
description NET1 - VRF 1.maka.biz
ip vrf forwarding 1.maka.biz
ip address 192.168.0.1 255.255.255.0
!
interface Loopback1
description NET2 - VRF 2.maka.biz
ip vrf forwarding 2.maka.biz
ip address 10.100.0.1 255.255.255.0
!
interface FastEthernet0/0
no ip address
duplex auto
speed auto
!
interface FastEthernet0/0.1
description IC to R2 in 1.maka.biz
encapsulation dot1Q 1 native
ip vrf forwarding 1.maka.biz
ip address 172.20.20.1 255.255.255.252
!
interface FastEthernet0/0.2
description IC to R2 ion 2.maka.biz
encapsulation dot1Q 2
ip vrf forwarding 2.maka.biz
ip address 172.16.16.1 255.255.255.252
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
!
router eigrp 1
passive-interface Loopback0
passive-interface Loopback1
no auto-summary
!
address-family ipv4 vrf 2.maka.biz
network 10.100.0.0 0.0.0.255
network 172.16.16.0 0.0.0.3
no auto-summary
autonomous-system 200
exit-address-family
!
address-family ipv4 vrf 1.maka.biz
network 172.20.20.0 0.0.0.3
network 192.168.0.0
no auto-summary
autonomous-system 100
exit-address-family
!
!
!
ip http server
!
!
!
control-plane
!
!
line con 0
line aux 0
line vty 0 4
password cisco
login
line vty 5 15
password cisco
login
!
scheduler allocate 20000 1000
end

R2:

!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
enable secret 5 $1$stQL$j.wQW62DA7okHjtwUtZEA.
!
no aaa new-model
no network-clock-participate wic 2
ip cef
!
!
!
!
ip vrf 1.maka.biz
rd 100:1
route-target export 1:100
route-target import 1:100
!
ip vrf 2.maka.biz
rd 200:2
route-target export 2:200
route-target import 2:200
!
multilink bundle-name authenticated
!
!
!
archive
log config
hidekeys
!
!
controller E1 0/2/0
!
!
!
!
interface Loopback0
description NET1 - VRF 1.maka.biz
ip vrf forwarding 1.maka.biz
ip address 10.100.1.1 255.255.255.0
!
interface Loopback1
description NET2 - VRF 2.maka.biz
ip vrf forwarding 2.maka.biz
ip address 192.168.1.1 255.255.255.0
!
interface FastEthernet0/0
no ip address
duplex auto
speed auto
!
interface FastEthernet0/0.1
description IC to R1 in 1.maka.biz
encapsulation dot1Q 1 native
ip vrf forwarding 1.maka.biz
ip address 172.20.20.2 255.255.255.252
!
interface FastEthernet0/0.2
description IC to R1 in 2.maka.biz
encapsulation dot1Q 2
ip vrf forwarding 2.maka.biz
ip address 172.16.16.2 255.255.255.252
!
interface FastEthernet0/1
no ip address
duplex auto
speed auto
!
router eigrp 1
passive-interface Loopback0
passive-interface Loopback1
no auto-summary
!
address-family ipv4 vrf 2.maka.biz
network 172.16.16.0 0.0.0.3
network 192.168.1.0
no auto-summary
autonomous-system 200
exit-address-family
!
address-family ipv4 vrf 1.maka.biz
network 10.100.1.0 0.0.0.255
network 172.20.20.0 0.0.0.3
no auto-summary
autonomous-system 100
exit-address-family
!
!
!
ip http server
!
disable-eadi
!
!
control-plane
!
!
line con 0
line aux 0
line vty 0 4
password cisco
login
line vty 5 15
password cisco
login
!
scheduler allocate 20000 1000
end

Изводи

В случая с VRF Lite получената функционалност е подобна на “Layer 3 VLAN” – изолиране на маршрутната информация в паралелни рутинг таблици, но за да се получи това без MPLS и без редистрибуция в друг протокол като MP-iBGP е необходимо също така да се изолира и свързаността базирана на VRF. Такова решение не разчита на облак по средата, и съответно не може да се възползва от по-развитите възможности за резервна свързаност при отпадане на някой VRF link. Сегрегирането на свързаността и разпределянето и по VRF-и трябва да се прави ръчно и да се направи в целия гръбнак на мрежата, за да може да се запази изолацията между VRF-ите. Предимство на този вариант е факта, че той би могъл да намери приложение в ситуации, където е необходимо подобно разделение, няма MPLS гръбнак, няма Metro Ethernet, и това разделение не може да се направи с VLAN-и. Например, определен тип радио-релейни мрежи, със сравнително ограничена функционалност върху които върви IP, но няма глобална възможност за реализация на метро ethernet тип функционалност, като vlan-и и spanning-tree.

Предимството на VRF Lite обаче, например приложен в Ethernet среда, може да се окаже почти пирон в ковчега на MPLS, защото може да реализира една от най-популярните рекламни идеи на MPLS – VRF инстанции – в среда без абсолютно никакво наличие на MPLS.

Tagged , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *