Dual-Stack SR-MPLS « وبلاگ ipSpace.net

پس از معرفی SR-MPLS نسخه ی نمایشی که در طول کارگاه مسیریابی بخش @ ITNOG10 انجام دادم، به SR-MPLS دو پشته ای رفتیم – آیا می توانیم شناسه های بخش گره (SID) را به IPv4 اختصاص دهیم. و پیشوندهای IPv6؟ نسخه نمایشی از همان شبکه سه روتر قبلی استفاده می کند که SID های IPv4 از یک و SID های IPv6 از 101 شروع می شوند:
توپولوژی آزمایشگاهی
من مجبور شدم یک تغییر واحد در توپولوژی آزمایشگاه قبلی ایجاد کنم – باید جزء IPv6 مخزن های آدرس را تعریف می کردم..من هم از این فرصت برای نشان دادن استفاده کردم چندین گزینه آدرس دهی:
addressing:loopback:ipv4: 10.0.42.0/24ipv6: 2001:db8::/48prefix6: 128core:ipv4: 192.168.42.0/24prefix: 31ipv6: 2001:db8:cafe::/48
یادداشت ها:
- به طور پیش فرض netlab پیشوندهای /32 IPv4 را به رابط های حلقه بک اختصاص می دهد.
- اگر می خواهید پیشوندهای IPv6 Loopback داشته باشید، باید آن را مشخص کنید addressing.loopback.ipv6 پارامتر
- من بیش از حد به انجیل “/64 همه جا” اعتقاد داشتم، بنابراین netlab پیشوندهای /64 IPv6 را به Loopback ها اختصاص می دهد. شما می توانید این را با addressing.loopback.prefix6 و اگر می خواهید SR-MPLS روی Arista EOS کار کند، باید آن را به /128 تغییر دهید.
- بر اساس توپولوژی آزمایشگاه فوق، رابط های معکوس در آزمایشگاه ما پیشوندهای IPv4 /32 10.0.42.0/24 را دریافت خواهند کرد. فضای آدرس (شروع با زیر شبکه یک، نه صفر) و پیشوندهای IPv6 /128 از فضای آدرس 2001:db8::/48
- را هسته اتصالات (در یک لحظه خواهیم دید که این استخر چیست) از پیشوندهای /31 IPv4 از فضای 192.168.42.0/24 و /64 پیشوند IPv4 از 2001 استفاده می کند:db8:cafe::/48 فضا
در مورد موضوع نشان دادن، توپولوژی از a استفاده می کند گروهی از اتصالات با استفاده از a مجموعه آدرس کاربر:
links:- group: corepool: coremembers: [ pe1-p, p-pe2 ]
توپولوژی کامل آزمایشگاه در مخزن SR-MPLS Workshop GitHub است و در اینجا آدرس دهی است. netlab بر اساس تعاریف استخر/پیوند ما ایجاد شده است:
| گره/رابط | آدرس IPv4 | آدرس IPv6 | توضیحات |
|---|---|---|---|
| pe1 | 10.0.42.1/32 | 2001:db8::1/128 | Loopback |
| اترنت 1 | 192.168.42.1/31 | 2001:db8:cafe::2/64 | pe1 ->p |
| ص | 10.0.42.2/32 | 2001:db8::2/128 | Loopback |
| اترنت 1 | 192.168.42.0/31 | 2001:db8:cafe::1/64 | p ->pe1 |
| اترنت 2 | 192.168.42.2/31 | 2001:db8:cafe:1::1/64 | p ->pe2 |
| pe2 | 10.0.42.3/32 | 2001:db8::3/128 | Loopback |
| اترنت 1 | 192.168.42.3/31 | 2001:db8:cafe:1::2/64 | pe2 ->p |
SR-MPLS Setup Survey
پس از راه اندازی netlab، تغییر به 1-intro/3-ds دایرکتوری و اجرا نت لب بالا، یک شبکه SR-MPLS دو پشته ای دارید و می توانید کاوش را شروع کنید.
به عنوان مثال، آیا ما TLV های SR-MPLS را در IS-IS LSP تبلیغ می کنیم؟
PE1 IS-IS LSP نشان داده شده در Arista EOS
pe2#show isis database detail pe1.00-00Legend:H - hostname conflictU - node unreachableIS-IS Instance: Gandalf VRF: defaultIS-IS Level 2 Link State DatabaseLSPID Seq Num Cksum Life Length IS Received LSPID Flagspe1.00-00 3 35182 1123 261 L2 0000.0000.0001.00-00LSP received time: 2026-05-17 08:50:21Remaining lifetime received: 1199 s Modified to: 1200 sNLPID: 0xCC(IPv4) 0x8E(IPv6)Hostname: pe1Area addresses: 49.0042Topology: 2 (IPv6)Topology: 0 (IPv4)Interface address: 192.168.42.1Interface address: 10.0.42.1Interface address: 2001:db8:cafe::2Interface address: 2001:db8::1IS Neighbor : p.00 Metric: 10IPv4 Neighbor Address: 192.168.42.0IPv4 Interface Address: 192.168.42.1Adj-sid: 100000 flags: [L V] weight: 0x0IS Neighbor (MT-IPv6): p.00 Metric: 10Adj-sid: 100001 flags: [L V F] weight: 0x0Reachability : 192.168.42.0/31 Metric: 10 Type: 1 UpReachability : 10.0.42.1/32 Metric: 10 Type: 1 UpSR Prefix-SID: 1 Flags: [N] Algorithm: 0Reachability (MT-IPv6): 2001:db8:cafe::/64 Metric: 10 Type: 1 UpReachability (MT-IPv6): 2001:db8::1/128 Metric: 10 Type: 1 UpSR Prefix-SID: 101 Flags: [N] Algorithm: 0Router Capabilities: Router Id: 10.0.42.1 Flags: []SR Local Block:SRLB Base: 965536 Range: 65536Area leader priority: 250 algorithm: 0Maximum SID depth:Base MPLS imposition (MSD type 1): 6SR Capability: Flags: [I V]SRGB Base: 900000 Range: 65536
تصویر IS-IS TLV عالی است:
- این شامل قابلیت های مسیریابی بخش و بلوک محلی SR در قابلیت های روتر TLV است
- همچنین شامل قابلیت دسترسی به IP توسعه یافته و TLV های دسترسی پیشرفته IPv6 با توپولوژی های متعدد، که هر کدام دارای یک زیر TLV SR Prefix-SID هستند.
SIDهای IPv6 در جدول پیشوند مسیریابی یک بخش IS-IS هستند:
جدول پیشوند IS-IS SR-MPLS در PE2 دارای Arista EOS
pe2#show isis segment-routing prefix-segmentsSystem ID: pe2 Instance: 'Gandalf'SR supported Data-plane: MPLS SR Router ID: 10.0.42.3Node: 6 Proxy-Node: 0 Prefix: 0 Total Segments: 6Flag Descriptions: R: Re-advertised, N: Node Segment, P: no-PHPE: Explicit-NULL, V: Value, L: Local, A: Proxy-Node attachedSegment status codes: * - Self originated Prefix, L1 - level 1, L2 - level 2, ! - SR-unreachable,# - Some IS-IS next-hops are SR-unreachablePrefix SID Label Type Flags System ID Level Protection Algorithm------------------------- ----- ------- ---------- ---------------------------- --------------- ----- -------------------- -------------10.0.42.1/32 1 900001 Node R:0 N:1 P:0 E:0 V:0 L:0 pe1 L2 unprotected SPF10.0.42.2/32 2 900002 Node R:0 N:1 P:0 E:0 V:0 L:0 p L2 unprotected SPF* 10.0.42.3/32 3 900003 Node R:0 N:1 P:0 E:0 V:0 L:0 pe2 L2 unprotected SPF2001:db8::1/128 101 900101 Node R:0 N:1 P:0 E:0 V:0 L:0 pe1 L2 unprotected SPF2001:db8::2/128 102 900102 Node R:0 N:1 P:0 E:0 V:0 L:0 p L2 unprotected SPF* 2001:db8::3/128 103 900103 Node R:0 N:1 P:0 E:0 V:0 L:0 pe2 L2 unprotected SPF
جای تعجب نیست که جدول ارسال MPLS شامل ورودی های IPv4 و IPv6 SID است:
جدول ارسال MPLS در PE2 در حال اجرا Arista EOS
pe2#show mpls route...900001 A[1]via M, 192.168.42.2, swap 900001EgressACL: applydirectly connected, Ethernet1ca:f0:00:02:00:02, vlan 1006900002 A[1]via M, 192.168.42.2, popEgressACL: applydirectly connected, Ethernet1ca:f0:00:02:00:02, vlan 1006900101 A[1]via M, fe80::c8f0:ff:fe02:2, swap 900101EgressACL: applydirectly connected, Ethernet1ca:f0:00:02:00:02, vlan 1006900102 A[1]via M, fe80::c8f0:ff:fe02:2, popEgressACL: applydirectly connected, Ethernet1ca:f0:00:02:00:02, vlan 1006
پست قبلی وبلاگ به جزئیات بیشتری میپردازد و توضیح میدهد که چرا ما برچسبهای MPLS برای SIDهایی را میبینیم که توسط PE1 و P تبلیغ میشوند، اما نه PE2، در جدول PE2 MPLS.
جزئیات کثیف
اکثر دستگاه هایی که می توانستم با آنها تست کنم netlab اجرای دو پشته SR-MPLS به جز Cisco IOS XE که نمی تواند SID را به پیشوندهای IPv6 اختصاص دهد.
با این حال، در حالی که FRRouting، Junos و Nokia SR Linux SID گره IPv6 را به هر پیشوند IPv6 که در رابط حلقه بک پیکربندی می کنید اختصاص می دهند، Arista EOS و Cisco IOS XR پیشوند Loopback را با SR-MPLS SID sub-TLV تبلیغ می کنند. فقط زمانی که پیشوند Loopback IPv6 /128 باشد.Nokia SR-OS پیشوند Loopback IPv6 را رد می کند که به هر حال /128 نیست.
اگر فریب استدلال “استفاده از /64 در همه جا” را خورده اید، ساعت های بی شماری را برای رفع اشکال این رفتار تلف خواهید کرد (همانطور که من انجام دادم). بدتر از همه، هیچ یک از اینها هیچ پیام خطای آشکاری تولید نمی کنند، و Cisco IOS XR آن را حتی بیشتر گیج کننده می کند زیرا SID (و برچسب MPLS) حلقه بک /64 IPv6 را اختصاص می دهد، اما آن را در IS-IS تبلیغ نمی کند:
جدول برچسب IS-IS SR-MPLS در PE1 (دارای IOS XR) با پیشوند IPv6 /64 Loopback
RP/0/RP0/CPU0:pe1#show isis segment-routing label tableSat May 16 17:13:32.616 UTCIS-IS Gandalf IS Label TableLabel Prefix Algorithm Interface---------- ---------------- --------- ---------16001 10.0.42.1/32 SPF Loopback016002 10.0.42.2/32 SPF16003 10.0.42.3/32 SPF16101 2001:db8:0:1::1/64 SPF Loopback016102 2001:db8:0:2::/64 SPF16103 2001:db8:0:3::/64 SPF
آن را امتحان کنید
مخزن کارگاه GitHub شامل دستورالعمل های نصب است. ممکن است بخواهید ابتدا آنها را بخوانید. سپس می توانید:




