سیسکو BGP AS Prepend

آموزش پیاده سازی BGP AS Prepend روتر سیسکو

سازمانی که با BGP به دو ISP وصل است (Multihoming) ، کنترل ترافیک خروجی را راحت در دست دارد: با Local Preference روی روتر خودش تعیین می‌کند از کدام لینک به اینترنت برود. اما ترافیک ورودی را بقیه اینترنت تعیین می‌کند؛ روترهای دنیا هستند که تصمیم می‌گیرند برای رسیدن به prefix شما از کدام ISP بیایند. ساده‌ترین ابزار برای اثر گذاشتن روی این تصمیم، AS Path Prepend است.

در این مطلب الگوریتم انتخاب مسیر BGP ، کارکرد Prepend ، کانفیگ کامل برای سناریوی لینک اصلی و پشتیبان، محدودیت‌ها، و جایگزین قوی‌تر یعنی BGP Community را مرور می‌کنیم.

BGP AS Prepend در روتر سیسکو
AS Prepend : طولانی‌تر کردن AS_PATH برای کم‌جذاب کردن یک مسیر ورودی

BGP AS Prepend در یک نگاه

هدف کم‌جذاب کردن یک مسیر برای ترافیک ورودی
روش تکرار شماره AS خودتان در AS_PATH هنگام اعلام prefix به یک همسایه
اثر روی ترافیک ورودی (Inbound)
ابزار ترافیک خروجی Local Preference و Weight
تعداد معمول تکرار ۲ تا ۴ بار؛ بیشتر معمولاً اثر اضافه ندارد
جایگزین دقیق‌تر BGP Community که ISP تعریف کرده

BGP چطور بهترین مسیر را انتخاب می‌کند

وقتی یک روتر برای یک prefix چند مسیر دارد، معیارها را به این ترتیب بررسی می‌کند و در اولین معیاری که تفاوت دارد تصمیم می‌گیرد:

ترتیب معیار برنده
1 Weight (اختصاصی سیسکو، محلی) بیشتر
2 Local Preference بیشتر
3 مسیرهایی که خود روتر ایجاد کرده ترجیح دارند
4 طول AS_PATH کوتاه‌تر
5 Origin IGP ، سپس EGP ، سپس Incomplete
6 MED کمتر
7 eBGP در برابر iBGP eBGP
8 متریک IGP تا Next-Hop کمتر
9 به بعد قدیمی‌ترین مسیر eBGP ، کمترین Router-ID و … —

AS Prepend روی معیار چهارم کار می‌کند: با تکرار AS خودتان، مسیری که از یک ISP به شما می‌رسد طولانی‌تر به نظر می‌رسد. اما اگر شبکه‌ای در راه، Local Preference یا Weight را خودش تنظیم کرده باشد، این معیارها زودتر تصمیم می‌گیرند و Prepend اثری ندارد؛ این مهم‌ترین محدودیت آن است.

Prepend در عمل

نمونه‌ای واقعی از جدول BGP یک Route Server عمومی: برای رسیدن به یک prefix ، یکی از مسیرها AS 12880 را بارها تکرار کرده است. روترهای دنیا مسیر کوتاه‌تر را ترجیح می‌دهند و مسیر پر از تکرار فقط وقتی استفاده می‌شود که مسیرهای دیگر از دست بروند.

route-views> show ip bgp 10.10.10.0
BGP routing table entry for 10.10.10.0/24
Paths: (35 available, best #35)
  7018 1299 12880 49689 44066
  6079 2914 9498 8529 8529 8529 12880 12880 12880 12880 12880 12880 49689 44066
  1239 1299 12880 49689 44066

کانفیگ: لینک اصلی و پشتیبان

سازمان با AS 65010 و prefix 198.51.100.0/24 به ISP-A (AS 64500 ، لینک اصلی) و ISP-B (AS 64501 ، لینک پشتیبان) وصل است. می‌خواهیم ترافیک ورودی عادی از ISP-A بیاید و ISP-B فقط در زمان قطعی استفاده شود.

ip prefix-list MY-PREFIX seq 5 permit 198.51.100.0/24
!
route-map TO-ISP-B-OUT permit 10
 match ip address prefix-list MY-PREFIX
 set as-path prepend 65010 65010 65010
!
route-map TO-ISP-A-OUT permit 10
 match ip address prefix-list MY-PREFIX
!
router bgp 65010
 bgp log-neighbor-changes
 neighbor 203.0.113.1 remote-as 64500
 neighbor 203.0.113.1 description ISP-A primary
 neighbor 192.0.2.1 remote-as 64501
 neighbor 192.0.2.1 description ISP-B backup
 address-family ipv4
  network 198.51.100.0 mask 255.255.255.0
  neighbor 203.0.113.1 activate
  neighbor 203.0.113.1 route-map TO-ISP-A-OUT out
  neighbor 192.0.2.1 activate
  neighbor 192.0.2.1 route-map TO-ISP-B-OUT out
!
ip route 198.51.100.0 255.255.255.0 Null0

نکته‌ها:

  • فقط AS خودتان را prepend کنید؛ اضافه کردن AS دیگران یعنی ادعای مسیری که وجود ندارد.
  • مسیر استاتیک به Null0 تضمین می‌کند prefix همیشه در جدول باشد تا دستور network آن را اعلام کند.
  • route-map خروجی به ISP-A عمداً خالی است تا فقط prefix خودتان را اعلام کنید، نه مسیرهایی که از ISP-B یاد گرفته‌اید؛ وگرنه شبکه شما مسیر ترانزیت بین دو ISP می‌شود.
  • بعد از تغییر route-map ، به‌روزرسانی را با clear ip bgp 192.0.2.1 soft out بفرستید تا نشست قطع نشود.

و ترافیک خروجی؟

Prepend روی ترافیک خروجی شما اثری ندارد. برای انتخاب ISP-A به‌عنوان مسیر خروجی اصلی، Local Preference را روی مسیرهای دریافتی بالا ببرید:

route-map FROM-ISP-A-IN permit 10
 set local-preference 200
router bgp 65010
 address-family ipv4
  neighbor 203.0.113.1 route-map FROM-ISP-A-IN in

محدودیت‌ها

  • Local Preference اپراتورها: بسیاری از ISPها مسیرهای مشتریان خودشان را با Local Preference بالاتر از مسیرهای پیرینگ ترجیح می‌دهند؛ اگر ISP-B شما این کار را بکند، مشتریان خود ISP-B همچنان از ISP-B به شما می‌رسند، هر چقدر هم prepend کنید.
  • تکرار زیاد بی‌فایده است: معمولاً ۲ تا ۴ تکرار کافی است. بعضی شبکه‌ها مسیرهای با AS_PATH بسیار طولانی را فیلتر می‌کنند و Prepend افراطی دیده‌شدن prefix را هم کم می‌کند.
  • تقسیم بار دقیق ممکن نیست: Prepend یک ابزار درشت است؛ برای ۶۰ به ۴۰ کردن بار، باید prefix را به بخش‌های کوچک‌تر تقسیم کنید و هر بخش را با تنظیم متفاوت اعلام کنید.

جایگزین بهتر: BGP Community

بیشتر ISPهای جدی مجموعه‌ای از Communityها منتشر می‌کنند که با برچسب زدن روی prefix ، از خود ISP می‌خواهید کاری انجام دهد؛ مثلاً Local Preference مسیر شما را در شبکه خودش پایین بیاورد، یا فقط برای پیرهای خاصی prepend کند. این روش دقیق‌تر از Prepend است، چون مستقیماً روی معیار Local Preference ISP اثر می‌گذارد. فهرست Communityها را از ISP خود بگیرید:

route-map TO-ISP-B-OUT permit 10
 match ip address prefix-list MY-PREFIX
 set community 64501:80
router bgp 65010
 address-family ipv4
  neighbor 192.0.2.1 send-community

بررسی

R1# show ip bgp neighbors 192.0.2.1 advertised-routes
   Network          Next Hop     Metric LocPrf Weight Path
*> 198.51.100.0/24  0.0.0.0           0         32768 65010 65010 65010 i
R1# show ip bgp summary

برای دیدن اینکه دنیا مسیر شما را چطور می‌بیند، از Looking Glassهای عمومی و Route Serverهایی مثل route-views استفاده کنید.

پرسش‌های متداول

چند بار prepend کنم؟
از ۲ یا ۳ شروع کنید و اثر را با Looking Glass ببینید.

Prepend روی ترافیک خروجی اثر دارد؟
نه؛ فقط روی اینکه دیگران چطور به شما برسند. خروجی را با Local Preference کنترل کنید.

با یک ISP هم کاربرد دارد؟
اگر دو لینک به یک ISP دارید، MED یا Community ابزار مناسب‌تری است.

منابع

مطالب مرتبط: BGP Route Reflector ، فیلتر BOGON در BGP و معرفی کتاب BGP4.

مشاوره با AKA NET

برای طراحی BGP Multihoming ، سیاست‌های ورودی و خروجی و مهندسی ترافیک با آکانت (AKA NET) تماس بگیرید.

تلفن: 09121308444  |  ایمیل: aka@aka.ir  |  aka.ir

یک دیدگاه دربارهٔ «آموزش پیاده سازی BGP AS Prepend روتر سیسکو»

  1. Mr.Yan

    how are you.
    this is Yan from Hongsun technology. we professional deal with cisco business more then 7years, and have many .customers in Iran we are look forward to cooperation with.you anyway, please keep touch , if need anything ,please feel free to contact us , We will provide competitive price to you.
    Skype:m5-ops2

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *