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

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
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