مقالات

فعال کردن BGP Wedgies «BGP Labs


در تمرین «پیوست کردن انجمن‌های BGP به به‌روزرسانی‌های BGP خروجی»، یاد گرفتید که چگونه از انجمن‌های BGP استفاده کنید تا به ISPها بگویید ترجیحات محلی BGP را در انتهای خود کاهش دهند زیرا می‌خواهید از یک پیوند به عنوان پیوند پشتیبان استفاده کنید.

حتی این در محیط‌های بزرگ‌تر نیز کافی نیست، زیرا سیستم مسیریابی BGP جهانی می‌تواند بیش از یک حالت پایدار داشته باشد و انتقال سیستم از حالت پایدار فعلی به حالتی که ترجیح می‌دهید ممکن است دشوار باشد. RFC 4264 حالت های پایدار BGP ناخواسته را با مهربانی فرا می خواند BGP Wedgies; شما آنها را در این تمرین آزمایشگاهی بررسی و تصحیح خواهید کرد که از یک توپولوژی ISP دو لایه نسبتاً استاندارد استفاده می کند:

پیکربندی BGP موجود

روترهای آزمایشگاه شما از اعداد BGP AS زیر استفاده می کنند. C1، P1 و P2 یک پیشوند IPv4 را تبلیغ می کنند.

شماره های BGP AS

Node/ASN شناسه روتر پیشوندهای تبلیغاتی
AS65000
c1 10.0.0.1 192.168.42.0/24
AS65101
u1 10.0.0.4
AS65102
u2 10.0.0.5
AS65207
p1 172.17.207.1 172.17.207.0/24
AS65304
p2 172.23.4.1 172.23.4.0/24

روتر شما این همسایگان EBGP را دارد. netlab آنها را به صورت خودکار پیکربندی کنید. اگر از زیرساخت های آزمایشگاهی دیگری استفاده می کنید، باید همسایگان EBGP و پیشوندهای تبلیغ شده را به صورت دستی پیکربندی کنید.

یک گره شناسه روتر /
همسایه
روتر AS/
همسایه ع.س
همسایه IPv4
c1 10.0.0.1 65000
p1 65207 10.1.0.2
p2 65304 10.1.0.6

آزمایشگاه را راه اندازی کنید

با فرض اینکه قبلا زیرساخت آزمایشگاه خود را راه اندازی کرده اید:

  • تغییر دایرکتوری به policy/e-wedgies
  • اجرا کردن نت لب بالا (نیازمندی دستگاه)
  • با استفاده از روتر خود (RTR) وارد شوید اتصال نت لب c1 و بررسی کنید که آدرس های IP و جلسات EBGP به درستی پیکربندی شده اند.

احتیاط

را netlab connect --show دستور استفاده شده در قسمت چک وارد شده است netlab نسخه 1.7.0 به تأیید آزمایشگاهی خودکار نیاز دارد netlab نسخه 1.8.3.

مشکل

بدون پیکربندی سیاست BGP اضافی، روتر P2 (ISP بالادست) اتصال مستقیم را برای رسیدن به پیشوند مشتری 192.168.42.0/24 ترجیح می دهد:

$ netlab connect -q p2 --show ip bgp
BGP table version is 6, local router ID is 172.23.4.1, vrf id 0
Default local pref 100, local AS 65304
Status codes:  s suppressed, d damped, h history, * valid, > best, = multipath,
               i internal, r RIB-failure, S Stale, R Removed
Nexthop codes: @NNN nexthop's vrf id,  10.0.0.1/32      10.1.0.5                      200      0 65000 i
*> 172.17.207.0/24  10.1.0.14                              0 65102 65101 65207 i
*> 172.23.4.0/24    0.0.0.0                  0         32768 i
*> 192.168.42.0/24  10.1.0.5                      200      0 65000 ?

می‌توانید از مسیر pre-AS استفاده کنید تا P2 مسیر جایگزین (گذر از U2، U1 و P1) را با یک مسیر AS طولانی‌تر ترجیح دهد، اما این کار نمی‌کند. P2 همیشه مسیرهای مشتری را بر مسیرهای بالادست ترجیح می دهد و اولویت محلی بالایی را برای مسیرهای دریافتی از مشتریان خود تعیین می کند. اگر اطلاعات BGP را برای پیشوند مشتری در P2 بررسی کنید، متوجه خواهید شد که اولویت محلی به طور پیش فرض بالاتر از 100 است.

$ netlab connect -q p2 --show ip bgp 192.168.42.0
BGP routing table entry for 192.168.42.0/24
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  10.1.0.5 u2(10.1.0.14)
  65000
    10.1.0.5 from 10.1.0.5 (10.0.0.1)
      Origin incomplete, localpref 200, valid, external, bestpath-from-AS 65000, best (First path received)
      Last update: Mon Jun 24 11:35:05 2024

خوشبختانه، ISP P2 یک طرح جامعه BGP را پیاده سازی کرده است (شرح شده در تمرین آزمایشگاهی پیوست انجمن های BGP به BGP Outbound Updates) که به شما اجازه می دهد با پیوست کردن جامعه BGP 65304:100 به مسیرهای BGP ارسال شده، به P2 بگویید اولویت محلی پیشوند خود را به 50 کاهش دهد. به روز رسانی EBGP به P2.

تنظیمات BGP محلی را در P2 تغییر دهید

حتی پس از اینکه P2 اولویت محلی پیشوند 192.168.42.0/24 را کاهش داد، یک مسیر جایگزین (از طریق P1، U1 و U2) دریافت نمی کند زیرا U2 مسیر عبور از P2 را به دلیل مسیر AS کوتاهتر ترجیح می دهد. ما با BGP wedgie سروکار داریم.

شما می توانید این را با نمایش ip bgp 192.168.42.0/24 (یا مشابه) دستور اجرا شده در U2 (شما همچنین می توانید استفاده کنید اعتبار سنجی netlab فرمان):

$ netlab connect -q u2 --show ip bgp 192.168.42.0
BGP routing table entry for 192.168.42.0/24
Paths: (2 available, best #2, table default)
  Advertised to non peer-group peers:
  p2(10.1.0.13) u1(10.1.0.17)
  65101 65207 65000
    10.1.0.17 from u1(10.1.0.17) (10.0.0.4)
      Origin incomplete, valid, external, bestpath-from-AS 65101
      Last update: Mon Jun 24 11:35:01 2024
  65304 65000
    10.1.0.13 from p2(10.1.0.13) (172.23.4.1)
      Origin incomplete, valid, external, bestpath-from-AS 65304, best (AS Path)
      Community: 65304:100
      Last update: Mon Jun 24 11:54:14 2024

اگرچه می توانید جامعه BGP 65304:100 متصل به مسیر BGP را برای 192.168.42.0/24 در U2 مشاهده کنید، U2 جامعه را تشخیص نمی دهد، آن را نادیده می گیرد و از طول مسیر AS به عنوان معیار انتخاب مسیر استفاده می کند.

بیایید ببینیم که آیا با یک گوه واقعی BGP سروکار داریم یا خیر:

  • جلسه BGP بین C1 و P2 را پاک کنید. P2 ارسال خواهد کردمن پیشوند را گم کردمبه روز رسانی به U2. U2 یک مسیر جایگزین را انتخاب کرده و آن را به P2 ارسال می کند. هنگامی که P2 مسیر را از مشتری دریافت می کند، از قبل یک مسیر جایگزین با اولویت محلی بهتر خواهد داشت. ترافیک از P2 به C1 از U2، U1 و P1 عبور خواهد کرد.
  • جلسه BGP بین C1 و P1 را پاک کنید. P1 ارسال خواهد کردمن پیشوند را گم کردمبه روز رسانی U1، U1 آن را به U2 منتشر می کند و U2 آن را به P2 ارسال می کند. P2 یک مسیر واحد به 192.168.42.0/24 خواهد داشت و آن را به U2 تبلیغ می کند و سیستم مسیریابی را به حالت پایدار ناخواسته برمی گرداند.

طول مسیر AS را افزایش دهید

در زندگی واقعی، می توانید بفهمید که از کدام جامعه BGP برای تأثیرگذاری بر بهترین فرآیند انتخاب مسیر BGP U2 استفاده کنید. ما از یک رویکرد brute force استفاده می کنیم و تعدادی اعداد AS را به مسیر AS که C1 تبلیغ می کند به P2 اضافه می کنیم.

حداقل سه نسخه از شماره AS خود (65000) را به به‌روزرسانی‌های EBGP که C1 به P2 ارسال می‌کند، اضافه کنید. از مکانیسم های پیکربندی که در تمرین آزمایشگاهی با استفاده از AS-Path Prepending یاد گرفتید برای تأثیرگذاری بر جریان ترافیک ورودی استفاده کنید.

چک کردن

شما می توانید استفاده کنید اعتبار سنجی netlab اگر نصب کرده اید دستور دهید netlab نسخه 1.8.3 یا بالاتر و از Cumulus Linux، FRR یا Arista EOS در روترهای خارجی استفاده کنید. بررسی تست های اعتبار سنجی:

  • وضعیت جلسه EBGP بین C1 و P1/P2
  • آیا C1 پیشوند خود را به P1/P2 اعلام می کند و آیا این پیشوند به U1/U2 منتشر می شود؟
  • انجمن متصل به EBGP به روز رسانی C1 به P2 ارسال می کند.
  • آیا پرش بعدی بهترین مسیر به 192.168.42.0/24 در U2 به U1 اشاره می کند؟

اگر اعتبار سنجی netlab دستور خراب می شود یا از سیستم عامل شبکه دیگری در مسیریاب های ISP استفاده می کنید:

  • پیشوند BGP تبلیغ شده توسط C1 تا P2 را با دستوری مشابه بررسی کنید نمایش ip bgp 192.168.42.0/24. پیشوند تبلیغ شده توسط C1 باید دارای یک مسیر طولانی AS، یک جامعه BGP 65304:100، و یک اولویت محلی بر روی 50 باشد.
$ netlab connect -q p2 --show ip bgp 192.168.42.0
BGP routing table entry for 192.168.42.0/24
Paths: (2 available, best #1, table default)
  Advertised to non peer-group peers:
  10.1.0.5 u2(10.1.0.14)
  65102 65101 65207 65000
    10.1.0.14 from u2(10.1.0.14) (10.0.0.5)
      Origin incomplete, valid, external, bestpath-from-AS 65102, best (Local Pref)
      Last update: Mon Jun 24 11:59:55 2024
  65000 65000 65000 65000 65000 65000 65000 65000
    10.1.0.5 from 10.1.0.5 (10.0.0.1)
      Origin incomplete, localpref 50, valid, external, bestpath-from-AS 65000
      Community: 65304:100
      Last update: Mon Jun 24 11:59:55 2024
  • همان پیشوند U2 را بررسی کنید. باید یک مسیر BGP برای این پیشوند در جدول U2 BGP وجود داشته باشد و باید توسط U1 تبلیغ شود:
$ netlab connect -q u2 --show ip bgp 192.168.42.0
BGP routing table entry for 192.168.42.0/24
Paths: (1 available, best #1, table default)
  Advertised to non peer-group peers:
  p2(10.1.0.13) u1(10.1.0.17)
  65101 65207 65000
    10.1.0.17 from u1(10.1.0.17) (10.0.0.4)
      Origin incomplete, valid, external, bestpath-from-AS 65101, best (First path received)
      Last update: Mon Jun 24 11:35:00 2024

بعد:

اطلاعات مرجع

اگر قصد دارید یک زیرساخت آزمایشگاهی سفارشی بسازید، اطلاعات زیر ممکن است به شما کمک کند:

الزامات دستگاه

  • از هر دستگاهی که توسط آن پشتیبانی می شود استفاده کنید netlab ماژول پیکربندی BGP برای C1، P1، U1 و U2.
  • P2 به پیکربندی اضافی نیاز دارد که ترجیحات محلی BGP را بر اساس جوامع BGP تنظیم می کند. تمرین آزمایشگاهی شامل قالب‌های پیکربندی برای Arista EOS، Cumulus Linux و FRR است. اگر تصمیم دارید از دستگاه دیگری برای P2 استفاده کنید، باید آن را به صورت دستی پیکربندی کنید.
  • شما می توانید اعتبار سنجی آزمایشگاهی خودکار را با Arista EOS، Cumulus Linux، یا FRR در حال اجرا در P1، P2، U1 و U2 انجام دهید. به تأیید آزمایشگاهی خودکار نیاز دارد netlab نسخه 1.8.3 یا بالاتر.
  • مخزن Git شامل تنظیمات اولیه دستگاه برای لینوکس کومولوس است.

سیم کشی آزمایشگاه

نام اتصال دستگاه اولیه بندر مبدا دستگاه هدف بندر مقصد
لینک اصلی c1 اترنت 1 p1 swp1
آپلینک پشتیبان c1 اترنت 2 p2 swp1
P1 uplink p1 swp2 u1 swp1
P2 uplink p2 swp2 u2 swp1
همتاسازی بالادست u1 swp2 u2 swp2

آدرس دهی آزمایشگاه

گره/رابط آدرس IPv4 آدرس IPv6 شرح
c1 10.0.0.1/32 Loopback
اترنت 1 10.1.0.1/30 لینک اصلی
اترنت 2 10.1.0.5/30 آپلینک پشتیبان
p1 172.17.207.1/24 Loopback
swp1 10.1.0.2/30 لینک اصلی
swp2 10.1.0.9/30 P1 uplink
p2 172.23.4.1/24 Loopback
swp1 10.1.0.6/30 آپلینک پشتیبان
swp2 10.1.0.13/30 P2 uplink
u1 10.0.0.4/32 Loopback
swp1 10.1.0.10/30 P1 uplink
swp2 10.1.0.17/30 همتاسازی بالادست
u2 10.0.0.5/32 Loopback
swp1 10.1.0.14/30 P2 uplink
swp2 10.1.0.18/30 همتاسازی بالادست


Source link

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

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

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