Marko je hteo da kaze da su MPLS i MPLS VPN dve odvojene stvari. Mada znam, kad pocinjes nesto da ucis sve ti se izmesa u glavi. :-)
Evo ti kraceg uvoda u problematiku (@Marko - ispravi me ako sam negde pogresio, pokusavam da sve ovo objasnim sto je moguce krace i povrsnije, greske su neizbezne):
Kada se govori o MPLS tehnologiji razlikuje se nekoliko pojmova:
MPLS je mehanizam markiranja (tagovanja) paketa labelama, umetnutim izmedju zaglavlja (header) i poglavlja (payload) L2 paketa, i procesiranja tih paketa na ruterima u mrezi zavisno od vrednosti labela. Sam MPLS obuhvata samo specifikaciju tog mehanizma i nista vise - znaci: format i duzina labela (2 bajta), mesto gde se labele umecu (izmedju L2 zaglavlja i poglavlja), operacije sa labelama (dodavanje, zamena, brisanje). MPLS kao mehanizam je moguce koristiti za:
- Transport L2 i L3 paketa kroz mrezu, formiranjem logickih tunela (LSP).
- Separaciju L2/L3 domena, odnosno formiranje virtuelnih privatnih mreza (VPN) - L2 i L3.
- Implementaciju servisnih klasa i kvaliteta servisa (CoS / QoS)
- Upravljanje saobracajem (MPLS-TE) i njegovo brzo preusmeravanje (Fast Re-Route).
MPLS transport je mehanizam prosledjivanja "labelisanih" paketa kroz mrezu, formiranjem logickih putanja (LSP), zavisno od vrednosti labela. Na putu od izvorista ka odredistu ruteri mogu da dodaju, menjaju ili brisu labele. Kada ruter primi paket, on analizira njegovu labelu, zameni je novom i prosledjuje ga ka interfejsu kome je labela pridruzena. Za pridruzivanje labela interfejsima ruteri koriste
MPLS signalne protokole, koji definisu nacin razmene informacija o vrednosti labela na P i PE ruterima i uspostavljanja virtuelnih puteva (LSP) kroz MPLS mrezu. Tu spadaju
LDP,
RSVP i
static LSP. Da bi MPLS signalni protokoli mogli da funkcionisu neophodno je da otkriju topologiju mreze po kojoj rade, za sta koriste usluge nekog IGP protokola (OSPF, IS-IS itd.).
MPLS VPN je network-based VPN mehanizam koji koristi MPLS labele za separaciju saobracaja, a koji
moze da koristi MPLS i za transport paketa (ali
ne mora, za transport moze da se koristi npr. i
L2TPv3 -
RFC4817) ili cak i
GRE -
RFC4032). Veoma lep teorijski pregled svih tih opcija za transport mozes da vidis
ovde (dosta se sporo ucitava, ali vredi sacekati, zaista sjajna prezentacija). Naravno, ne podrzava svaki proizvodjac sve te opcije na svakom svom ruteru i verziji softvera. Bitno je da se MPLS mora da koristi za separaciju VPN-ova. Separacija se vrsi na PE ruterima, tako sto se svakom VPN-u dodeljuje po jedna razlicita labela, koja se umece izmedju L2 i L3 zaglavlja. Ako se dalji transport paketa po mrezi koristi MPLS, tada se labeli definisanoj za VPN dodaje jos jedna, transprotna labela. Izmedju ulaznog i izlaznog PE rutera svi ruteri na putu (P ruteri) ocitavaju i menjaju iskljucivo transportnu labelu. Pre nego sto poslednjji P ruter u lancu isporuci paket PE ruteru on skida transportnu labelu. PE ruter potom analizira VPN labelu i isporucuje paket ka odredjenom intefejsu.
MPLS VPN moze biti
MPLS L3 (IP) VPN i
MPLS L2 VPN, a L2 VPN se deli na point-to-point (VPWS, pseudowires, E-LINE) i any-to-any (VPLS, E-LAN) pogledaj vise detalja
ovde - slajd 10. Neke informacije su malcice zastarele, ali vecina koncepata je jos uvek aktuelna.
MPLS L3 VPN (
RFC4364 - je impementacija IP VPN mreza koriscenjem MPLS mehanizama za razdvanje routing tabela. IP VPN po svojoj prirodi da PE ruteri znaju kako da rutiraju pakete na L3 nivou, tj. da za svaki definisani VPN imaju routing tabele. Zato se za svaki L3 VPN na PE ruterima formira nesto sto se zove virtualna routing tabela ili VRF. Na nivou svakog PE rutera VRF je jednoznacno odredjen parametrom koji se zove
Route Disginguisher (RD). Cemu on sluzi? Posto se unutar razlicitih VPN-ova mogu da koriste iste adrese (npr. 10/8), moze da dodje do preklapanja adresnih opsega. Kako bi PE ruteri razlikovali koje rute pripadaju kom VRF-u, oni ih cuvaju u formi: <RD>:<Route> - npr:
64510:101:10.19.14.152/29
64510:101:10.19.14.160/28
64510:121:10.19.14.152/29
64510:121:192.168.10.0/24
...
To su tzv. VPNv4 adrese. Slicno njima postoje i VPNv6 - za MPLS IPv6 VPN (
RFC4659):
64510:101:2001:db8:3400:a::/64
64510:101:2001:db8:12ff:b::/64
64510:121:2001:db8:3400:a::/64
64510:121:2001:db8:dead:beef:600d:f00d:3:1/128
...
Pri tome, VRF-ovi su bitni samo PE ruterima. P ruteri manipulisu iskljucivo labelama. Takodje, RD je obican broj i nista vise. On je samo tu da omoguci PE ruterima da u svoje tabele smeste IP prefikse koji pripadaju razlicitim VPN-ovima, a koji mogu da se medjusobno i preklope. Ako RD ne bi postojao PE ruter ne bi mogao u svoju tabelu da smesti dve kopije prefiksa 10.19.14.152/29 iz gornjeg primera. Ali RD ne odredjuje gde ce ruta biti smestena, vec se samo stara da odvoji "sanducice" u tabeli rutiranja za rute iz razlicitih VPN-ova (vidi: RFC4364 - 4.3:
An RD is simply a number, and it does not contain any inherent information; it does not identify the origin of the route or the set of VPNs to which the route is to be distributed. The purpose of the RD is solely to allow one to create distinct routes to a common IPv4 address prefix. Other means are used to determine where to redistribute the route (see Section 4.3).).
PE ruteri medjusobno razmenjuju ("signaliziraju") sadrzaj VRF-ova koristeci ...
MP-iBGP - ekstenzija BGP protokola koja omogucava razmenu VPNv4 i VPNv6 prefiksa izmedju PE rutera (direktno ili posredstvom route reflektora). Da bi znali koje rute da ubace u koji VPN PE ruteri koriste poseban vid BGP community atributa koji se zove
Route Target (RT). Kada PE ruter zeli da oglasi IP prefiks X iz VPN XXX drugim PE ruterima, on ih markira (export) RT community tagom definisanim za taj VPN, da bi naznacio da prefiks X pripada VPN-u XXX. Ruteri koji primaju (import) taj prefiks analiziraju sadrzinu RT vektora i smestaju prefiks X u odgovarajjuci VPN XXX zavisno od RT vrednosti.
Bitna stvar je da se rute pridruzuju VPN-u zavisno od RT, a ne od RD. Drugim recima, ako na PE1 i PE2 definises:
! - PE1 Configuration
ip vrf VPN-A
rd 64500:1
route-target import 64500:10001
route-target export 64500:10001
! - PE2 Configuration
ip vrf VPN-BBB
rd 64500:22222
route-target import 64500:10001
route-target export 64500:10001
rute iz VPN-A @ PE1 i VPN-BBB @ PE2 ce se ponasati kao da logicki pripadaju istom VPN-u, iako su RD i nazivi VRF-ova na ta dva rutera razliciti.
MPLS L2 VPN - je implementacija L2 VPN mreza koriscenjem MPLS mehanizama za razdvanje L2 domena (Ethernet LAN-ova, ATM/FR PVC-ova itd.). Danas su MPLS L2 VPN i EoMPLS postali de facto sinonimi, s obzirom da su drugi vidovi L2 transporta postepeno potisnuti iz upotrebe. Slicno kao kod L3 VPN, kod L2 VPN se labela koristi kao identifikator VPN-a - npr. point-to-point kanala (pseudowire) izmedju dva PE rutera ili virtuelnog broadcast domena (VPLS) izmejdu dva ili vise PE rutera. Razmena informacija o mapiranju izmedju labela i L2 mreza izmedju PE rutera moze da se obavlja bilo MP-iBGP ili LDP protokolom. Ako se za to koristi BGP tada se RD i RT koriste na slican nacin kao i kod L3 VPN. Ako se koristi LDP, RD i RT se ne koriste, jer ih LDP prosto ne poznaje kao takve. :-)
Da rezimiramo:
MPLS je mehanizam za markiranje paketa labelama.
MPLS transport je mehanizam za transportovanje MPLS-markiranih (MPLS-labelled) paketa kroz mrezu.
LSP su logicki kanali po kojima se MPLS-markirani paketi transportuju kroz mrezu.
LDP/RSVP su protokoli za formranje LSP-ova.
MPLS VPN je mehanizam za formiranje L2 i L3 VPN mreza koriscenjem MPLS mehanizma markiranja paketa.
MPLS VPN moze da koristi MPLS transport za prenos paketa kroz mrezu, ali i ne mora - MPLS VPN moze da koristi i druge mehanizme (L2TPv3, GRE ...)
VRF je tabela lokalna tabela rutiranja pridruzena L3 VPN-u na PE ruteru.
MP-iBGP je protokol kojim PE ruteri razmenjuju sadrzaj VRF-ova.
RD i RT su parametri definisani unutar MP-iBGP.
Eto, nadam se da sam ti barem malo razjasnio ...
[Ovu poruku je menjao B3R1 dana 18.03.2014. u 15:51 GMT+1]