مقالات

مسیریابی دو پشته (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


Source link

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا