BGP پیشوند را یاد گرفت، اما ترافیک هنوز تونل را دور میزند
یک پیشوند در جدول BGP خبری از لایه کنترل است، نه تصمیم ارسال. پیش از متهم کردن تونل، دریافت، انتخاب، نصب و تطبیق را بررسی کنید.
دروازه شعبه پیشوند ابر را در جدول BGP خود نشان میدهد، نشست با ارائهدهنده برقرار است، و با این حال درخواست کاربر به آن پیشوند همچنان از رابط اشتباه خارج میشود. هیچ چیز به آن شکلی که پایش پیشنهاد میکند خراب نیست، زیرا «BGP آن را یاد گرفت» جملهای درباره لایه کنترل است. میان آن جدول و بسته چهار گذار جداگانه وجود دارد و جریان دقیقاً در یکی از آنها متوقف میشود. دروازهها را به ترتیب بگذرانید و در اولین دروازهای که شکست میخورد بایستید.
دروازه اول: همسایه واقعاً چه فرستاد
با پیشوند به همان شکلی که دریافت شده آغاز کنید، نه خلاصهشده. شبکه و ماسک دقیق را در جدول BGP جستجو کنید و گام بعدی، مسیر AS و هر جامعهای را که یک سیاست ورودی ممکن است با آن تطبیق دهد ثبت کنید. یک مسیر خلاصه در داشبورد میتواند این واقعیت را پنهان کند که پیشوند مشخص هرگز پذیرفته نشده است.
سیاست ورودی معمولترین جایی است که یک مسیر بدون خطا ناپدید میشود. فهرست پیشوند، فیلتر جامعه یا نقشه مسیر ورودی میتواند بهروزرسانی را دور بیندازد در حالی که نشست بالا و سالم میماند، و به همین دلیل چراغ سبز همسایه چیز بسیار کمی اثبات میکند. نبود یک خط گزارش به معنای نبود تصمیم نیست. معمولاً یعنی تصمیم بیصدا گرفته شده، دقیقاً همانطور که پیکربندی شده است.
show ip bgp 10.60.20.0/24 show ip bgp neighbors 203.0.113.5 advertised-routes show ip route 10.60.20.0 show ip cef 10.60.20.0
خروجی را به همین ترتیب بخوانید. دو فرمان نخست میگویند آیا اطلاعات رسید و همتا چه میگوید فرستاده است؛ دو فرمان آخر میگویند آیا چیزی به جدولهای مسیریابی و ارسال رسیده است. پیشوندی که در فرمان اول هست و در فرمان سوم نیست، مشکلی در انتخاب یا نصب است، نه مشکل اتصال.
دروازه دوم: انتخاب، سپس نصب
BGP بهترین مسیر را انتخاب میکند و مسیر انتخابشده بهطور خودکار نصب نمیشود. گام بعدی باید تفکیک شود، و ممکن است منبع مسیر دیگری از قبل با فاصله مدیریتی بهتر مالک آن پیشوند باشد. یک مسیر ایستا که از مهاجرت باقی مانده بهراحتی بر مسیر معتبر BGP پیروز میشود و ترافیک را جای دیگری میفرستد.
RFC 4271 سه ایده را جدا نگه میدارد: همتا چه فرستاد، این گوینده چه چیزی را بهترین انتخاب کرد، و چه چیزی را به بعد اعلام خواهد کرد. اینها نقشهای مفهومیاند نه سه پایگاه داده فیزیکی که فروشنده موظف به نمایش آن باشد، اما همین تفکیک است که «در BGP است» را پاسخی ناقص میکند.
همچنین بررسی کنید کدام بافت مسیریابی را میخوانید. مسیری که در یک VRF نصب شده و رابط کاربر به آن تعلق ندارد برای بستههای آن کاربر نامرئی است، در حالی که جدول تمام مدت درست به نظر میرسد.
دروازه سوم: جستجویی که بر این جریان اعمال میشود
اکنون پرسیدن درباره مسیر را متوقف کنید و پرسیدن درباره بسته را آغاز کنید. آدرس مبدأ کاربر، مقصد، پروتکل، پورت و رابط ورودی را ثبت کنید، زیرا هر یک از آنها میتواند سیاست متفاوتی را انتخاب کند. سپس به جای جدول مسیریابی عمومی، به جستجویی نگاه کنید که بر آن ترکیب اعمال میشود.
ip route get 10.60.20.25 from 10.60.10.40 ip rule show sudo tcpdump -ni tun0 'host 10.60.20.25'
پیشوند دقیقتر رایجترین غافلگیری اینجاست و مسیر سیاستی دومی است. هر دو بر تجمیعی که به آن نگاه میکردید چیره میشوند و هیچکدام در خلاصه جدول BGP دیده نمیشود.
پینگی که از خود دروازه فرستاده میشود شاهدی درباره نشست کاربر نیست. آدرس مبدأ متفاوت، مسیر سیاستی متفاوت و اغلب نتیجهای متفاوت. با همان مبدأیی آزمایش کنید که برنامه استفاده میکند، یا بپذیرید که آزمون به پرسش دیگری پاسخ میدهد.
دروازه چهارم: نیمه دور مسیر
اگر جستجوی محلی واقعاً تونل را انتخاب کند، بسته باید همچنان توسط سیاست حفاظت پذیرفته شود، با قاعده ارسال مجاز شود و چیزی در طرف دور به آن پاسخ دهد. یک ACL رمزنگاری که جفت آدرس را شامل نمیشود ترافیک را میاندازد در حالی که تونل خود را بالا گزارش میکند، و این یک وقفه زمانی میسازد که از شکست مسیریابی قابل تشخیص نیست.
مسیر بازگشت به اندازه مسیر خروج مهم است. طرف ابر باید بداند چگونه به مبدأ شعبه برسد، یا از طریق یک مسیر یا از طریق ترجمهای که عمداً پیکربندی کردهاید. مسیرهای بازگشت نامتقارن در طراحیهایی رایجاند که فقط از یک جهت آزمایش شدهاند.
یک اتصال مجاز تازه را با سه مشاهده همبسته کنید: سیاست محلی که تطبیق داد، شمارندههای تونل که حرکت کردند، و دریافت در طرف دور جایی که قابل مشاهده است. اگر شمارندهها حرکت نکنند، بسته هرگز وارد تونل نشده، هر چه جدول مسیر بگوید. اگر حرکت کنند و چیزی نرسد، طرف دور آن را میاندازد یا اشتباه مسیریابی میکند. این دو نتیجه به تیمهای کاملاً متفاوتی میرسند.
گذار شکستخورده را نامگذاری کنید
نتیجه را بهصورت یکی از پنج حالت بنویسید: دریافت نشد، سیاست آن را نپذیرفت، انتخاب نشد، نصب نشد، یا این جریان با آن تطبیق نکرد. یک حالت ششم برای وقتی بیفزایید که مسیر محلی درست است و طرف دور نمیتواند پاسخ دهد. همان جمله تحویلشدنی است و بسیار سودمندتر از تصویر صفحه یک همسایه برقرار است.
یک آزمون منفی هم در برنامه پذیرش نگه دارید: مقصدی که نباید از تونل عبور کند، پس از تغییر بررسی شود. فهرست کنترلی که فقط مسیر خوشبینانه را اثبات میکند قاعده سیاست گستردهای را که کسی در پنجره نگهداری بعدی اضافه میکند نمیگیرد.