فعال کردن 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 | همتاسازی بالادست |




