استفاده از L3VPN (MPLS/VPN) با هسته SR-MPLS « وبلاگ ipSpace.net

اخیرا یکی از من پرسید که آیا امکان استفاده از آن وجود دارد؟ netlab برای ساخت یک آزمایشگاه MPLS/VPN (از لحاظ فنی، BGP/MPLS IP VPN) با هسته SR-MPLS. البته، بیایید یک آزمایشگاه ساده با استفاده از کانتینرهای Arista EOS و Linux برای پیاده سازی این توپولوژی بسازیم:
توپولوژی آزمایشگاهی
در اینجا توپولوژی آزمایشگاهی است که ما استفاده خواهیم کرد (همچنین در GitHub موجود است):
defaults.device: eosprovider: clabmpls.ldp: Falsegroups:_auto_create: Truehosts:members: [ h1, h2, h3, h4 ]device: linuxpe:members: [ pe1, pe2 ]module: [ isis, bgp, mpls, vrf, sr ]mpls.vpn: Truebgp.as: 65001p:members: [ p1, p2 ]module: [ isis, sr ]device: frrprovider: clabvrfs:t1:links: [ h1-pe1, h2-pe2 ]t2:links: [ h3-pe1, h4-pe2 ]links: [ pe1-p1, p1-p2, p2-pe2 ]
- ما از Arista EOS (خط 1) در حال اجرا به عنوان کانتینرهای cEOS (خط 2) استفاده خواهیم کرد.
- این آزمایشگاه دارای چهار میزبان خواهد بود که به عنوان کانتینر لینوکس مستقر شده اند (خطوط 8-10)
- روترهای PE از VRF استفاده می کنند و IS-IS (IGP)، BGP (در AS 65001)، MPLS و SR-MPLS (خط 13) را پیاده سازی می کنند.
- آنها از BGP AS 65001 (خط 15) استفاده می کنند و از MPLS برای اجرای سرویس MPLS/VPN (خط 14) استفاده می کنند.
- netlab فرض می کند که می خواهید LDP را هنگام استفاده از ماژول MPLS اجرا کنید، بنابراین باید LDP را غیرفعال کنیم (خط 4)
- مسیریابهای P با کانتینرهای FRRouting پیادهسازی میشوند تا نیازهای حافظه را حتی کمتر نگه دارند (خطوط 19-20). آنها فقط با IS-IS و SR-MPLS کار می کنند (خط 18)
- این آزمایشگاه دارای دو VRF است که هر کدام دارای دو اتصال هستند (خطوط 22-26)
- چهار حلقه اصلی وجود دارد که روترهای PE و روترهای P را در یک زنجیره به هم متصل می کند.
داشتن چندین مسیریاب P در یک زنجیره تضمین می کند که تبادلات برچسب زیادی در هسته شبکه داشته باشیم.
پس از اجرای آزمایشگاه، می توانید چندین برچسب متصل به مسیرهای VRF از راه دور در روترهای PE را مشاهده کنید، به عنوان مثال:
pe1#show ip route vrf t1 detail | begin Gateway
Gateway of last resort is not set
M 0.0.0.0/8 PL
directly connected, Null0
M 127.0.0.0/8 PL
directly connected,
C 172.16.0.0/24 PH
directly connected, Ethernet2 pe1 -> h1 [stub]
B I 172.16.1.0/24 [200/0] PL
via 10.0.0.6/32, IS-IS SR tunnel index 1, label 116384
via 10.1.0.1, Ethernet1, pe1 -> p1, label 16006
برچسب (VPN) 116384 از مسیر VPNv4 می آید:
pe1#show bgp vpn-ipv4 172.16.1.0/24
BGP routing table information for VRF default
Router identifier 10.0.0.5, local AS number 65001
BGP routing table entry for IPv4 prefix 172.16.1.0/24, Route Distinguisher: 65000:1
Paths: 1 available
Local
10.0.0.6 from 10.0.0.6 (10.0.0.6)
Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, internal, best
Extended Community: Route-Target-AS:65000:1
Remote MPLS label: 116384
برچسب (حمل و نقل) 16006 از SR-MPLS مشتق شده است – SID گره برای PE2 شش است و FRRouting از 16000 به عنوان شروع بلوک مسیریابی جهانی بخش (SRGB) استفاده می کند. لطفاً توجه داشته باشید که PE1 برای رسیدن به PE2 باید از برچسب P1 SRGB (16006) و نه از برچسب تبلیغ شده توسط PE2 (900006) استفاده کند (جزئیات بیشتر).
بخش های پیشوند SR-MPLS در PE1 در حال اجرا Arista EOS نشان داده شده است
pe1#show isis segment-routing prefix-segments
System ID: pe1 Instance: 'Gandalf'
SR supported Data-plane: MPLS SR Router ID: 10.0.0.5
Node: 4 Proxy-Node: 0 Prefix: 0 Total Segments: 4
Flag Descriptions: R: Re-advertised, N: Node Segment, P: no-PHP
E: Explicit-NULL, V: Value, L: Local, A: Proxy-Node attached
Segment status codes: * - Self originated Prefix, L1 - level 1, L2 - level 2, ! - SR-unreachable,
# - Some IS-IS next-hops are SR-unreachable
Prefix SID Label Type Flags System ID Level Protection Algorithm
------------------------- ----- ------- ---------- ---------------------------- --------------- ----- -------------------- -------------
* 10.0.0.5/32 5 900005 Node R:0 N:1 P:0 E:0 V:0 L:0 pe1 L2 unprotected SPF
10.0.0.6/32 6 900006 Node R:0 N:1 P:0 E:0 V:0 L:0 pe2 L2 unprotected SPF
10.0.0.7/32 7 16007 Node R:0 N:1 P:0 E:0 V:0 L:0 p1 L2 unprotected SPF
10.0.0.8/32 8 16008 Node R:0 N:1 P:0 E:0 V:0 L:0 p2 L2 unprotected SPF
بلوک های مسیریابی بخش جهانی در PE1 در حال اجرا Arista EOS نشان داده شده است
pe1#show isis segment-routing global-blocks
c - conflicting SR capability TLV, processed first advertisement
System ID: pe1 Instance: Gandalf
SR supported Data-plane: MPLS SR Router ID: 10.0.0.5
SR Global Block( SRGB ) Size: 65536
Number of IS-IS segment routing capable nodes excluding self: 3
SystemId Base Size
------- -------------- ------------ -----
* pe1 900000 65536
pe2 900000 65536
p1 16000 8000
p2 16000 8000
راه اندازی آزمایشگاه
توپولوژی آزمایشگاهی فقط از کانتینرها استفاده می کند، بنابراین می توانید آن را در یک VM لینوکس تقریباً در همه جا اجرا کنید (از جمله زیر سیستم ویندوز برای لینوکس و در مک با استفاده از Apple Silicon). تنها کاری که باید انجام دهید این است:
اگر می خواهید آزمایشگاه را روی GitHub Codespaces اجرا کنید، باید
Pimp My Graph
فایل توپولوژی آزمایشگاهی در مخزن netlab-examples GitHub دارای چند ترفند اضافی برای بهتر جلوه دادن نمودار توپولوژی است:
groups:gr_core:members: [ p1, p2, pe1, pe2 ]graph.rank: 1gr_t1:members: [ h1, h2 ]graph.fill: "#9D8F7E"graph.format.fontcolor: "#FFF"graph.rank: 2gr_t2:members: [ h3, h4 ]graph.fill: "#9B652F"graph.format.fontcolor: "#FFF"graph.rank: 2defaults.outputs.graph.as_clusters: False
- دستگاه های اصلی دارای رتبه یک (ردیف بالا)، میزبان ها دارای رتبه دو (ردیف پایین)
- میزبان ها در VRF T1 دارای پس زمینه خاکستری (ردیف 7) با متن سفید (ردیف 8) هستند.
- میزبان ها در VRF T2 دارای پس زمینه قهوه ای (خط 12) با متن سفید (خط 13) هستند.
- نمودار اعداد BGP AS را نشان نمی دهد (خط 16) – استفاده از آنها باعث ایجاد نموداری عجیب با P1 و P2 در خارج از AS می شود. می خواهید این را امتحان کنید؟ نصب کنید graphvizفایل توپولوژی را تغییر داده و اجرا کنید نمودار netlab – topology topology.yml graph.png
FWIW، این چیزی است که نمودار توپولوژی بدون تنظیمات اضافی به نظر می رسد:





