Facebook’un İnternetten Nasıl Kaybolduğunu Anlamak

Bir an için “Facebook kapanmış olamaz değil mi?” diye düşündük.

Bugün 1651 UTC’de, DNS çözümleyicimiz 1.1.1.1’de bir sorun olduğundan endişe ettiğimiz için “Facebook DNS araması SERVFAIL döndürüyor” başlıklı bir dahili olayı açtık . Ancak genel durum sayfamızda paylaşımda bulunmak üzereyken, daha ciddi bir şeyin olduğunu fark ettik.

Sosyal medya hızla alev aldı ve mühendislerimizin de hızla doğruladığını bildirdi. Facebook ve bağlı hizmetleri WhatsApp ve Instagram aslında tamamen çöktü. DNS adları çözümlenmeyi durdurdu ve altyapı IP’lerine erişilemedi. Sanki birileri veri merkezlerinden bir anda “kabloları çekip” internet bağlantılarını kesmiş gibiydi.

BGP , Sınır Ağ Geçidi Protokolü anlamına gelir. İnternetteki otonom sistemler (AS) arasında yönlendirme bilgisi alışverişi yapan bir mekanizmadır. İnternetin çalışmasını sağlayan büyük yönlendiriciler, her ağ paketini nihai hedeflerine ulaştırmak için kullanılabilecek olası yolların devasa, sürekli güncellenen listelerine sahiptir. BGP olmadan, İnternet yönlendiricileri ne yapacaklarını bilemez ve İnternet çalışmaz.

İnternet kelimenin tam anlamıyla bir ağlar ağıdır ve BGP ile birbirine bağlıdır. BGP, bir ağın (örneğin Facebook) varlığını İnternet’i oluşturan diğer ağlara duyurmasına izin verir. Facebook’un varlığının reklamını yapmadığını yazdığımız için, ISS’ler ve diğer ağlar Facebook’un ağını bulamıyor ve bu nedenle kullanılamıyor.

Bireysel ağların her birinin bir ASN’si vardır: Bir Otonom Sistem Numarası. Otonom Sistem (AS), birleşik bir dahili yönlendirme politikasına sahip bağımsız bir ağdır. Bir AS, önekleri (bir grup IP adresini kontrol ettiklerini söyleyin) ve ayrıca geçiş öneklerini (belirli IP adresleri gruplarına nasıl ulaşacaklarını bildiklerini söyleyin) oluşturabilir.

Cloudflare’ın ASN’si AS13335’tir . Her ASN’nin BGP kullanarak önek yollarını İnternet’e duyurması gerekir; aksi takdirde kimse nasıl bağlanacağını ve bizi nerede bulacağını bilemez.

Bizim öğrenim merkezi iyi ne bakış vardır BGP ve ASNs vardır ve nasıl çalışır.

Bu basitleştirilmiş şemada, İnternette altı otonom sistem ve bir paketin Baştan Sona gitmek için kullanabileceği iki olası yol görebilirsiniz. AS1 → AS2 → AS3 en hızlısı ve AS1 → AS6 → AS5 → AS4 → AS3 en yavaşı, ancak ilki başarısız olursa bu kullanılabilir.

1658 UTC’de Facebook’un DNS öneklerine giden yolları duyurmayı bıraktığını fark ettik. Bu, en azından Facebook’un DNS sunucularının kullanılamadığı anlamına geliyordu. Bu Cloudflare’ın 1.1.1.1 DNS çözümleyicisi nedeniyle artık facebook.com veya instagram.com’un IP adresini soran sorgulara yanıt veremiyordu.

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>

Bu arada, diğer Facebook IP adresleri yönlendirildi, ancak DNS olmadan Facebook ve ilgili hizmetler etkin bir şekilde kullanılamadığı için özellikle kullanışlı değildi:

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>

Global ağımızda gördüğümüz tüm BGP güncellemelerini ve duyurularını takip ediyoruz. Bizim ölçeğimizde, topladığımız veriler bize İnternet’in nasıl bağlandığına ve trafiğin gezegendeki her yerden nereden nereye aktığına dair bir fikir verir.

Bir BGP UPDATE mesajı, bir önek reklamında yaptığınız tüm değişiklikleri yönlendiriciye bildirir veya öneki tamamen geri çeker. Bunu, zaman serisi BGP veri tabanımızı kontrol ederken Facebook’tan aldığımız güncellemelerin sayısında açıkça görebiliriz. Normalde bu tablo oldukça sessizdir: Facebook, ağında dakika dakika çok fazla değişiklik yapmaz.

Ancak yaklaşık 15:40 UTC’de Facebook’tan yönlendirme değişikliklerinin zirvesini gördük. İşte o zaman sıkıntı başladı.

Bu görüşü rota duyuruları ve geri çekmelere bölersek, ne olduğu hakkında daha iyi bir fikir ediniriz. Rotalar geri çekildi, Facebook’un DNS sunucuları çevrimdışı oldu ve sorun oluştuktan bir dakika sonra, Cloudflare mühendisleri bir odada 1.1.1.1’in neden facebook.com’u çözemediğini merak ediyor ve bir şekilde sistemlerimizde bir hata olduğundan endişe ediyorlardı.

Bu para çekme işlemleriyle, Facebook ve siteleri kendilerini internetten etkin bir şekilde ayırdı.

DNS etkilenir

Bunun doğrudan bir sonucu olarak, tüm dünyadaki DNS çözümleyicileri alan adlarını çözümlemeyi bıraktı.

➜  ~ 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

Bunun nedeni, İnternet’teki diğer birçok sistem gibi DNS’nin de kendi yönlendirme mekanizmasına sahip olmasıdır. Birisi tarayıcıya https://facebook.com URL’sini yazdığında , alan adlarını bağlanılacak gerçek IP adreslerine çevirmekten sorumlu DNS çözümleyici, önce önbelleğinde bir şey olup olmadığını kontrol eder ve kullanır. Değilse, genellikle kendisine sahip olan varlık tarafından barındırılan alan ad sunucularından yanıtı almaya çalışır.

Ad sunucularına erişilemiyorsa veya başka bir nedenle yanıt veremezse, bir SERVFAIL döndürülür ve tarayıcı kullanıcıya bir hata verir.

Yine, öğrenme merkezimiz DNS’nin nasıl çalıştığına dair iyi bir açıklama sağlar .

Facebook’un DNS önek yollarını BGP üzerinden duyurmayı durdurması nedeniyle, bizim ve diğer herkesin DNS çözümleyicilerinin ad sunucularına bağlanma yolu yoktu. Sonuç olarak, 1.1.1.1, 8.8.8.8 ve diğer büyük genel DNS çözümleyicileri SERVFAIL yanıtları yayınlamaya (ve önbelleğe almaya) başladı.

Ama hepsi bu değil. Artık insan davranışı ve uygulama mantığı devreye giriyor ve başka bir üstel etkiye neden oluyor. Bunu ek DNS trafiği tsunamisi izler.

Bu kısmen, uygulamaların bir yanıt için bir hatayı kabul etmemesi ve bazen agresif bir şekilde yeniden denemeye başlamaması ve kısmen de son kullanıcıların da bir yanıt için bir hata almaması ve sayfaları yeniden yüklemeye başlamaması nedeniyle oldu. uygulamalar, bazen de agresif bir şekilde.

1.1.1.1’de gördüğümüz trafik artışı (istek sayısı):

Şimdi, Facebook ve siteleri çok büyük olduğundan, dünya çapında normalden 30 kat daha fazla sorgu işleyen ve potansiyel olarak diğer platformlarda gecikme ve zaman aşımı sorunlarına neden olan DNS çözümleyicilerimiz var.

Neyse ki, 1.1.1.1 Ücretsiz, Özel, Hızlı (bağımsız DNS monitörü DNSPerf’in kanıtlayabileceği gibi) ve ölçeklenebilir olacak şekilde oluşturuldu ve kullanıcılarımıza minimum etkiyle hizmet vermeye devam edebildik.

DNS isteklerimizin büyük çoğunluğu 10 ms’nin altında çözülmeye devam etti. Aynı zamanda, p95 ve p99 yüzdeliklerinin minimum bir kısmı, muhtemelen süresi dolmuş TTL’lerin Facebook ad sunucularına başvurmak zorunda kalması ve zaman aşımı nedeniyle yanıt sürelerinde artış gördü. 10 saniyelik DNS zaman aşımı sınırı, mühendisler arasında iyi bilinmektedir.

Diğer hizmetleri etkilemek

İnsanlar alternatifler ararlar ve daha fazlasını öğrenmek veya neler olup bittiğini tartışmak isterler. Facebook ulaşılamaz hale geldiğinde, Twitter, Signal ve diğer mesajlaşma ve sosyal medya platformlarına artan DNS sorguları görmeye başladık.

Bu erişilemezliğin başka bir yan etkisini, Facebook’un etkilenen ASN 32934’e giden ve giden WARP trafiğinde de görebiliriz. Bu grafik, trafiğin her ülkede üç saat öncesine kıyasla 15:45 UTC’den 16:45 UTC’ye nasıl değiştiğini gösterir. Tüm dünyada Facebook ağına gelen ve giden WARP trafiği ortadan kayboldu.

İnternet

Bugünün olayları, İnternet’in birlikte çalışan milyonlarca sistem ve protokolden oluşan çok karmaşık ve birbirine bağımlı bir sistem olduğunu nazikçe hatırlatıyor. Varlıklar arasındaki bu güven, standardizasyon ve işbirliği, dünya çapında neredeyse beş milyar aktif kullanıcı için çalışmasını sağlamanın merkezinde yer alıyor.

Güncelleme

21:00 UTC civarında, Facebook ağından 21:17 UTC’de zirveye ulaşan yenilenmiş BGP etkinliğini gördük.

Bu çizelge, Cloudflare’in DNS çözümleyicisi 1.1.1.1’de ‘facebook.com’ DNS adının kullanılabilirliğini gösterir. Yaklaşık 15:50 UTC’de mevcut olmayı bıraktı ve 21:20 UTC’de geri döndü.

Kuşkusuz Facebook, WhatsApp ve Instagram hizmetlerinin çevrimiçi hale gelmesi daha fazla zaman alacak, ancak 22:28 UTC itibarıyla Facebook’un küresel İnternet’e yeniden bağlandığı ve DNS’nin yeniden çalıştığı görülüyor.

Metnin aslına ulaşmak için:

https://blog.cloudflare.com/october-2021-facebook-outage/