آشنایی با نحوه ناپدید شدن facebook از اینترنت
"همه ما تا الان فیسبوک رو به عنوان غول تکنولوژی میشناختیم و میشناسیم ولی آیا فیسبوک خراب میشود؟"
امروز در ساعت ۱۶:۵۱ یک اتفاق تحت عنوان "Facebook DNS lookup returning SERVFAIL" را باز کردیم چون فکر میکردیم که مشکلی در dns resolver 1.1.1.1 کلادفر نباشد وقتی میخواستیم در وضعیت عمومی خود
پست بگذاریم متوجه شدیم اتفاق دیگری در حال رخ دادن است که بسیار جدی است.
رسانه های اجتماعی به سرعت شعله ور شدند و این اتفاق و کلادفر را گزارش کردند.
در واقع فیسبوک و رسانه های وابسته به آن مانند واتساپ اینستاگرام از کار افتاده اند. dns name آنها متوقف شد و ip های زیرساختی آنها غیر قابل دسترسی بود . انگار که فردی یکباره تمام کابل ها را از دیتا سنتر ها بیرون
کشیده است و دسترسی آنها را از اینترنت قطع کرده است.
اصلا چطور ممکن است؟
در واقع BGP مخفف Border Gateway Protocol است . یک مکانیزم برای تبادل اطلاعات در routing
(مسیریابی) سیستم های خودمختار یا AS در اینترنت است . router های بزرگی که باعث میشوند اینترنت کار
کند دارای لیست های عظیم و دائما بروز شده از تمام مسیر های ممکن است که می توان از آن برای تحویل هر
بسته شبکه به مقصد نهایی خود استفاده کرد اینترنت به معنای واقعی کلمه یک شبکه از شبکه ها است که
توسط BGP به هم متصل میشوند.
BGP به یک شبکه (مثلاً فیس بوک) اجازه می دهد تا حضور خود را در شبکه های دیگر که اینترنت را تشکیل می دهند تبلیغ کند.
همانطور که می نویسیم facebook.comو بالا نمی آید isp ها و سایر شبکه ها نمی توانند شبکه فیسبوک را پیدا کنند و بنابراین در دسترس نیست
شبکه های جداگانه هر کدام دارای ASN هستند (یک شماره سیستم خودمختار) AS میتواند پیشوند هایی را ایجاد کند (مثلا گروهی از ip address ها را کنترل کند ) به این پیشوند ها پیشوند های ترانزیتی میگویند
ASN Cloudflare : AS13335
هر ASN باید مسیر های پیشوند خود را با استفاده از BGP به اینترنت اعلام کند در غیر این صورت هیچ کس نمیداند به کجا وصل شود و چطور Cloudflare را پیدا کند
در این نمودار ساده، شما میتوانید شش سیستم مستقل در اینترنت و دو مسیر ممکن را ببینید که یک بسته میتواند از آغاز به انتها از آن استفاده کند. as۱ AS۲ AS۳ سریعترین، و as۱ AS۶ AS۵ AS۳ کند ترین هستند، اما این میتواند در صورتی استفاده شود که اولی شکست بخورد.
در ساعت 16:58 متوجه شدیم فیسبوک اعلام کرد route های مربوط به پیشوند های dns خود را متوقف کرده است که حداقل سرور های dns فیسبوک در دسترس نبود به این دلیل dns resolver 1.1.1.1 Cloudflare دیگر نمی تواند به سوالات و request های facebook.com یا instagram.com جواب دهد.
route-views>show ip bgp 185.89.218.0/23
% Network not in table
route-views>
route-views>show ip bgp 129.134.30.0/23
% Network not in table
route-views>
در همین حال ، سایر آدرس های IP فیس بوک همچنان مسیریابی شده اند اما کاربرد چندانی ندارند زیرا بدون DNS فیس بوک و خدمات مرتبط عملاً در دسترس نبوده است:
route-views>show ip bgp 129.134.30.0
BGP routing table entry for 129.134.0.0/17, version 1025798334
Paths: (24 available, best #14, table default)
Not advertised to any peer
Refresh Epoch 2
3303 6453 32934
217.192.89.50 from 217.192.89.50 (138.187.128.158)
Origin IGP, localpref 100, valid, external
Community: 3303:1004 3303:1006 3303:3075 6453:3000 6453:3400 6453:3402
path 7FE1408ED9C8 RPKI State not found
rx pathid: 0, tx pathid: 0
Refresh Epoch 1
route-views>
کلادفر تمام به روز رسانی ها و اطلاعیه های مهمی که در شبکه جهانی خود میبیند پیگیری می کند . در مقیاس کلادفر ، داده هایی که جمع آوری می کند به کلادفر این امکان را می دهد که چگونه اینترنت متصل شده و ترافیک از کجا و به کجا در این سیاره جریان دارد.
یک پیام BGP UPDATE روتر را از هرگونه تغییری که در تبلیغات پیشوند ایجاد کرده اید یا پیشوند را به طور کامل حذف می کند ، مطلع می کند. این را می توان به وضوح در تعدادی از به روزرسانی هایی که از فیس بوک هنگام بررسی پایگاه داده BGP سری های زمانی کلادفر دریافت شده است، مشاهده کرد. معمولاً این نمودار نسبتاً بی صدا است: فیسبوک دقیقه به دقیقه تغییرات زیادی در شبکه خود ایجاد نمی کند.
اما در حدود ساعت 15:40 ساعت محلی UTC شاهد اوج تغییرات مسیریابی از سوی فیس بوک بودیم. آن موقع دردسر شروع شد اگر این دیدگاه را با اعلان ها و برداشت های مسیر تقسیم کنیم ، حتی تصور بهتری از آنچه اتفاق افتاده است می گیریم مسیرها کنار کشیده شد ، سرورهای DNS فیس بوک آفلاین شد و یک دقیقه پس از بروز مشکل ، مهندسان Cloudflare در اتاقی بودند که می پرسیدند چرا 1.1.1.1 نمی تواند facebook.com را برطرف کند و نگران بودند که به نوعی خطای سیستم های کلادفر باشد.
با این برداشت ها ، فیس بوک و سایت های آن عملاً خود را از اینترنت قطع کرده بودند.
این یک پیامد مستقیم برای dns resolver ها بود پس dns resolver ها در سراسر جهان resolving نام دامنه خود را متوقف کردند.
➜ ~ dig @1.1.1.1 facebook.com
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 31322
;facebook.com. IN A
➜ ~ dig @1.1.1.1 whatsapp.com
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 31322
;whatsapp.com. IN A
➜ ~ dig @8.8.8.8 facebook.com
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 31322
;facebook.com. IN A
➜ ~ dig @8.8.8.8 whatsapp.com
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 31322
;whatsapp.com. IN A
این اتفاق می افتد زیرا DNS ، مانند بسیاری از سیستم های دیگر در اینترنت ، مکانیسم مسیریابی خود را نیز دارد. وقتی شخصی آدرس https://facebook.com را در مرورگر تایپ می کند dns که مسئول تبدیل نام دامنه به آدرس ip واقعی برای ارسال است . ابتدا بررسی می کند که آیا چیزی در حافظه پنهان خود دارد یا از آن استفاده می کند. در غیر این صورت ، سعی می کند پاسخ را از سرورهای نام دامنه ، که معمولاً توسط نهادی که صاحب آن است میزبانی کند ، بگیرد.
اگر domain name server ها غیرقابل دسترسی هستند یا به دلایلی دیگر پاسخ نمی دهند ، SERVFAIL بازگردانده می شود و مرورگر خطایی را برای کاربر صادر می کند.
به دلیل توقف اعلام فیسبوک برای اعلام route های پیش شماره DNS خود از طریق BGP ، در این حین
dns resolver های کلادفر و دیگران هیچ راهی برای اتصال به سرورهای نام خود نداشتند. در نتیجه ، 1.1.1.1 ، 8.8.8.8 و سایر resolver های اصلی DNS عمومی شروع به انتشار (و ذخیره سازی) پاسخ های SERVFAIL کردند.
اما این همه ماجرا نیست.
رفتار , منطق و کاربرد انسان شروع می شود و باعث ایجاد یک اثر نمایی دیگر می شود. سونامی ترافیک DNS اضافی در پی می آورد.
این امر تا حدی به این دلیل است که برنامه ها خطایی پاسخ نمیدهندصفحه refresh می شود تا زمانی که پاسخی دهد ولی خب هیچی نمیگه :)
مردم به دنبال جایگزین هستند و می خواهند بیشتر بدانند یا درباره آنچه در جریان است بحث کنند. هنگامی که فیسبوک غیر قابل دسترسی شد ، شاهد افزایش درخواست های DNS در توییتر ، سیگنال و دیگر سیستم عامل های پیام رسانی و رسانه های اجتماعی بودیم.
کلادفر همچنین می تواند عوارض جانبی دیگری از این عدم دسترسی را در ترافیک WARP خود به ASN 32934 تحت تأثیر فیس بوک مشاهده کند. این نمودار نشان می دهد که چگونه ترافیک از 15:45 UTC به 16:45 UTC در مقایسه با سه ساعت قبل در هر کشور تغییر کرده است. در سراسر جهان ترافیک WARP از شبکه فیس بوک به سادگی از بین رفت.
رویدادهای امروز یک یادآوری است که اینترنت یک سیستم بسیار پیچیده و وابسته به هم است که میلیون ها سیستم و پروتکل با هم کار می کنند. این اعتماد ، استانداردسازی و همکاری بین نهادها در مرکز ایجاد آن برای تقریباً پنج میلیارد کاربر فعال در سراسر جهان است.
حدود ساعت 21:00 UTC شاهد فعالیت مجدد BGP از شبکه فیس بوک بودیم که در ساعت 21:17 ساعت محلی UTC به اوج خود رسید.
این نمودار در دسترس بودن نام DNS 'facebook.com' در حل کننده DNS Cloudflare 1.1.1.1 را نشان می دهد. در حدود 15:50 UTC در دسترس قرار نگرفت و در 21:20 UTC برگشت.
منبع : https://blog.cloudflare.com/october-2021-facebook-outage