|
W artykule
poruszam aspekty budowania sieci VPN w oparciu o MPLS (Multiprotocol
Label Switching) i BGP (Border Gateway Protocol). BGP/MPLS IP VPN jest
jednym z popularniejszych sposobów budowania VPN opartych o routery
brzegowe dostawcy usług - PE (Provider Edge) VPN. Sposób ten jest
opisany w standardach IETF i obsługiwany przez większość dostawców
routerów IP. Metoda BGP/MPLS, wykorzystywana jest przez dostawców usług
do dystrybucji poprzez BGP informacji o osiągalności adresów IP
pomiędzy oddziałami należącymi do tej samej sieci VPN.
Łączenie
dwóch oddziałów może napotkać pewne problemy, jeśli w danej lokalizacji
mamy dwa różne VPN stosujące tą samą przestrzeń adresową (np. ten sam
zakres adresów z prywatnej puli IP). Jest to bardzo częsta sytuacja,
gdyż firmy stosują w swych sieciach prywatną adresację IP. Oczywiście z
punktu widzenia każdego z VPN, adresy te są unikalne i nie powtarzające
się. By temu przeciwdziałać, każdy router PE zarządza pewną liczbą
oddzielnych tablic przekazywania pakietów. Jedna z tych tablic jest
domyślną tablicą przekazywania (routingu) stosowaną w sieciach
publicznych, natomiast pozostałe tablice są przeznaczone dla sieci VPN,
w których odbywa się także routing, ale odseparowany od pozostałych
sieci VPN i sieci Internet. W każdym routerze PE operator musi
skonfigurować jedną tabelę VRF (VPN Routing and Forwarding – routing i
przekazywanie dla VPN) dla każdego VPN, do którego PE jest przyłączony.
Każdy
interfejs łączący klienta z dostawcą, czyli PE z CE, jest skojarzony z
jedną tabelą VRF. Jeśli jakikolwiek pakiet przyjdzie od urządzenia
klienta (nazywanego tu brzegiem klienta CE - Customer Edge), to jego
adres przeznaczenia jest wyszukiwany w skojarzonej tabeli VRF, by
określić jak routować pakiet przez szkielet dostawcy. Tabela VRF w
routerze PE jest budowana na podstawie informacji o trasach nauczonych
od urządzeń brzegu klienta CE. Metoda BGP/MPLS nie standaryzuje żadnej
konkretnej metody nauki tras, PE może nauczyć się tras stosując zarówno
protokół dynamiczny routingu, jakim jest np., BGP lub OSPF (Open
Shortest Path First) albo przez konfigurację tras statycznych. PE muszą
także nauczyć się tras od innych routerów PE w tym samym VPN.
Routery
PE wykorzystują pojedynczy proces BGP do dystrybucji tras od różnych
VPN, dlatego też protokół BGP należy rozszerzyć o możliwość
przekazywania nakłądających się, tych samych adresów IP w sieciach VPN.
W przeciwnym przypadku BGP zainstaluje w swojej tabeli tylko jeden
adres czyniąc pozostałe nieosiągalne, a tym samych uniemożliwiając
komunikację w VPN o tych samych przestrzeniach adresowych. Aby temu
przeciwdziałać zastosowano nową rodzinę adresacji i kontroli
dystrybucji tras.
Istniejące
rozszerzenia wieloprotokołowe MP-BGP (MultiProtocol BGP) umożliwiają
BGP przenoszenie tras z wielu rodzin adresacji. Techniki BGP/MPLS
wprowadzają rodzinę adresów VPN-IPv4. Adres VPN-IPv4 składa się
12-bajtowego pola, zaczynającego się 8-bajtami RD (Route Distinguisher)
i kończącego się 4-bajtowym klasycznym adresem IPv4. Jeśli kilka sieci
VPN stosuje te same prefiksy IPv4, to router PE może translować je na
kilka unikalnych prefiksów adresu VPN-IPv4.
Jeśli
router PE nauczy się klasycznej trasy IPv4 od routera CE, to konwertuje
tą trasę na unikalną trasę VPN, która jest eksportowana do BGP. BGP
następnie rozgłasza tą trasę do innych routerów PE, które potrzebują ją
znać. Jeśli trasa VPN zostanie wybrana przez proces decyzyjny BGP, to
jest ona konwertowana znowu na postaci trasy IPv4 i importowana do
właściwej tabeli VRF w odległym routerze PE. Ostatecznie nauczona w ten
sposób trasa przez VRF w zdalnym PE, zostanie rozgłoszona do
przyłączonych do niego routerów CE.
Adresy VPN-IPv6 są obsługiwane w tan sam sposób.
Oczywiście
w każdym routerze PE należy skonfigurować dwa zbiory tras przeznaczeń
dla każdego VRF, tzw. export route targets dla tras, które należy
rozgłaszać przez BGP i import route targets, by określić, do którego
VRF otrzymana trasa VPN ma zostać zainstalowana.
Kiedy
router PE rozgłasza trasy VPN poprzez BGP do innych routerów PE, to
także przypisuje do niej i również rozgłasza etykietę MPLS (MPLS
label), która nazywana jest etykietą VPN. Jeśli inne routery PE
wysyłają pakiety z danymi klienta do przeznaczenia identyfikowanego
przez otrzymaną trasę BGP, to dodają one tą etykietę MPLS VPN do
nagłówka enkapsulowanego pakietu i tunelują go do routera PE następnego
skoku, który zapoczątkował trasę BGP. W tym routerze PE, etykieta
lokalnie identyfikuje kontekst IP VPN (VRF), przez który etykietowany
pakiet musi zostać obsłużony.
Jak
więc ostatecznie odbywa się przekazywanie? Po pierwsze, kiedy router PE
otrzyma pakiet IP od urządzenia CE, to wybiera odpowiednią tablicę VRF,
w której przepatruje adres przeznaczenia pakietu, w zależności od
wejściowego interfejsu pakietu (skojarzenie PE-CE-VRF). Po drugie,
pakiet musi przejść przez szkielet dostawcy do oddalonego PE, który
jest następnym skokiem BGP, tak jak to zostało wyznaczone w
odpowiedniej tabeli VRF. By to wykonać, pakiet jest formowany do
postaci pakietu MPLS z etykietą VPN dodaną do stosu etykiet. Pakiet
jest tunelowany do routera następnego skoku BGP. Ostatecznie, w
oddalonym PE, kiedy pakiet opuści tunel, przeglądana jest etykieta MPLS
VPN. Zdalny PE określa na podstawie tej etykiety instancję VRF, w
której następnie powinien zostać przetworzony pakiet lub określa
interfejs, przez który powinien być transmitowany pakiet do
prawidłowego urządzenia CE.
Tunelowanie
etykietowanych pakietów IP VPN umożliwia utrzymywanie wszystkich tras
VPN poza routerami rdzeniowymi dostawcy. Jest to niezbędne by
zapewnienia skalowalności tego mechanizmu. Szkielet dostawcy nie musi
znać tras do urządzeń CE, tylko zna do PE. Jeśli szkielet obsługuje
MPLS jako technologię tunelującą, to router PE dodaje tylko następną
etykietę MPLS (skojarzona z adresem zdalnego PE) do stosu etykiet
pakietu, a następnie pakiet jest przełączany przez szkielet sieci do
zdalnego PE.
|