نحوه عملکرد BGP

امروز به پروتکل BGP نگاه خواهیم کرد. ما برای مدت طولانی در مورد چرایی آن و چرایی استفاده از آن به عنوان تنها پروتکل صحبت نخواهیم کرد. به عنوان مثال، اطلاعات بسیار زیادی در مورد این موضوع وجود دارد اینجا.

بنابراین BGP چیست؟ BGP یک پروتکل مسیریابی پویا است و تنها پروتکل EGP (پروتکل دروازه خارجی) است. این پروتکل برای ساخت مسیریابی در اینترنت استفاده می شود. بیایید ببینیم که چگونه یک محله بین دو روتر BGP ساخته شده است.

نحوه عملکرد BGP
همسایگی بین Router1 و Router3 را در نظر بگیرید. بیایید آنها را با استفاده از دستورات زیر پیکربندی کنیم:

router bgp 10
  network 192.168.12.0
  network 192.168.13.0
  neighbor 192.168.13.3 remote-as 10

router bgp 10
  network 192.168.13.0
  network 192.168.24.0
  neighbor 192.168.13.1 remote-as 10

همسایگی در یک سیستم خودمختار واحد AS 10 است. پس از وارد کردن اطلاعات روی یک روتر، مانند Router1، آن روتر سعی می کند یک رابطه مجاورت با Router3 ایجاد کند. حالت اولیه زمانی که هیچ اتفاقی نمی افتد نامیده می شود آرام. به محض اینکه bgp روی Router1 پیکربندی شود، شروع به گوش دادن به پورت TCP 179 می کند - به حالت تبدیل می شود. اتصالو هنگامی که سعی می کند جلسه ای را با Router3 باز کند، به حالت می رود فعال.

پس از برقراری جلسه بین Router1 و Router3، پیام های باز رد و بدل می شوند. هنگامی که این پیام توسط Router1 ارسال می شود، این حالت فراخوانی می شود ارسال را باز کنید. و هنگامی که یک پیام Open از Router3 دریافت می کند، به حالت می رود تأیید را باز کنید. بیایید نگاهی دقیق تر به پیام باز کنیم:

نحوه عملکرد BGP
این پیام اطلاعاتی را در مورد خود پروتکل BGP که روتر از آن استفاده می کند، می رساند. Router1 و Router3 با تبادل پیام های باز، اطلاعات مربوط به تنظیمات خود را به یکدیگر منتقل می کنند. پارامترهای زیر ارسال می شود:

  • نسخه: این شامل نسخه BGP است که روتر از آن استفاده می کند. نسخه فعلی BGP نسخه 4 است که در RFC 4271 توضیح داده شده است. دو روتر BGP سعی می کنند با یک نسخه سازگار مذاکره کنند، زمانی که عدم تطابق وجود داشته باشد، جلسه BGP وجود نخواهد داشت.
  • AS من: این شامل شماره AS روتر BGP است، روترها باید روی شماره(های) AS به توافق برسند و همچنین مشخص می کند که آیا آنها iBGP یا eBGP را اجرا خواهند کرد.
  • زمان را نگه دارید: اگر BGP هیچ پیام نگهدارنده یا به روز رسانی را از طرف دیگر برای مدت زمان نگهداری دریافت نکند، طرف مقابل را "مرده" اعلام می کند و جلسه BGP را از بین می برد. به طور پیش‌فرض زمان نگه‌داری روی روترهای سیسکو IOS روی 180 ثانیه تنظیم شده است، پیام keepalive هر 60 ثانیه ارسال می‌شود. هر دو روتر باید در مورد زمان انتظار توافق کنند وگرنه جلسه BGP وجود نخواهد داشت.
  • شناسه BGP: این شناسه روتر محلی BGP است که درست مانند OSPF انتخاب می شود:
    • از روتر-ID که به صورت دستی با دستور bgp router-id پیکربندی شده است استفاده کنید.
    • از بالاترین آدرس IP در رابط Loopback استفاده کنید.
    • از بالاترین آدرس IP در یک رابط فیزیکی استفاده کنید.
  • پارامترهای اختیاری: در اینجا برخی از قابلیت های اختیاری روتر BGP را خواهید دید. این قسمت اضافه شده است تا بدون نیاز به ایجاد نسخه جدید، ویژگی های جدید به BGP اضافه شود. مواردی که ممکن است در اینجا پیدا کنید عبارتند از:
    • پشتیبانی از MP-BGP (Multi Protocol BGP).
    • پشتیبانی از Route Refresh
    • پشتیبانی از اعداد AS 4-octet.

برای ایجاد محله باید شرایط زیر رعایت شود:

  • شماره نسخه. نسخه فعلی 4 است.
  • شماره AS باید با آنچه پیکربندی کرده اید مطابقت داشته باشد همسایه 192.168.13.3 remote-as 10.
  • شناسه روتر باید با همسایه متفاوت باشد.

اگر هر یک از پارامترها این شرایط را برآورده نکرد، روتر ارسال می کند اخطار پیامی که خطا را نشان می دهد. پس از ارسال و دریافت پیام های باز، رابطه همسایگی وارد حالت می شود ایجاد. پس از این، روترها می توانند اطلاعات مسیرها را مبادله کنند و این کار را با استفاده از آن انجام دهند بروزرسانی پیام ها. این پیام به روز رسانی ارسال شده توسط Router1 به Router3 است:

نحوه عملکرد BGP

در اینجا می‌توانید شبکه‌های گزارش‌شده با ویژگی‌های Router1 و Path را مشاهده کنید که مشابه معیارها هستند. در مورد ویژگی های Path با جزئیات بیشتر صحبت خواهیم کرد. پیام های Keepalive نیز در یک جلسه TCP ارسال می شوند. آنها به طور پیش فرض هر 60 ثانیه ارسال می شوند. این یک تایمر Keepalive است. اگر پیام Keepalive در طول تایمر نگه دارید دریافت نشود، این به معنای قطع ارتباط با همسایه خواهد بود. به طور پیش فرض برابر با 180 ثانیه است.

علامت مفید:

نحوه عملکرد BGP

به نظر می رسد که ما متوجه شده ایم که روترها چگونه اطلاعات را به یکدیگر منتقل می کنند، اکنون بیایید سعی کنیم منطق پروتکل BGP را درک کنیم.

برای تبلیغ مسیر به جدول BGP، مانند پروتکل های IGP، از دستور شبکه استفاده می شود، اما منطق عملیاتی متفاوت است. اگر در IGP، پس از تعیین مسیر در دستور شبکه، IGP نگاه کند که کدام اینترفیس ها متعلق به این زیر شبکه هستند و آنها را در جدول خود قرار دهد، سپس دستور شبکه در BGP به جدول مسیریابی نگاه می کند و به دنبال آن می گردد. دقیق مسیر را در دستور شبکه مطابقت می دهد. اگر چنین یافت شود، این مسیرها در جدول BGP ظاهر می شوند.

به دنبال مسیری در جدول مسیریابی IP فعلی روتر باشید که دقیقاً با پارامترهای دستور شبکه مطابقت داشته باشد. اگر مسیر IP وجود دارد، NLRI معادل را در جدول BGP محلی قرار دهید.

اکنون بیایید BGP را به همه موارد باقیمانده افزایش دهیم و ببینیم که چگونه مسیر در یک AS انتخاب می شود. پس از اینکه روتر BGP مسیرها را از همسایه خود دریافت کرد، شروع به انتخاب مسیر بهینه می کند. در اینجا شما باید درک کنید که چه نوع همسایه هایی می تواند وجود داشته باشد - داخلی و خارجی. آیا روتر با پیکربندی متوجه می شود که همسایه پیکربندی شده داخلی یا خارجی است؟ اگر در یک تیم:

neighbor 192.168.13.3 remote-as 10 

پارامتر remote-as AS را مشخص می کند که روی خود روتر در دستور bgp 10 روتر پیکربندی شده است. و برای هر کدام منطق متفاوتی از دریافت و ارسال کار می کند. این توپولوژی را در نظر بگیرید:

نحوه عملکرد BGP

هر روتر دارای یک رابط Loopback است که با IP پیکربندی شده است: xxxx 255.255.255.0 - که در آن x شماره روتر است. در Router9 ما یک رابط Loopback با آدرس - 9.9.9.9 255.255.255.0 داریم. ما آن را از طریق BGP اعلام خواهیم کرد و خواهیم دید که چگونه گسترش می یابد. این مسیر به Router8 و Router12 منتقل می شود. از Router8، این مسیر به Router6 می رود، اما به Router5 در جدول مسیریابی نخواهد بود. همچنین در Router12 این مسیر در جدول ظاهر می شود، اما در Router11 نیز وجود نخواهد داشت. بیایید سعی کنیم این را بفهمیم. بیایید در نظر بگیریم که Router9 چه داده ها و پارامترهایی را به همسایگان خود منتقل می کند و این مسیر را گزارش می کند. بسته زیر از Router9 به Router8 ارسال می شود.

نحوه عملکرد BGP
اطلاعات مسیر شامل ویژگی های مسیر است.

ویژگی های مسیر به 4 دسته تقسیم می شوند:

  1. اجباری معروف - همه روترهایی که BGP را اجرا می کنند باید این ویژگی ها را بشناسند. باید در همه به روز رسانی ها وجود داشته باشد.
  2. مختار معروف - همه روترهایی که BGP را اجرا می کنند باید این ویژگی ها را بشناسند. ممکن است در به روز رسانی ها حضور داشته باشند، اما حضور آنها الزامی نیست.
  3. انتقالی اختیاری - ممکن است توسط همه پیاده سازی های BGP شناسایی نشود. اگر روتر مشخصه را نشناسد، به‌روزرسانی را به‌عنوان جزئی علامت‌گذاری می‌کند و آن را به همسایگان خود ارسال می‌کند و ویژگی ناشناخته را ذخیره می‌کند.
  4. اختیاری غیر گذرا - ممکن است توسط همه پیاده سازی های BGP شناسایی نشود. اگر روتر مشخصه را تشخیص ندهد، آن خصیصه نادیده گرفته می شود و زمانی که به همسایگان منتقل می شود کنار گذاشته می شود.

نمونه هایی از ویژگی های BGP:

  • اجباری معروف:
    • مسیر سیستم خودمختار
    • بعدی پرش
    • منشاء

  • مختار معروف:
    • ترجیح محلی
    • سنگدانه اتمی
  • انتقالی اختیاری:
    • جمع کننده
    • جوامع
  • اختیاری غیر گذرا:
    • تفکیک کننده چند خروجی (MED)
    • شناسه مبدأ
    • لیست خوشه ای

در این مورد، در حال حاضر ما به Origin، Next-hop، AS Path علاقه مند خواهیم بود. از آنجایی که مسیر بین Router8 و Router9 یعنی در یک AS ارسال می شود، داخلی در نظر گرفته می شود و به Origin توجه خواهیم کرد.

ویژگی Origin - نشان می دهد که مسیر در به روز رسانی چگونه به دست آمده است. مقادیر ویژگی ممکن:

  • 0 - IGP: NLRI در سیستم خودمختار اصلی دریافت شده است.
  • 1 - EGP: NLRI با استفاده از پروتکل دروازه خارجی (EGP) آموخته می شود. سلف BGP، استفاده نشده است
  • 2- ناقص: NLRI به روش دیگری آموخته شد

در مورد ما، همانطور که از بسته مشخص است، برابر با 0 است. هنگامی که این مسیر به Router12 منتقل می شود، این کد دارای کد 1 خواهد بود.

بعدی، بعدی هاپ. ویژگی بعدی پرش

  • این آدرس IP روتر eBGP است که مسیر شبکه مقصد از طریق آن می رود.
  • هنگامی که پیشوند به AS دیگری ارسال می شود، ویژگی تغییر می کند.

در مورد iBGP، یعنی در یک AS، Next-hop با کسی که این مسیر را یاد گرفته یا گفته است نشان داده می شود. در مورد ما، 192.168.89.9 خواهد بود. اما زمانی که این مسیر از Router8 به Router6 منتقل می شود، Router8 آن را تغییر داده و مسیر خود را جایگزین می کند. بعدی هاپ 192.168.68.8 خواهد بود. این ما را به دو قانون هدایت می کند:

  1. اگر روتر یک مسیر را به همسایه داخلی خود ارسال کند، پارامتر Next-hop را تغییر نمی دهد.
  2. اگر روتر مسیری را به همسایه خارجی خود ارسال کند، Next-hop را به IP رابطی که این روتر از آن ارسال می کند، تغییر می دهد.

این ما را به درک اولین مشکل سوق می دهد - چرا هیچ مسیری در جدول مسیریابی در Router5 و Router11 وجود نخواهد داشت. بیایید نگاه دقیق تری بیندازیم. بنابراین، Router6 اطلاعاتی در مورد مسیر 9.9.9.0/24 دریافت کرد و با موفقیت آن را به جدول مسیریابی اضافه کرد:

Router6#show ip route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      9.0.0.0/24 is subnetted, 1 subnets
B        9.9.9.0 [20/0] via 192.168.68.8, 00:38:25<source>
Теперь Router6 передал маршрут Router5 и первому правилу Next-hop не изменил. То есть, Router5 должен добавить  <b>9.9.9.0 [20/0] via 192.168.68.8</b> , но у него нет маршрута до 192.168.68.8 и поэтому данный маршрут добавлен не будет, хотя информация о данном маршруте будет храниться в таблице BGP:

<source><b>Router5#show ip bgp
BGP table version is 1, local router ID is 5.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 * i 9.9.9.0/24       192.168.68.8             0    100      0 45 i</b>

همین وضعیت بین Router11-Router12 اتفاق خواهد افتاد. برای جلوگیری از این وضعیت، باید Router6 یا Router12 را هنگام عبور مسیر به همسایگان داخلی خود پیکربندی کنید تا آدرس IP خود را به عنوان Next-hop جایگزین کنند. این با استفاده از دستور انجام می شود:

neighbor 192.168.56.5 next-hop-self

پس از این دستور، Router6 یک پیغام Update ارسال می کند که در آن ip رابط Gi0/0 Router6 به عنوان Next-hop برای مسیرها - 192.168.56.6 مشخص می شود و پس از آن این مسیر قبلاً در جدول مسیریابی قرار می گیرد.

بیایید جلوتر برویم و ببینیم که آیا این مسیر در Router7 و Router10 ظاهر می شود یا خیر. در جدول مسیریابی وجود نخواهد داشت و ممکن است فکر کنیم که مشکل مشابه پارامتر Next-hop در مورد اول است، اما اگر به خروجی دستور show ip bgp نگاه کنیم، خواهیم دید که مسیر حتی با Next-hop اشتباه در آنجا دریافت نشد، یعنی مسیر حتی مخابره نشد. و این ما را به وجود قاعده دیگری می رساند:

مسیرهای دریافتی از همسایگان داخلی به سایر همسایگان داخلی منتقل نمی شوند.

از آنجایی که Router5 مسیر را از Router6 دریافت کرده است، به دیگر همسایه داخلی خود منتقل نخواهد شد. برای اینکه انتقال انجام شود، باید تابع را پیکربندی کنید بازتابنده مسیر، یا روابط همسایگی کاملاً متصل را پیکربندی کنید (Full Mesh)، یعنی Router5-7 همه همسایه همه خواهند بود. در این مورد از Route Reflector استفاده می کنیم. در Router5 باید از این دستور استفاده کنید:

neighbor 192.168.57.7 route-reflector-client

Route-Reflector رفتار BGP را هنگام عبور از یک مسیر به یک همسایه داخلی تغییر می دهد. اگر همسایه داخلی به صورت مشخص شده باشد route-reflector-client، سپس مسیرهای داخلی برای این مشتریان تبلیغ می شود.

مسیر در Router7 ظاهر نشد؟ نکست هاپ را هم فراموش نکنید. پس از این دستکاری ها، مسیر نیز باید به Router7 برود، اما این اتفاق نمی افتد. این ما را به یک قانون دیگر می رساند:

قانون hop بعدی فقط برای مسیرهای خارجی کار می کند. برای مسیرهای داخلی، ویژگی next-hop جایگزین نمی شود.

و ما وضعیتی را دریافت می کنیم که در آن لازم است محیطی با استفاده از مسیریابی استاتیک یا پروتکل های IGP ایجاد کنیم تا مسیریاب ها را در مورد تمام مسیرهای داخل AS مطلع کنیم. اجازه دهید مسیرهای استاتیک را روی Router6 و Router7 ثبت کنیم و پس از آن مسیر مورد نظر را در جدول روتر به دست خواهیم آورد. در AS 678، ما این کار را کمی متفاوت انجام خواهیم داد - مسیرهای ثابت را برای 192.168.112.0/24 در Router10 و 192.168.110.0/24 در Router12 ثبت می کنیم. در مرحله بعد، رابطه همسایگی بین Router10 و Router12 را برقرار خواهیم کرد. ما همچنین Router12 را به گونه ای پیکربندی می کنیم که hop بعدی خود را به Router10 ارسال کند:

neighbor 192.168.110.10 next-hop-self

نتیجه این خواهد بود که Router10 مسیر 9.9.9.0/24 را دریافت می کند، از هر دو Router7 و Router12 دریافت می شود. بیایید ببینیم Router10 چه انتخابی دارد:

Router10#show ip bgp
BGP table version is 3, local router ID is 6.6.6.6
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network              Next Hop            Metric LocPrf Weight Path
 *>i 9.9.9.0/24       192.168.112.12           0    100       0      45 i

                               192.168.107.7                                0     123 45 i  

همانطور که می بینیم، دو مسیر و یک فلش (>) به این معنی است که مسیر از طریق 192.168.112.12 انتخاب شده است.
بیایید ببینیم فرآیند انتخاب مسیر چگونه کار می کند:

  1. اولین قدم هنگام دریافت مسیر، بررسی در دسترس بودن Next-hop آن است. به همین دلیل است که وقتی مسیری را در Router5 بدون تنظیم Next-hop-self دریافت کردیم، این مسیر بیشتر پردازش نشد.
  2. بعد پارامتر Weight می آید. این پارامتر یک ویژگی مسیر (PA) نیست و در پیام های BGP ارسال نمی شود. این به صورت محلی در هر روتر پیکربندی شده است و فقط برای دستکاری انتخاب مسیر در خود روتر استفاده می شود. بیایید به یک مثال نگاه کنیم. درست در بالا می بینید که Router10 مسیری را برای 9.9.9.0/24 از طریق Router12 (192.168.112.12) انتخاب کرده است. برای تغییر پارامتر Wieght، می‌توانید از route-map برای تعیین مسیرهای خاص استفاده کنید یا با استفاده از دستور، وزنی را به همسایه آن اختصاص دهید:
     neighbor 192.168.107.7 weight 200       

    حالا تمام مسیرهای این همسایه این وزن را خواهند داشت. بیایید ببینیم که چگونه انتخاب مسیر پس از این دستکاری تغییر می کند:

    Router10#show bgp
    *Mar  2 11:58:13.956: %SYS-5-CONFIG_I: Configured from console by console
    BGP table version is 2, local router ID is 6.6.6.6
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight      Path
     *>  9.9.9.0/24       192.168.107.7                        200      123 45 i
     * i                          192.168.112.12           0          100      0 45 i

    همانطور که می بینید، مسیر از طریق Router7 در حال حاضر انتخاب شده است، اما این هیچ تاثیری بر روترهای دیگر نخواهد داشت.

  3. در جایگاه سوم ما Local Preference را داریم. این پارامتر یک ویژگی اختیاری شناخته شده است، به این معنی که وجود آن اختیاری است. این پارامتر فقط در یک AS معتبر است و بر انتخاب مسیر فقط برای همسایگان داخلی تأثیر می گذارد. به همین دلیل است که فقط در پیام های Update که برای همسایه داخلی در نظر گرفته شده است منتقل می شود. در پیام‌های به‌روزرسانی برای همسایگان خارجی وجود ندارد. بنابراین، به عنوان شناخته شده اختیاری طبقه بندی شد. بیایید سعی کنیم آن را در Router5 اعمال کنیم. در Router5 باید دو مسیر برای 9.9.9.0/24 داشته باشیم - یکی از طریق Router6 و دومی از طریق Router7.

    ما نگاه می کنیم:

    Router5#show bgp
    BGP table version is 2, local router ID is 5.5.5.5
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight Path
     *>i 9.9.9.0/24       192.168.56.6             0    100      0 45 i

    اما همانطور که یک مسیر را از طریق Router6 می بینیم. مسیر از طریق Router7 کجاست؟ شاید Router7 هم آن را نداشته باشد؟ بیایید نگاه بیندازیم:

    Router#show bgp
    BGP table version is 10, local router ID is 7.7.7.7
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network                Next Hop            Metric LocPrf  Weight    Path
     *>i 9.9.9.0/24       192.168.56.6             0     100           0      45 i
    
                                  192.168.107.10                                  0     678 45 i 

    عجیب است، به نظر می رسد همه چیز خوب است. چرا به Router5 منتقل نمی شود؟ مسئله این است که BGP یک قانون دارد:

    روتر تنها مسیرهایی را که از آنها استفاده می کند، منتقل می کند.

    Router7 از مسیری از طریق Router5 استفاده می کند، بنابراین مسیر از طریق Router10 منتقل نمی شود. بیایید به تنظیمات محلی برگردیم. بیایید Local Preference را روی Router7 تنظیم کنیم و ببینیم Router5 چگونه به این موضوع واکنش نشان می دهد:

    route-map BGP permit 10
     match ip address 10
     set local-preference 250
    access-list 10 permit any
    router bgp 123
     neighbor 192.168.107.10 route-map BGP in</b>

    بنابراین، ما یک نقشه مسیر ایجاد کردیم که شامل تمام مسیرها است و به Router7 گفتیم که هنگام دریافت پارامتر Local Preference را به 250 تغییر دهد، پیش‌فرض 100 است. بیایید ببینیم در Router5 چه اتفاقی افتاده است:

    Router5#show bgp
    BGP table version is 8, local router ID is 5.5.5.5
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight        Path
     *>i 9.9.9.0/24       192.168.57.7             0          250      0 678 45 i

    همانطور که اکنون می بینیم Router5 مسیر از طریق Router7 را ترجیح می دهد. همین تصویر در Router6 خواهد بود، اگرچه انتخاب مسیر از طریق Router8 برای او سود بیشتری دارد. همچنین اضافه می کنیم که تغییر این پارامتر نیاز به راه اندازی مجدد محله برای اعمال تغییر دارد. خواندن اینجا. ما اولویت محلی را مرتب کردیم. بیایید به پارامتر بعدی برویم.

  4. مسیری را با پارامتر Next-hop 0.0.0.0 ترجیح دهید، یعنی مسیرهای محلی یا انبوه. به این مسیرها پس از وارد کردن فرمان شبکه، به طور خودکار یک پارامتر Weight برابر با حداکثر 32678 اختصاص داده می شود:
    Router#show bgp
    BGP table version is 2, local router ID is 9.9.9.9
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight    Path
     *>  9.9.9.0/24       0.0.0.0                  0            32768    i
  5. کوتاه ترین مسیر از طریق AS. کوتاه ترین پارامتر AS_Path انتخاب شده است. هر چه یک مسیر AS کمتری را طی کند، بهتر است. مسیر 9.9.9.0/24 را در Router10 در نظر بگیرید:
    Router10#show bgp
    BGP table version is 2, local router ID is 6.6.6.6
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight Path
     *   9.9.9.0/24     192.168.107.7                           0           123 45 i
     *>i                     192.168.112.12           0    100       0       45 i

    همانطور که می بینید، Router10 مسیر را از طریق 192.168.112.12 انتخاب کرد زیرا برای این مسیر پارامتر AS_Path فقط شامل 45 و در مورد دیگر 123 و 45 است. به طور مستقیم واضح است.

  6. پارامتر بعدی Origin است. IGP (مسیری که با استفاده از BGP به دست می آید) بهتر از EGP است (مسیری که با استفاده از سلف BGP به دست می آید، دیگر استفاده نمی شود)، و EGP بهتر از ناکامل است؟ (با روش دیگری، به عنوان مثال با توزیع مجدد به دست می آید).
  7. پارامتر بعدی MED است. ما Wieght داشتیم که فقط به صورت محلی روی روتر کار می کرد. Local Preference وجود داشت که فقط در یک سیستم خودمختار کار می کرد. همانطور که ممکن است حدس بزنید، MED پارامتری است که بین سیستم های مستقل منتقل می شود. خیلی خوب مقاله در مورد این پارامتر

هیچ ویژگی دیگری استفاده نخواهد شد، اما اگر دو مسیر دارای ویژگی های یکسان باشند، از قوانین زیر استفاده می شود:

  1. مسیر را از طریق نزدیکترین همسایه IGP انتخاب کنید.
  2. قدیمی ترین مسیر را برای مسیر eBGP انتخاب کنید.
  3. مسیر را از طریق همسایه با کوچکترین شناسه روتر BGP انتخاب کنید.
  4. مسیری را از طریق همسایه با کمترین آدرس IP انتخاب کنید.

حال بیایید به موضوع همگرایی BGP نگاه کنیم.

بیایید ببینیم اگر Router6 مسیر 9.9.9.0/24 را از طریق Router9 از دست بدهد، چه اتفاقی می‌افتد. بیایید رابط Gi0/1 روتر6 را غیرفعال کنیم، که بلافاصله متوجه می شود که جلسه BGP با Router8 خاتمه یافته و همسایه ناپدید شده است، به این معنی که مسیر دریافت شده از آن معتبر نیست. Router6 فوراً پیام‌های Update را ارسال می‌کند، جایی که شبکه 9.9.9.0/24 را در قسمت Drawn Routes نشان می‌دهد. به محض اینکه Router5 چنین پیامی را دریافت کرد، آن را برای Router7 ارسال می کند. اما از آنجایی که Router7 یک مسیر از طریق Router10 دارد، بلافاصله با یک به روز رسانی با یک مسیر جدید پاسخ می دهد. اگر تشخیص سقوط همسایه بر اساس وضعیت رابط امکان پذیر نباشد، باید منتظر بمانید تا تایمر نگهدارنده فعال شود.

کنفدراسیون.

اگر به خاطر داشته باشید، ما در مورد این واقعیت صحبت کردیم که اغلب باید از یک توپولوژی کاملاً متصل استفاده کنید. با تعداد زیادی روتر در یک AS این می تواند مشکلات بزرگی ایجاد کند، برای جلوگیری از این امر باید از کنفدراسیون ها استفاده کنید. یک AS به چندین زیر AS تقسیم می شود که به آنها اجازه می دهد بدون نیاز به توپولوژی کاملاً متصل کار کنند.

نحوه عملکرد BGP

در اینجا یک لینک به این است لابوو اینجا پیکربندی برای GNS3.

به عنوان مثال، با این توپولوژی ما باید تمام روترهای AS 2345 را به یکدیگر متصل کنیم، اما با استفاده از Confederation، می‌توانیم روابط مجاورتی را فقط بین روترهایی که مستقیماً به یکدیگر متصل هستند برقرار کنیم. بیایید در این مورد با جزئیات صحبت کنیم. اگر فقط AS 2345 داشتیم، پس laForge دریافت راهپیمایی از پیکارد آن را به روترها می گوید داده ها и کار، اما آنها به روتر در مورد آن چیزی نگفتند له کننده . همچنین مسیرهای توزیع شده توسط خود روتر laForge، منتقل نمی شد له کننده و یا کار-وای نه داده ها.

شما باید یک Route-Reflector یا یک رابطه همسایگی کاملاً متصل را پیکربندی کنید. با تقسیم یک AS 2345 به 4 زیر AS (2,3,4,5،XNUMX،XNUMX،XNUMX) برای هر روتر، در نهایت با منطق عملیاتی متفاوتی مواجه می شویم. همه چیز کاملاً توصیف شده است اینجا.

منابع:

  1. CCIE Routing and Switching v5.0 Official Cert Guide, Volume 2, Fifth Edition, Narbik Kocharians, Terry Vinson.
  2. محل xgu.ru
  3. محل GNS3Vault.

منبع: www.habr.com

اضافه کردن نظر