یک رویکرد ساخت یافته برای عیبیابی BGP، همانطور که در این بخش نشان داده خواهد شد، میتواند شما را از یک تشخیص اولیه مشکل به راه حل برساند.
در این مقاله، ما بر روی یک سناریوی ساده با یک مسیریاب تک زبان BGP در شبکه تمرکز میکنیم. طرحهای مشابه معمولاً توسط مشتریان و ISPهای کوچکی که اتصال BGP را به مشتریان خود ارائه نمیدهند، استفاده میشود.
شناسایی مشکل BGP
قبل از شروع عیبیابی BGP، باید منبع مشکل اتصالی را که در حال رفع آن هستید شناسایی کنید. معمولاً، اگر مشتری گزارش دهد که اتصال اینترنتیاش به شبکه شما محدود یا قطع شده، ممکن است BGP درگیر باشد. در اینجا مراحل سریع یافتن منبع مشکل آورده شده است:
- یک traceroute از یک ایستگاه کاری در LAN مشکلدار انجام دهید. اگر ردیابی به اولین مسیریابی که با زبان BGP صحبت میکند برسد یا حتی بهتر، اگر از حاشیه شبکه شما فراتر رود احتمالاً با یک مشکل BGP سروکار دارید.
- بررسی کنید که آیا مسیریاب با زبان BGP یک مسیر پیش فرض به شبکه شما را تبلیغ میکند یا خیر. بدون مسیر پیشفرض، مسیریابهای دیگر شبکه شما نمیتوانند به مقاصد اینترنتی برسند.
اگر به یک ایستگاه کاری متصل به LAN دسترسی ندارید، میتوانید ردیابی را از مسیریاب محل مشتری انجام دهید. مطمئن شوید که آدرس IP مبدا استفاده شده در بستههای traceroute، آدرس LAN مسیریاب است.
عیبیابی مشکلات مسیریاب BGP مجاور
BGP باید یک جلسه TCP بین مسیریابهای BGP مجاور ایجاد کند تا بتوانند مسیرها را مبادله کنند. بنابراین، اولین قدم، بررسی وضعیت جلسات BGP بین روترها است.
همسایههای BGP که به صورت دستی پیکربندی شدهاند ممکن است دارای این دو خطای پیکربندی باشند:
- عدم تطابق آدرس IP همسایه: آدرس IP مقصد پیکربندی شده در یکی از همسایگان BGP باید با آدرس IP مبدا یا آدرس IP رابط مستقیم متصل که روی دیگری پیکربندی شده، مطابقت داشته باشد.
- عدم تطابق عدد AS: عدد AS همسایه پیکربندی شده در یک طرف جلسه BGP باید با عدد AS واقعی استفاده شده توسط همسایه مطابقت داشته باشد.
همچنین ممکن است با فیلترهای بسته مستقر در مسیریاب BGP مشکل داشته باشید. این فیلترها باید به بستهها اجازه ورود و خروج از پورت TCP179 را بدهند.
عیبیابی انتشار مسیر BGP
اگر کاربران شما میخواهند از اینترنت ترافیک دریافت کنند، پیشوند IP اختصاص داده شده به شبکه شما باید در سراسر اینترنت قابل مشاهده باشد. برای رسیدن به آن، باید این سه مرحله را دنبال کنید:
- روتر BGP شما باید پیشوند IP شما را در جدول مسیریابی BGP خود وارد کند.
- پیشوند IP باید برای همسایگان BGP آن تبلیغ شود.
- پیشوند IP باید در سراسر اینترنت منتشر شود.
- آیا مسیر در BGP درج شده است؟
بیشتر پروتکلهای مسیریابی بهطور خودکار زیرشبکههای IP متصل مستقیم را در جداول مسیریابی یا پایگاههای داده خود وارد میکنند.
با توجه به الزامات امنیتی، BGP یک استثنا است. فقط در صورتی که به صورت دستی برای انجام این کار پیکربندی شده باشد، یک پیشوند IP ایجاد میکند. به عنوان مثال، مسیریابهای سیسکو از دستور شبکه برای پیکربندی پیشوندهای advertised IP استفاده میکنند.
گزینه دیگر توزیع مجدد مسیر است که شبکه را قادر میسازد تا ترافیک را از پروتکل دیگری هدایت کند. این امر در محیط اینترنت تقریبا غیرممکن است. علاوه بر این، برای جلوگیری از جذب ترافیک غیرقابل مسیریابی، BGP یک پیشوند IP پیکربندی شده را تنها در صورتی اعلام میکند که جدول مسیریابی IP دارای یک مسیر منطبق باشد.
میتوانید مسیر IP منطبق را از طریق خلاصهسازی مسیر ایجاد کنید، اما معمولاً بهتر است یک مسیر ثابت که به یک رابط null یا معادل آن اشاره میکند را پیکربندی کنید.
برای بررسی اینکه آیا پیشوند IP شما در جدول مسیریابی BGP شما قرار دارد یا خیر، از دستور BGP show استفاده کنید.
- آیا مسیر برای همسایگان شما تبلیغ میشود؟
به طور پیش فرض، تمام پیشوندهای IP موجود در جدول BGP به همه همسایگان اعلام میشود. با توجه به الزامات خطمشی امنیت و مسیریابی، رفتار پیش فرض معمولاً با مجموعهای از فیلترهای خروجی و ورودی اصلاح میشود.
اگر فیلترهای خروجی را روی همسایگان BGP خود اعمال کردهاید، باید بررسی کنید که آیا این فیلترها اجازه میدهند پیشوند IP شما به همسایگان خارجی منتشر شود یا خیر.
دستور نمایش مسیرهای تبلیغ شده به یک همسایه BGP در مسیریاب سیسکو: show ip bgp neighbor ip-address advertised.
- آیا مسیر در سراسر اینترنت قابل مشاهده است؟
حتی اگر با موفقیت پیشوند IP خود را به همسایگان BGP خود اعلام کرده باشید، باز هم ممکن است در سراسر اینترنت منتشر نشود. تشخیص اینکه دقیقاً چه چیزی فراتر از مرزهای شبکه شما منتشر میشود دشوار است. ابزارهایی که میتوانند به شما کمک کنند BGP looking glasses نامیده میشوند.
با استفاده از این ابزارها، میتوانید جداول BGP را در نقاط مختلف اینترنت بررسی کنید و ببینید آیا پیشوند IP شما به آن مقاصد رسیده است یا خیر.
چند عامل میتواند پیشوند IP شما را در اینترنت مسدود کند. متداولترین آنها، تعدیل flap مسیر BGP است: اگر یک پیشوند IP در مدت زمان کوتاهی flap یا ناپدید میشود و دوباره ظاهر میشود، پیشوند برای مدت طولانی مسدود میشود (به طور پیشفرض تا یک ساعت برای مثال، اگر جلسات BGP خود را پاک کنید یا پیکربندی خود را تغییر دهید، ممکن است این اتفاق بیفتد). اگر پیشوند IP شما آسیب دید، نمیتوانید کاری انجام دهید جز اینکه منتظر بمانید.
همچنین ممکن است یک ورودی نامعتبر یا گم شده در رجیستری مسیریابی IP داشته باشید، یا ISPهای بالادست ممکن است فیلترهای ورودی داشته باشند. در تمام این موارد، بهتر است ISP بالادستی در حل مشکل کمک کند زیرا این مرحله فراتر از محدوده عیبیابی فنی BGP است.
عیبیابی پیشرفته BGP
تا کنون، نحوه شناسایی مشکل مسیریابی BGP، نحوه عیب یابی جلسات BGP و نحوه عیب یابی ایجاد و انتشار مسیر IP را بررسی کردهایم. حال، اجازه دهید روی سناریوی پیشرفتهتری تمرکز کنیم: شبکههای ISP ترانزیتی
برای ایجاد اتصال end-to-end در یک شبکه ارائه دهنده خدمات، ISP باید پیشوندهای IP مشتریان را از طریق BGP دریافت و آنها را به سایر ISPها اعلام کند. همین فرآیند باید در جهت معکوس نیز اتفاق بیفتد یا حداقل، مسیر پیش فرض باید به مشتری اعلام شود.
عیب یابی BGP در سطح شبکه شامل سه مرحله است:
- دریافت پیشوند IP
- انتشار پیشوند IP در سراسر شبکه خود
- ارسال پیشوند IP به همسایگان خارجی BGP در حاشیه دیگر شبکه
- آیا پیشوند را دریافت کردهاید؟
عیب یابی مشکلات BGP ورودی سختترین بخش عیب یابی است که با آن مواجه خواهید شد. دو دلیل احتمالی که یک پیشوند IP در جدول BGP شما همانطور که انتظار دارید وجود ندارد این است که همسایه پیشوند را ارسال نمیکند یا فیلترهای ورودی شما پیشوند را مسدود میکنند.
تنها ابزاری که میتواند به شما در شناسایی مشکل کمک کند، تجهیزات اشکالزدایی در مسیریاب حاشیهتان است زیرا معمولاً به BGP همسایه دیگر دسترسی ندارید.
هنگام اشکال زدایی بدانید که یک همسایه BGP میتواند چند صد هزار مسیر را برای شما ارسال کند. باید اطمینان حاصل کنید که خروجی اشکال زدایی تولید شده توسط جلسه عیب یابی، مسیریاب را تحت تأثیر قرار نمیدهد.
علاوه بر این، پیشوندهای BGP تنها زمانی ارسال میشوند که تغییر کنند، و مانند بروزرسانیهای پروتکل اطلاعات مسیریابی یا سیلهای تبلیغاتی لینک وضعیت OSPF به صورت دورهای نیستند. بنابراین ابزار اشکال زدایی، پیشوند IP را تا زمانی که واقعاً تغییر نکرده باشد یا جلسه BGP را با همسایه خود پاک نکنید، به شما نشان نمیدهد.
برخی از مسیریابهای BGP این توانایی را دارند که یک کپی جداگانه از تمام مسیرهایی که همسایه ارسال میکند در یک جدول BGP موازی ذخیره کنند. برای فعال کردن این قابلیت در IOS سیسکو، باید soft-reconfiguration را برای یک همسایه BGP تنظیم کنید.
با جدول موازی هر همسایه، میتوانید دقیقاً آنچه را که همسایه ارسال کرده است و یا محتوای جدول موازی را مشخص کنید. همچنین میتوانید مسیرهایی را که از فیلترهای ورودی شما عبور کردهاند یا محتویات جدول اصلی BGP را مشاهده کنید. البته جدول موازی هر همسایه حجم زیادی از حافظه را مصرف میکند.
- آیا پیشوند IP در شبکه شما منتشر میشود؟
حتی زمانی که مسیریاب حاشیهای، پیشوند IP را از طریق BGP دریافت میکند، ممکن است به انتهای دیگر شبکه شما منتقل نشود.
برای شروع، BGP داخلی (مجددا BGP در یک سیستم مستقل) به یک شبکه کامل از جلسات BGP در بین همه مسیریابها نیاز دارد. هر مسیریاب بین هر جفت مسیریاب حاشیهای باید BGP را اجرا کند، در غیر این صورت ممکن است شبکه ترافیک را کاهش دهد در نتیجه تعداد جلسات BGP بسیار زیاد شود.
نمودار زیر جلسات BGP مورد نیاز در یک شبکه با چهار مسیریاب کوچک را نشان میدهد.
دو ابزار بازتاب دهندهی مسیر BGP و کنفدراسیونهای BGP میتوانند به شما کمک کنند تا تعداد جلسات را در حد معقولی نگه دارید، بازتاب دهندههای مسیر بیشتر مورد استفاده قرار میگیرند.
قوانین بازتابنده مسیر BGP بسیار ساده هستند:
-
- هر آنچه از یک کلاینت بازتاب دهنده مسیر یا متناظر BGP خارجی دریافت میشود، برای همتای دیگر ارسال میشود.
- هر آنچه از مسیریاب دریافت میشود که کلاینت بازتاب دهنده مسیر نیست، فقط برای مشتریان و همتایان BGP خارجی ارسال میشود.
با در دست داشتن این قوانین، زمان آن فرا رسیده است که از گراف جلسات BGP در شبکه خود عبور کنید، هر مسیریاب BGP را در طول مسیر بررسی کنید و مطمئن شوید که قوانین بازتاب دهنده مسیر را نقض نمیکنند. با استفاده از این قوانین، پیشوندهای BGP از هر مسیریاب حاشیهای به همه مسیریابهای دیگر میرسد.
یکی دیگر از دلایل رایج عدم انتشار پیشوند IP در شبکه این است که زیرشبکههای خارجی در حاشیه شبکه شما در مسیریابهای اصلی شما تبلیغ نمیشوند.
هنگامی که یک پیشوند IP به یک همسایه BGP داخلی ارسال میشود، آدرس IP مسیریاب بعدی تغییر نمیکند. بنابراین آدرس IP یک مسیر خارجی، همیشه آدرس IP یک مسیریاب فراتر از حاشیه سیستم مستقل شما است.
زیرشبکههای IP که مسیریابهای حاشیه شما را به همسایگان خارجی خود متصل میکنند، باید در پروتکل مسیریابی داخلی شما درج شوند. مثلا OSPF یا IS-IS.
در غیر این صورت، برخی از مسیریابهای داخلی BGP تصمیم خواهند گرفت که پرش بعدیBGP و پیشوند IP، در جدول BGP ظاهر میشوند، اما استفاده نمیشوند یا به سایر همتایان BGP منتشر نمیشوند.
- آیا پیشوند به همسایگان خارجی ارسال میشود؟
به عنوان آخرین مرحله در عیبیابی انتشار مسیر BGP، باید بررسی کنید که آیا پیشوندهای IP منتقل شده در سراسر شبکه شما به همتایان BGP خارجی شما اعلام شده است یا خیر. تکنیکهای عیبیابی انتشار مسیر BGP خروجی در این مقاله توضیح داده شده است.
- آیا ترافیک از شبکه عبور میکند؟
حتی اگر انتشار مسیر BGP شما بی عیب و نقص کار کند، بستههای IP ممکن است نتوانند از شبکه شما عبور کنند. به یاد داشته باشید، ما در اینجا در مورد شبکههای IP خالص صحبت میکنیم. اگر MPLS را به مجموعه فوق اضافه کنید، اوضاع تغییر میکند.
شایعترین علت سیاهچاله در شبکه شما وجود یک مسیریاب در مسیر ترانزیت است که BGP را اجرا نکرده و در نتیجه نمیداند چگونه بسته IP دریافتی را به سمت شبکه مقصد هدایت کند.
مسیریابی IP گام به گام کار میکند. حتی اگر مسیریاب حاشیه ورودی دقیقاً میداند از کدام مسیریاب حاشیه خروجی استفاده کند و چگونه به آنجا برسد، نمیتواند آن اطلاعات را به مسیریابهای میانی منتقل کند. بنابراین، همه آنها باید BGP را نیز اجرا کنند.
برای شناسایی سیاهچاله موجود در شبکه خود، یک ردیابی از شبکه مشتری خود به یک مقصد در اینترنت انجام دهید. آخرین مسیریابی که به ردیاب پاسخ میدهد پرش قبل از سیاهچاله است.
حتی اگر همه مسیریابهای اصلی شبکه باید BGP را اجرا کنند، جلسات BGP داخلی نیازی به پیروی از ساختار فیزیکی شبکه ندارند. به عنوان مثال، میتوانید چند مسیریاب مرکزی داشته باشید که به عنوان بازتاب دهنده مسیر برای همه مسیریابهای BGP در شبکه شما عمل میکنند.
منبع: www.techtarget.com