چطور یک اشتباه گوگل را از دسترس خارج کرد؟

12 نوامبر 2018، مصادف با 21 آبان 97، گوگل به مدت حدود 74 دقیقه در بسیاری از نقاط جهان از دسترس خارج شد.

 چطور یک اشتباه گوگل را از دسترس خارج کرد؟

12 نوامبر 2018، مصادف با 21 آبان 97، گوگل به مدت حدود 74 دقیقه در بسیاری از نقاط جهان از دسترس خارج شد. ممکن است تصور شود این اقدامی خراب‌کارانه بوده است، اما آن گونه که کمپانی Cloudflare در یک پست وبلاگی توضیح می‌دهد، این امر ناشی از یک خطای پیکربندی در یک ISP نیجریه‌ای بوده است.

 

مسیریابی در اینترنت

ارتباط بین نقاط مختلف اینترنت از طریق شبکه‌ای از ISP‌ها برقرار می‌شود. در بالاترین سطح (سطح یک، Tier 1) ISPهای بزرگی وجود دارند که ارتباطات بین کشوری و بین قاره‌ای را برقرار می‌کنند. در سطح بعد ISPهای کوچکتری قرار دارند و در سطح بعد ISPهایی که مستقیما به مشترکین متصل هستند.

وقتی بسته‌ای قرار است از مبدا به مقصد برسد، باید مسیر (Route)ی بین ISPها را طی کند که انتظار می‌رود این مسیر، مسیر سریعی باشد. هر ISP جدول مسیر‌یابی‌ای دارد که طبق آن تصمیم می‌گیرد هر بسته که دریافت می‌کند را به کدام یک از خروجی‌های خود (ISP بعدی) بفرستد. هر ISP به طور دوره‌ای این اطلاعات را با ISPهای مجاور مبادله می‌کند و با دریافت اطلاعات جدید، جدول خود را به‌روز می‌کند. پروتکلی که برای این کار استفاده می‌شود BGP نام دارد.

هر ISP و شبکه موجود در اینترنت دارای یک شناسه یکتا به نام شماره سیستم خودمختار (Autonomous System, AS number) است. برای مثال، شماره AS گوگل برابر است با 15169.

 

گوگل به طور مستقیم به اکثر ISP‌های سطح یک جهان متصل است. در حالت عادی انتظار می‌رود برای مثال، مشتریان Cogent ISP برای ارتباط با گوگل ابتدا از TATA ISP (ISP سطح یک) عبور کنند و سپس به گوگل برسند.

 

اشتباه کوچک اما تاثیرگذار

در رویدادی که اتفاق افتاد، یک ISP نیجریه‌ای به نام MainOne قوانین مسیریابی خود را اشتباها پیکربندی کرده بود. این ISP، به CN2 ISP در چین متصل بود و اطلاعات مسیریابی خود را با این ISP مبادله می‌کرد. به زبان ساده پیامی که MainOne به CN2 فرستاد، بدین شکل بود: ”اگر خواستی بسته‌ای را به گوگل بفرستی، می‌توانی آن را به من بسپاری“. بنابراین، وقتی بسته‌ای با مقصد گوگل به CN2 می‌رسید، CN2 آن را به MainOne می‌فرستاد و MainOne آن را به گوگل ارسال می‌کرد.

 

از سویی CN2 نیز به TransTelecom، ISP روس متصل بوده و اطلاعات مسیریابی خود را با آن مبادله می‌کرد. در نتیجه TransTelecom بسته‌های با مقصد گوگل را به CN2 می‌فرستاد، CN2 آن‌ها را به MainOne واگذار می‌کرد و در نهایت MainOne آن‌ها را به گوگل تحویل می‌داد. در نتیجه بخش بزرگی از ترافیک جهانی گوگل باید از MainOne عبور می‌کرد که باعث ازدحام زیاد ترافیک و حذف شدن بسته‌ها می‌شد. به پدیده انتقال بسته‌ها از مسیرهای غیرمعمول “نشت مسیر” (route leak) گفته می‌شود.

قاعدتاً CN2 باید قوانینی می‌داشت که وقتی MainOne درباره مسیردهی به گوگل اطلاعاتی می‌فرستاد، آن را نپذیرد (در واقع MainOne را حائز صلاحیت برای اعلام نظر درباره مسیردهی به گوگل نمی‌دانست)، اما چنین قانونی وجود نداشت و CN2 به MainOne و سپس TransTelecom به CN2 اعتماد کردند.

 

 

منبع

 

کلمات کلیدی