فیسبوک: جزییات بیشتر در مورد قطعی ۴ اکتبر (فیسبوک، اینستاگرام، واتساپ…)

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

این قطعی توسط سیستم شبکه‌ی موسوم به ستون فقرات(بک‌بون) شبکه‌ی جهانی ما ایجاد شد. بک‌بون برای اتصال تمام ظرفیت‌های شبکه‌ی جهانی ما به هم ساخته شده است که شامل ده‌ها هزار کیلومتر فیبر نوری است که دیتاسنترهای ما را به هم متصل می‌نماید.

برخی از دیتاسنترها شامل میلیونها دستگاه ذخیره سازی و پردازشی‌اند و بسیار بزرگ هستند و برخی دیگر کوچکترند که سایر ظرفیت‌های شبکه‌ی ما را به اینترنت جهانی و کاربران متصل می‌کنند.

زمانیکه یکی از اپلیکیشن‌های ما را باز میکنید تا یک پیام را بخوانید یا یک فید را ببینید ابتدا یک درخواست از دستگاه شما به نزدیک‌ترین نقطه‌ی اتصال با شبکه‌ی ما انجام میشود. سپس مستقیماً به واسطه‌ی شبکه بک‌بون با یک مرکز داده بزرگتر ارتباط برقرار می کند. در آنجاست که اطلاعات مورد نیاز برنامه شما بازیابی و پردازش می شود و از طریق شبکه به دستگاه شما پاسخ داده می شود.

ترافیک داده‌ها ما بین تمام مراکز داده‌ی ما توسط (مسیریاب‌ها)روترها مدیریت می شود که تعیین می کنند که داده‌های ورودی و خروجی را به کجا ارسال کنند. و در کارهای بسیار بزرگ روزانه برای حفظ و نگهداری این زیرساخت، مهندسان ما باید بخشی از شبکه را برای تعمیر و نگهداری از دسترس خارج کنند مثلا شاید برای تعمیر یک خط فیبر نوی، اضافه کردن ظرفیت بیشتر به شبکه یا به روز رسانی نرم افزار روی روترها…

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

این تغییر باعث قطع کامل ارتباطات سرورهای ما بین مراکز داده‌هایمان و شبکه‌ی جهانی اینترنت شد. و از بین رفتن کامل ارتباط باعث ایجاد مسئله دوم شد که اوضاع را بدتر کرد.

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

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

تمام این اتفاقات خیلی سریع رخ‌داد. در حالیکه مهندسان ما تلاش می‌کردند تا بفهمند چه اتفاقی افتاده است و چرا؟ آنها با دو مانع بزرگ روبرو شدند: اول، دسترسی به دیتاسنتر‌های ما از طریق روشهای معمول (از خارج) امکان پذیر نبود زیرا شبکه های آنها خراب شده بود و دوم، از بین رفتن تمام DNS ها و از کار افتادن بسیاری از ابزارهای داخلی که ما معمولاً برای بررسی و رفع خاموشی هایی از این دست استفاده می کنیم شد.

دسترسی به شبکه‌ی اصلی و جانبی ما به طور کلی از بین رفت در نتیجه مهندسان به دیتاسنترها اعزام شدند تا به صورت فیزیکی سرورها را مجددا راه اندازی کنند. اما این پروسه‌ی زمانبری بود و همچنین سیستم‌های ما دارای حفاظت فیزیکی و سیستمی سطح بالایی هستند که کار را پیچیده‌تر می‌کرد. از نظر امنیتی روترها جوری طراحی شده اند که حتی با وجود دسترسی فیزیکی هم فرماندهی مستقیم به آنها دشوار و پیچیده است. این تنها راه راه‌اندازی مجدد شبکه‌ی بک‌بون ما بود.

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

این از رویدادهایی است که ما بخاطر آن تمرینات موسوم به “طوفان” که مدتهاست در حال اجرا هستیم. در یک تمرین طوفانی، ما با یک سیستم تمرینی، خرابی گسترده یا خرابی در کل یک منطقه را شبیه سازی می کنیم، تمام زیرساخت ها و نرم افزارهای مربوطه را تحت آزمون استرس(استرس تست) قرار می دهیم. تجربه این تمرینات به ما اعتماد به نفس و تجربه خوبی برای بازگرداندن سیستم‌ها به حالت آنلاین و مدیریت دقیق افزایش بار را به ما داد. در نهایت، خدمات ما نسبتاً سریع بدون هیچ گونه خرابی در سیستم‌های دیگر و به سرعت شروع به کار کرد. و در حالی که ما قبلاً هرگز طوفانی را شبیه سازی نکرده بودیم که شبکه‌ی ستون فقرات جهانی ما را به طور کامل از دور خارج کرده باشد، مطمئناً به دنبال راه هایی برای شبیه سازی رویدادهایی مانند این هستیم.

هرگونه خرابی بدین صورت فرصتی است برای یادگیری و بهتر شدن، و چیزهای زیادی برای ما وجود دارد که از این شکست درس بگیریم. پس از هر مسئله‌ی کوچک و بزرگ ما یک فرایند بازبینی گسترده انجام می دهیم تا بفهمیم چگونه می توانیم سیستم های خود را مقاوم تر کنیم که این روند در حال حاضر در حال انجام است.

ما کارهای گسترده ای انجام داده ایم تا سیستم های خود را برای جلوگیری از دسترسی های غیرمجاز سخت کنیم و این جالب است بدانیم که این سختی چقدر در کند شدن روند بازگردانی سیستم در حالتهای فوق العاده موثر است. به نظرم امنیت روزمره در مقابل کند شدن بازیابی یک مورد نادر ارزش بیشتری دارد. وظیفه‌ی ما این است که آزمایش، تمرینات و مقاومت کلی خود را در برابر این قبیل مشکلات تقویت کنیم.

نوشته‌ی: سانتوش جاناردان

آدرس بلاگ پست فنی فیسبوک

ترجمه: محمود اسکندری

نوشته فیسبوک: جزییات بیشتر در مورد قطعی ۴ اکتبر (فیسبوک، اینستاگرام، واتساپ…) اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

دیدگاهتان را بنویسید