مسیریابی دو پشته (IPv4+IPv6) IS-IS « IS-IS Labs

به نظر می رسد افزودن پشتیبانی IPv6 به IS-IS کار بیهوده ای باشد. ساختارهای دادهای که توپولوژی شبکه را توصیف میکنند قابل توسعه هستند و ما قبلاً TLV برای پیوندها و پیشوندهای IPv4 داریم. بیایید پیشوندهای IPv6 را اضافه کنیم و تمام شود. این رویکردی است که توسط RFC 5308 اتخاذ شده است. متأسفانه، شیطان معمولاً در جزئیات به ظاهر نامربوط پنهان می شود و ما آنها را در این تمرین آزمایشگاهی بررسی خواهیم کرد.
ما از یک توپولوژی بسیار ساده با سه روتر استفاده خواهیم کرد. تنها مشکل، آدرس دهی پیوند R2-R3 است. در حالی که هر سه روتر دارای یک آدرس IPv6 پیکربندی شده در رابط حلقه بک خود هستند، پیوند R2-R3 IPv6 را اجرا نمی کند.
الزامات دستگاه
از هر دستگاهی که توسط آن پشتیبانی می شود استفاده کنید netlab ماژول پیکربندی IS-IS.
راه اندازی آزمایشگاه
می توانید آزمایشگاه را در زیرساخت آزمایشگاه خود یا در GitHub Codespaces اجرا کنید (جزئیات بیشتر):
- تغییر دایرکتوری به
basic/5-ipv6 - اعدام نت لب بالا
- وارد دستگاه های آزمایشگاهی با اتصال netlab
شما یک آزمایشگاه با موارد زیر دریافت خواهید کرد:
- آدرس های IPv4 و IPv6 رابط های حلقه بک
- IS-IS برای مسیریابی IPv4 پیکربندی شده است
- IPv6 LLA روی پیوند R1-R2 پیکربندی شده است اما در پیوند R2-R3 پیکربندی نشده است.
جداول مسیریابی اولیه
جداول مسیریابی R1 را بررسی کنید و مطمئن شوید که می تواند به رابط های معکوس R2 و R3 برسد. شما باید این پرینت های FRRouting و Arista EOS را دریافت کنید:
جدول مسیریابی IPv4 R1 FRRouting را انجام می دهد
r1# show ip route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
L * 10.0.0.1/32 is directly connected, lo, 00:00:21
C>* 10.0.0.1/32 is directly connected, lo, 00:00:21
I>* 10.0.0.2/32 [115/20] via 10.1.0.2, eth1, weight 1, 00:00:17
I>* 10.0.0.3/32 [115/30] via 10.1.0.2, eth1, weight 1, 00:00:17
I 10.1.0.0/30 [115/20] via 10.1.0.2, eth1 inactive, weight 1, 00:00:17
C>* 10.1.0.0/30 is directly connected, eth1, 00:00:21
L>* 10.1.0.1/32 is directly connected, eth1, 00:00:21
I>* 10.1.0.4/30 [115/20] via 10.1.0.2, eth1, weight 1, 00:00:17
جدول مسیریابی IPv4 در R1 که Arista EOS را اجرا می کند
r1>show ip route | begin Gateway
Gateway of last resort is not set
C 10.0.0.1/32
directly connected, Loopback0
I L2 10.0.0.2/32 [115/20]
via 10.1.0.2, Ethernet1
I L2 10.0.0.3/32 [115/30]
via 10.1.0.2, Ethernet1
C 10.1.0.0/30
directly connected, Ethernet1
I L2 10.1.0.4/30 [115/20]
via 10.1.0.2, Ethernet1
جداول مسیریابی IPv6 را نیز بررسی کنید. هر روتر فقط باید پیشوند Loopback IPv6 خود را در جدول مسیریابی IPv6 داشته باشد:
جدول مسیریابی IPv6 R1 FRRouting را انجام می دهد
r1# show ipv6 route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
C>* 2001:db8:cafe:1::/64 is directly connected, lo, 00:00:31
L>* 2001:db8:cafe:1::1/128 is directly connected, lo, 00:00:31
C>* fe80::/64 is directly connected, eth1, 00:00:30
جدول مسیریابی IPv6 در R1 که Arista EOS را اجرا می کند
r1>show ipv6 route
VRF: default
Displaying 1 of 5 IPv6 routing table entries
Source Codes:
C - connected, S - static, K - kernel, O3 - OSPFv3,
B - Other BGP Routes, A B - BGP Aggregate, R - RIP,
I L1 - IS-IS level 1, I L2 - IS-IS level 2, DH - DHCP,
NG - Nexthop Group Static Route, M - Martian,
DP - Dynamic Policy Route, L - VRF Leaked,
G - gRIBI, RC - Route Cache Route,
CL - CBF Leaked Route
C 2001:db8:cafe:1::/64 [0/0]
via Loopback0, directly connected
IS-IS را برای مسیریابی IPv6 پیکربندی کنید
فعال کردن مسیریابی IPv6 در یک نمونه IS-IS موجود بی اهمیت است. برخی از دستگاه ها (مثلاً FRRouting) از شما انتظار دارند که این کار را روی رابط های فردی (از جمله رابط های حلقه بک) با دستوری مشابه انجام دهید. روتر ipv6 isis; دستگاه های دیگر (به عنوان مثال، Arista EOS) از شما می خواهند که خانواده آدرس IPv6 را در فرآیند مسیریابی IS-IS بدون تغییر پیکربندی رابط پیکربندی کنید.آدرس-خانواده ipv6 یک دستور معمولی برای استفاده است).
بسته به دستگاههایی که در آزمایشگاه خود استفاده میکنید، مسیریابی IPv6 IS-IS را روی همه پیوندها با آدرسهای IPv6 یا یک خانواده آدرس IPv6 در فرآیند مسیریابی IS-IS روی همه روترها پیکربندی کنید.
نتایج گیج کننده
اگر از Arista EOS در آزمایشگاه خود استفاده می کنید، متوجه خواهید شد که R2 دیگر نمی خواهد R3 را به عنوان همسایه IS-IS خود داشته باشد. Arista EOS بسیار سختگیرانه است و مجاورتهای IS-IS را فقط در رابطهایی با آدرسهایی از همه خانوادههای آدرس پیکربندی شده در فرآیند مسیریابی IS-IS تشکیل میدهد.
IS-IS R2 با Arista EOS همسایه است
r2#show isis neighbors
Instance VRF System Id Type Interface SNPA State Hold time Circuit Id
Gandalf default r1 L2 Ethernet1 P2P UP 25 60
اگر فکر میکنید این خیلی سختگیرانه است، بیایید ببینیم در دستگاههایی که رویکرد آرامتری دارند چه اتفاقی میافتد. آزمایشگاه را با دستگاه های FRRouting اجرا کنید و IS-IS را برای IPv6 فعال کنید (نکته: روتر ipv6 isis) در تمام رابط های دارای آدرس IPv6. پس از انجام این کار، R2 همچنان باید دارای مجاورت با R3 و R1 باشد:
همسایگان IS-IS R2 در حال انجام FRRouting
r2# show isis neighbor
Area Gandalf:
System Id Interface L State Holdtime SNPA
r1 eth1 2 Up 28 2020.2020.2020
r3 eth2 2 Up 28 2020.2020.2020
با این حال، اگرچه R3 پیشوند Loopback IPv6 خود را در LSP خود تبلیغ می کند، R2 پیشوند IPv6 حلقه بک R3 را در جدول مسیریابی IPv6 خود ندارد:
LSP تبلیغ شده توسط R3
r2# show isis database detail r3.00-00
Area Gandalf:
IS-IS Level-2 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
r3.00-00 109 0x00000004 0xa092 1713 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0001
Hostname: r3
TE Router ID: 10.0.0.3
Router Capability: 10.0.0.3 , D:0, S:0
Extended Reachability: 0000.0000.0002.00 (Metric: 10)
IPv4 Interface Address: 10.0.0.3
Extended IP Reachability: 10.0.0.3/32 (Metric: 10)
Extended IP Reachability: 10.1.0.4/30 (Metric: 10)
IPv6 Reachability: 2001:db8:cafe:3::/64 (Metric: 10)
جدول مسیریابی IPv6 R2 (FRRouting)
r2# show ipv6 route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
I>* 2001:db8:cafe:1::/64 [115/20] via fe80::a8c1:abff:fed7:a0ce, eth1, weight 1, 00:00:47
C>* 2001:db8:cafe:2::/64 is directly connected, lo, 00:24:45
L>* 2001:db8:cafe:2::1/128 is directly connected, lo, 00:24:45
C>* fe80::/64 is directly connected, eth1, 00:24:44
R2 چگونه می داند که می تواند از پیوند R3 برای ترافیک IPv4 استفاده کند اما برای ترافیک IPv6 نه؟ فقدان آدرس واسط IPv6 اولین نکته است، همانطور که پیامهای سلام IS-IS نیز وجود دارد. هر روتر IS-IS خانواده های آدرس پیکربندی شده روی یک رابط را در پیام های تبریک IS-IS که از طریق آن رابط ارسال می شود، تبلیغ می کند. می توانید از دستوری مشابه استفاده کنید نمایش جزئیات همسایه isis برای بررسی این:
همسایگان IS-IS برای R2 قابل مشاهده است (FRRouting)
r2# show isis neighbor detail
Area Gandalf:
r1
Interface: eth1, Level: 2, State: Up, Expires in 30s
Adjacency flaps: 1, Last: 27m13s ago
Circuit type: L2, Speaks: IPv4, IPv6
SNPA: 2020.2020.2020
Area Address(es):
49.0001
IPv4 Address(es):
10.1.0.1
IPv6 Address(es):
fe80::a8c1:abff:fed7:a0ce
r3
Interface: eth2, Level: 2, State: Up, Expires in 27s
Adjacency flaps: 1, Last: 27m13s ago
Circuit type: L2, Speaks: IPv4
SNPA: 2020.2020.2020
Area Address(es):
49.0001
IPv4 Address(es):
10.1.0.6
متأسفانه، هیچ راهی برای انتشار اطلاعات از بسته های سلامت IS-IS به روترهای دیگر در شبکه وجود ندارد. R1 فکر می کند که می تواند با خیال راحت از R2 برای رسیدن به آدرس حلقه بک IPv6 R3 استفاده کند، حتی اگر پیوند R2-R3 فقط ترافیک IPv4 را حمل کند:
جدول مسیریابی IPv6 R1 (FRRouting)
r1# show ipv6 route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
C>* 2001:db8:cafe:1::/64 is directly connected, lo, 00:29:09
L>* 2001:db8:cafe:1::1/128 is directly connected, lo, 00:29:09
I>* 2001:db8:cafe:2::/64 [115/20] via fe80::a8c1:abff:fe04:e9f6, eth1, weight 1, 00:05:11
I>* 2001:db8:cafe:3::/64 [115/30] via fe80::a8c1:abff:fe04:e9f6, eth1, weight 1, 00:05:11
C>* fe80::/64 is directly connected, eth1, 00:29:08
برای خانه: به محض اینکه پیوندی در یک دامنه IS-IS ترافیک را برای همه خانواده های آدرس پیکربندی شده در IS-IS ارسال نکند، می توانید سیاهچاله ها را در شبکه خود مشاهده کنید.
مسیریابی چند توپولوژیکی
راه حل پازل فوق استفاده است چندین توپولوژی شبکه در یک فرآیند IS-IS واحد (مسیریابی چند توپولوژی IS-IS تعریف شده در RFC 5120)، به طور موثر IS-IS را ترکیبی از OSPFv2 و OSPFv3 می کند.
مشاوره
IS-IS چند توپولوژیکی هنوز بهتر از ترکیب OSPFv2 و OSPFv3 است. شما از یک پروتکل مسیریابی واحد با مکانیزم مجاورت/سیلاب و ساختار داده یکپارچه استفاده می کنید، در حالی که OSPFv2 و OSPFv3 تفاوت های قابل توجهی دارند.
اکثر پیاده سازی های IS-IS به طور پیش فرض از مسیریابی چند توپولوژیکی استفاده نمی کنند. شما باید آن را با یک دستور پیکربندی روتر فعال کنید چند توپولوژی (معمولا در خانواده آدرس IPv6) یا با a توپولوژی ipv6-unicast دستور پیکربندی روتر این کار را روی هر سه دستگاه آزمایشگاهی انجام دهید.
اعتبار سنجی
پس از پیکربندی مسیریابی IS-IS چند توپولوژیکی در همه روترهای آزمایشگاه خود، باید موارد زیر را داشته باشید:
- همسایگی های IS-IS بین R2 و R1/R3
- مسیرها برای هر سه آدرس IPv4 Loopback در جداول مسیریابی IPv4 برای همه مسیرها
- مسیرهایی برای پیشوندهای IPv6 Loopback در R1 و R2، اما نه در R3. R3 نمی تواند در توپولوژی IPv6 شرکت کند زیرا هیچ اتصال IPv6 برای روترهای دیگر فعال نیست.
همسایگان IS-IS R2
r2# show isis neighbor
Area Gandalf:
System Id Interface L State Holdtime SNPA
r1 eth1 2 Up 28 2020.2020.2020
r3 eth2 2 Up 27 2020.2020.2020
مسیرهایی برای IPv4 Loopback در R2
r2# show ip route 10.0.0.0/24 longer-prefixes
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
I>* 10.0.0.1/32 [115/20] via 10.1.0.1, eth1, weight 1, 00:43:00
L * 10.0.0.2/32 is directly connected, lo, 00:43:04
C>* 10.0.0.2/32 is directly connected, lo, 00:43:04
I>* 10.0.0.3/32 [115/20] via 10.1.0.6, eth2, weight 1, 00:43:00
جدول مسیریابی IPv6 در R2
r2# show ipv6 route
Codes: K - kernel route, C - connected, L - local, S - static,
R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
f - OpenFabric, t - Table-Direct,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup
t - trapped, o - offload failure
I>* 2001:db8:cafe:1::/64 [115/20] via fe80::a8c1:abff:fed7:a0ce, eth1, weight 1, 00:02:11
C>* 2001:db8:cafe:2::/64 is directly connected, lo, 00:43:33
L>* 2001:db8:cafe:2::1/128 is directly connected, lo, 00:43:33
C>* fe80::/64 is directly connected, eth1, 00:43:32
بعدی: بهینه سازی استقرارهای ساده IS-IS
پشت صحنه
مسیریابی IS-IS چند توپولوژی دو جنبه IS-IS را تغییر می دهد. بسته های hello IS-IS دارای TLV های اضافی هستند که توپولوژی های فعال در روتر ارسال کننده را توصیف می کنند. اگر جزئیات همسایه IS-IS را مشاهده کنید، می توانید آنها را ببینید:
همسایگان IS-IS چند توپولوژی (FRRouting)
r2# show isis neighbor detail
Area Gandalf:
r1
Interface: eth1, Level: 2, State: Up, Expires in 27s
Adjacency flaps: 1, Last: 45m9s ago
Circuit type: L2, Speaks: IPv4, IPv6
Topologies:
standard
ipv6-unicast
SNPA: 2020.2020.2020
Area Address(es):
49.0001
IPv4 Address(es):
10.1.0.1
IPv6 Address(es):
fe80::a8c1:abff:fed7:a0ce
r3
Interface: eth2, Level: 2, State: Up, Expires in 29s
Adjacency flaps: 1, Last: 45m9s ago
Circuit type: L2, Speaks: IPv4
SNPA: 2020.2020.2020
Area Address(es):
49.0001
IPv4 Address(es):
10.1.0.6
مشاوره
اگرچه ما توپولوژی IPv6 را روی R3 پیکربندی کردیم، اما این توپولوژی را روی رابط فقط IPv4 تبلیغ نمی کند.
چند توپولوژی IS-IS Neighbors (Arista EOS)
r2#show isis nei detail
Instance VRF System Id Type Interface SNPA State Hold time Circuit Id
Gandalf default r1 L2 Ethernet1 P2P UP 27 60
Area addresses: 49.0001
SNPA: P2P
Router ID: 0.0.0.0
Advertised Hold Time: 30
State Changed: 00:00:31 ago at 2024-08-19 13:30:06
IPv4 Interface Address: 10.1.0.1
IPv6 Interface Address: fe80::50dc:caff:fefe:101
Interface name: Ethernet1
Graceful Restart: Supported
Supported Address Families: IPv4, IPv6
Neighbor Supported Address Families: IPv4, IPv6
Gandalf default r3 L2 Ethernet2 P2P UP 22 62
Area addresses: 49.0001
SNPA: P2P
Router ID: 0.0.0.0
Advertised Hold Time: 30
State Changed: 00:00:08 ago at 2024-08-19 13:30:29
IPv4 Interface Address: 10.1.0.6
IPv6 Interface Address: none
Interface name: Ethernet2
Graceful Restart: Supported
Supported Address Families: IPv4
Neighbor Supported Address Families: IPv4
هشدار
Arista EOS در تأیید IS-IS hello بسیار سختگیر است. تا زمانی که IS-IS چند توپولوژیکی را روی R3 پیکربندی نکنید، مجاورت بین R2 و R3 ایجاد نمی شود، حتی اگر پیوند بین R2 و R3 فقط از IPv4 پشتیبانی کند.
تغییر در LSP حتی مهمتر است. هر روتر توپولوژی های خود را در LSP خود نیز تبلیغ می کند توپولوژی با استفاده از لینک ها دسترسی گسترده (معیارهای گسترده) برای اتصالات دارای IPv4 و قابلیت دسترسی چند توپولوژیکی برای اتصالات دارای IPv6
LSP تبلیغ شده توسط R2 با استفاده از توپولوژی IPv6 (FRRouting)
r2# show isis database detail r2.00-00
Area Gandalf:
IS-IS Level-2 link-state database:
LSP ID PduLen SeqNumber Chksum Holdtime ATT/P/OL
r2.00-00 * 152 0x00000008 0xed0b 1415 0/0/0
Protocols Supported: IPv4, IPv6
Area Address: 49.0001
MT Router Info: ipv4-unicast
MT Router Info: ipv6-unicast
Hostname: r2
TE Router ID: 10.0.0.2
Router Capability: 10.0.0.2 , D:0, S:0
Extended Reachability: 0000.0000.0001.00 (Metric: 10)
Extended Reachability: 0000.0000.0003.00 (Metric: 10)
MT Reachability: 0000.0000.0001.00 (Metric: 10) ipv6-unicast
IPv4 Interface Address: 10.0.0.2
Extended IP Reachability: 10.0.0.2/32 (Metric: 10)
Extended IP Reachability: 10.1.0.0/30 (Metric: 10)
Extended IP Reachability: 10.1.0.4/30 (Metric: 10)
MT IPv6 Reachability: 2001:db8:cafe:2::/64 (Metric: 10) ipv6-unicast
اطلاعات دسترسی همسایه پروتکل به روترها اجازه می دهد تا الگوریتم SPF را روی خانواده آدرس های فردی انجام دهند. سپس الگوریتم می تواند پیوندهای بی فایده (برای یک خانواده آدرس) را در حالی که کوتاه ترین درخت مسیر را می سازد، رد کند.
برای خانه: از مسیریابی IS-IS چند توپولوژیکی در شبکه های چند پروتکلی استفاده کنید، مگر اینکه بتوانید تضمین کنید که همه پیوندها از خانواده آدرس های یکسانی استفاده می کنند (یا جلسات عیب یابی اواخر شب را دوست دارید).
اطلاعات مرجع
سیم کشی آزمایشگاه
| دستگاه اولیه | بندر مبدا | دستگاه هدف | بندر مقصد |
|---|---|---|---|
| r1 | eth1 | r2 | eth1 |
| r2 | eth2 | r3 | eth1 |
آدرس دهی آزمایشگاه
| گره/رابط | آدرس IPv4 | آدرس IPv6 | توضیحات |
|---|---|---|---|
| r1 | 10.0.0.1/32 | 2001:db8:cafe:1::1/64 | Loopback |
| eth1 | 10.1.0.1/30 | LLA | r1 -> r2 |
| r2 | 10.0.0.2/32 | 2001:db8:cafe:2::1/64 | Loopback |
| eth1 | 10.1.0.2/30 | LLA | r2 -> r1 |
| eth2 | 10.1.0.5/30 | r2 -> r3 | |
| r3 | 10.0.0.3/32 | 2001:db8:cafe:3::1/64 | Loopback |
| eth1 | 10.1.0.6/30 | r3 -> r2 |




