Nəzəri əsaslar və memarlıq

BGP/MPLS L3VPN (RFC 4364) iki əsas mexanizmə əsaslanır: Route Distinguisher (RD) və Route Target (RT). 1. Route Distinguisher (RD) 64-bitlik prefiksdir; giriş PE-də müştərinin 32-bitlik IPv4 ünvanına əlavə edilərək qlobal unikal 96-bitlik VPNv4 ünvanı yaradır (məsələn, 65000:1:192.168.1.0/24). RD-nin yeganə məqsədi eyni IP-lərin BGP daxilində toqquşmasının qarşısını almaqdır. 2. Route Target (RT) genişləndirilmiş BGP komyunitisidir (Extended Community) və marşrutların hansı VRF-ə daxil olacağını müəyyən edir. Export RT marşrut MP-BGP-yə göndəriləndə vurulur, qəbul edən çıxış PE isə Import RT uyğun gəldikdə marşrutu müştərinin VRF cədvəlinə daxil edir. IPv6 üçün eyni qaydada 192-bitlik VPNv6 (RFC 4659) prefiksləri yaradılır.

RD və RT müxtəlif məsələləri həll edir

Route Distinguisher (RD) prefiksi ümumi MP-BGP cədvəlində unikal edir: 8 bayt RD + IPv4 prefiksi = VPNv4 NLRI (AFI 1, SAFI 128), 8 bayt RD + IPv6 prefiksi = VPNv6 NLRI (AFI 2, SAFI 128). RD marşrutu kimlərə göstərmək olar sualı barədə heç nə demir. Route Target (RT) isə siyasətdir: ixrac edən VRF-in marşruta əlavə etdiyi və idxal edən VRF-in filtr kimi istifadə etdiyi genişləndirilmiş BGP community-dir (8 bayt: tip/alt tip + qlobal administrator + lokal qiymət). Bir marşrut bir neçə RT daşıya bilər, bir VRF isə bir neçə RT-ni idxal və ixrac edə bilər. Full mesh, hub-and-spoke və extranet topologiyalarını məhz RT kombinasiyaları yaradır.

Formatlar və rəqəmlər

  • RD/RT tip 0: 2 baytlıq ASN + 4 baytlıq ədəd (65000:100); tip 1: IPv4 ünvanı + 2 bayt (10.255.0.1:100); tip 2: 4 baytlıq ASN + 2 bayt (4 baytlıq AS üçün).
  • VPN etiketi 20 bitdir və NLRI daxilində (MP_REACH_NLRI) ötürülür; next hop PE loopback-dir (10.255.0.2), nəqliyyat LSP olmadan əlçatmazdır.
  • VPNv6 üçün (6VPE, RFC 4659) next hop IPv4-mapped IPv6 ünvanıdır (::ffff:10.255.0.2), nəqliyyat IPv4 LDP olaraq qalır: nüvə IPv6-nı dəstəkləməyə borclu deyil.
  • RT Extended Communities atributunda ötürülür, ona görə BGP sessiyası onu göndərməlidir: Cisco-da vpnv4/vpnv6 daxilində açıq send-community extended lazımdır, Junos-da genişləndirilmiş community-lər standart olaraq göndərilir.

Marşrutun CE-dən CE-yə qədər başına gələnlər

  1. CE-A2 192.168.20.0/24-ü PE2-yə elan edir (static/eBGP/OSPF).
  2. PE2 marşrutu VRF A-ya yerləşdirir, RD 65000:2 təyin edir, VPN etiketi ayırır, ixrac RT 65000:100 əlavə edir və VPNv4 NLRI-ni RR istiqamətində elan edir (next hop 10.255.0.2).
  3. RR marşrutu RT-ni yoxlamadan bütün klientlərə əks etdirir: bunun üçün Cisco-da RR-də bgp default route-target filter söndürülür, Junos-da bütün marşrutlar saxlanılır (keep all və ya lokal VRF-in olmaması).
  4. PE1 VPNv4 NLRI-ni qəbul edir və RT-ni yoxlayır: heç bir lokal VRF 65000:100-ü idxal etmirsə, yol atılır (Cisco: RT filtri standart olaraq aktivdir, Junos: keep all olmadan bgp.l3vpn.0). Bu PE yaddaşını qoruyur, lakin yeni müştəri əlavə edərkən tələ yaradır.
  5. RT uyğun gələrsə, marşrut VRF A.inet.0-a next hop 10.255.0.2, VPN etiketi və LDP nəqliyyat etiketi olan BGP marşrutu kimi düşür.

RD: PE üzrə unikal, yoxsa müştəri üzrə ümumi

  • VPN üçün ümumi RD (bütün PE-lərdə 65000:1): RR iki PE-dən bir NLRI görür və yalnız bir ən yaxşı yolu əks etdirir, ona görə balanslaşdırma və ani ehtiyat yol mümkün deyil (add-path lazımdır).
  • (VRF, PE) üzrə unikal RD (PE1-də 65000:1, PE2-də 65000:2): iki NLRI paralel yaşayır, RR hər ikisini verir, PE ECMP/ehtiyat yol alır. Bu multihoming üçün tövsiyə olunan təcrübədir.
  • RD müxtəlif müştərilərdə eyni olmamalıdır: əks halda üst-üstə düşən prefikslər bir-birini silər (əvvəlki dərsə bax).

RT təyinetmə sxemi

Tipik standart: ASN:100 - müştəri A, ASN:200 - müştəri B, ASN:1xx - hub-and-spoke, ASN:9xx - ümumi xidmətlər. RT və RD reyestri yaradın və onu məlumat kimi aparın (mühəndisin yadında yox): bir rəqəmlik səhv müştərilər arasında sızma yaradır. Bir VRF-də bir neçə RT icazəlidir (extranet), lakin hər əlavə qiymət görünmə zonasını genişləndirir.

VPNv6

VRF-də IPv6 ayrıca address-family ipv6 ilə konfiqurasiya olunur (Cisco: vrf definition daxilində, Huawei: ip vpn-instance daxilində ipv6-family, Junos: eyni instans, A.inet6.0 cədvəli). RD/RT v4 və v6 üçün eyni təyin edilə bilər (daha sadədir), lakin fərqli olanlar da icazəlidir. RR ilə sessiya vpnv6-nı vpnv4-dən ayrıca aktivləşdirməlidir: çatışmayan aktivləşdirmə "IPv4 işləyir, IPv6 işləmir" probleminin tez-tez rast gəlinən səbəbidir. VPNv6 etiketi VPNv4 ilə eyni per-prefix/per-VRF rejimləri üzrə ayrılır.

Qatlar üzrə diaqnostika

  1. RR ilə Established sessiya varmı və AFI/SAFI razılaşdırılıbmı (show bgp vpnv4 unicast all summary).
  2. Marşrut VPNv4 cədvəlindədirmi və üzərində hansı RT-lər var.
  3. RT VRF-in idxalı ilə üst-üstə düşürmü.
  4. Next hop LSP üzrə əlçatandırmı (nəqliyyat etiketi).
  5. VPN etiketi CEF/forwarding çıxışında görünürmü.

2-ci addımda marşrut yoxdursa - problem ixracda/sessiyadadır; 3-cü addımda - RT-dədir; 4-cü addımda - IGP/LDP-dədir.

Memarlıq sxemi və topologiya

text
+---------------------+      MP-BGP VPNv4 / VPNv6 Update (PE-1 -> PE-2)     +---------------------+
|        PE-1         | ==================================================> |        PE-2         |
| RD: 65000:1 (Unique)| [96-bit VPNv4 Prefix: 65000:1:10.0.0.0/24]          | Match Import RT     |
| RT: 65000:100(Export)| [Extended Community: Target: 65000:100]             | Imports into VRF    |
+---------------------+ [Service Label: 24001] [Next-Hop: 10.255.0.1]       +---------------------+

Trafik axını və etiket steki sxemi