ปัญหาเครือข่าย Facebook ล่มเมื่อคืนนี้ ยังไม่มีการอธิบายสาเหตุอย่างละเอียด โดยบริษัทเพิ่งออกมาประกาศคร่าวๆ ว่าเป็นเพราะการคอนฟิกเราเตอร์ผิด (configuration changes on the backbone routers)
ระหว่างที่เรารอคำชี้แจงอย่างละเอียดจาก Facebook ว่าเกิดอะไรขึ้น บริษัทผู้เชี่ยวชาญด้านเครือข่าย Cloudflare ก็ออกมาอธิบายในมุมของคนนอก ว่าเครือข่ายอินเทอร์เน็ตเกิดอะไรขึ้นบ้างเมื่อ Facebook ตัดตัวเองไปจากอินเทอร์เน็ต
คนที่มีความรู้เรื่องการทำงานของ Border Gateway Protocol (BGP) และ autonomous systems (AS) คงเข้าใจเรื่องนี้อยู่แล้ว แต่สำหรับคนที่ไม่เคยได้ยินสองคำนี้มาก่อน ก็เป็นโอกาสดีในการเรียนรู้โครงสร้างการทำงานของเครือข่ายอินเทอร์เน็ต
Cloudflare บอกว่าจากระบบมอนิเตอร์ของตัวเอง พบว่า Facebook หยุดประกาศเส้นทางไปยังระบบ DNS ของตัวเองเมื่อเวลา 16:58 UTC (23:58 น. ตามเวลาประเทศไทย) ส่งผลให้ระบบ DNS 1.1.1.1 ของ Cloudflare ไม่สามารถตอบคำถามได้ว่าโดเมน facebook.com เป็นหมายเลขไอพีใด
ตอนแรก Cloudflare ตกใจคิดว่าเป็นปัญหาที่ระบบเครือข่ายของตัวเอง แต่จากการสอบสวนพบว่าประมาณหนึ่งชั่วโมงก่อนหน้านั้น (15:40 UTC หรือ 22:40 น. ของบ้านเรา) พบการเปลี่ยนสถานะเส้นทางใน BGP ของ Facebook ซึ่งเป็นจุดเริ่มต้นของปัญหารอบนี้
สิ่งที่เกิดขึ้นคือ เส้นทางไปยัง Facebook ถูกถอนออกจากตารางข้อมูลเส้นทาง, เซิร์ฟเวอร์ DNS ของ Facebook ออฟไลน์ (ตอนนี้เรายังไม่รู้สาเหตุจากข้างในว่าเกิดจากอะไร)
เมื่อ Facebook หยุดประกาศเส้นทางในระบบ BGP ทำให้ไม่มีใครในอินเทอร์เน็ตรู้ว่าจะส่งข้อมูลไปเซิร์ฟเวอร์ของ Facebook ได้อย่างไร ส่งที่เกิดขึ้นคือทุกคนวิ่งมาถามเซิร์ฟเวอร์ DNS ซ้ำอีกรอบ (หรือหลายๆ รอบ) ว่า Facebook อยู่ที่ไหน ทำให้เซิร์ฟเวอร์ 1.1.1.1 ของ Cloudflare ได้รับทราฟฟิกเพิ่มขึ้นถึง 30 เท่าทันที
และ Cloudflare ถือโอกาสโม้ว่าระบบของตัวเองเจ๋งมาก รองรับโหลดได้สบาย แม้ระยะเวลา response time เพิ่มขึ้นมาก แต่ก็ยังต่ำกว่า 10ms (เส้นสีฟ้า) ยกเว้นบางกรณีที่อาจนานถึง 10 วินาที (เส้นสีส้ม)
การล่มของ Facebook ยังทำให้ทราฟฟิกไปยังบริการโซเชียลอื่นๆ พุ่งขึ้นด้วยเช่นกัน เช่น Twitter, Signal, Telegram, Tiktok
พอถึงเวลา 21:17 UTC (4:17 น. ของบ้านเรา) ทราฟฟิก BGP ของ Facebook เริ่มกลับมา ระบบ DNS เริ่มกลับสู่ปกติ และใช้งานได้ราว 21:20 UTC
ที่มา - Cloudflare
Comments
นอกจาก 1.1.1.1 แล้ว 8.8.8.8 ก็โดนถล่มเหมือนกันครับ
https://twitter.com/awlnx/status/1445073290708533258
onedd.net
จากลิ้งค์ต้นฉบับ แอดแปลข้อความนี้ผิดแล้วครับ
"At 1658 UTC we noticed that Facebook had stopped announcing the routes to their DNS prefixes."
ไม่ควรจะแปลว่า
"Facebook หยุดประกาศเส้นทางในระบบ DNS เมื่อเวลา 16:58 UTC (23:58 น. ตามเวลาประเทศไทย)"
ควรจะแปลว่า
"Facebook หยุดประกาศเส้นทางไปยังระบบ DNS ของตนเองเมื่อเวลา 16:58 UTC (23:58 น. ตามเวลาประเทศไทย)"
routing กับ DNS มันคนละเรื่องกันครับ
ต่ำกว่า 10ms น่าจะเป็นเส้นสีเหลืองนะครับ เส้นสีฟ้ามีขึ้นไปแถวๆ 1s แล้ว
แก้ตามนั้น ขอบคุณครับ
เหมือน DNS Server ของ Cloudflare โดน DDoS ถล่มด้วยการ Query หา facebook.com รัวๆ
เมื่อวาน AdGuard DNS ก็ down เหมือนกัน
config ผิด ทำให้ DNS Server หายตัวไปแว่บหนึง
อารมณ์ว่าบ้าน FB ไปเอาป้ายบอกทางไปบ้านตัวเองออก CF เป็นคนนำทางก็เลยตอบไม่ได้สินะว่าจะไปบ้าน FB ไปทางไหนสินะ?
//แต่คิดเล่นๆ ว่าพวกที่ cache DNS FB ไว้ที่ย้านไหงโดนด้วยหว่าถ้ามันโดนแค่ name resolution เนี่ย
บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P
มันได้พังเพราะ DNS ครับมันพังที่ระบบ routing ทั้งหมดของ Facebook และ DNS Server Facebook ก็อยู่ในนั้นด้วย ทำให้เมื่อ dns cache หมดเวลาต้องไปถามหาจากต้นทางใหม่เพื่ออัพเดทก็ทำไม่ได้
แต่ถึง dns cache ยังไม่หมดเวลาก็ไม่มีใครคำนวนหาเส้นทาง route ไปที่ ip facebook เรียกว่ายกสะพานเข้าเมืองตัวเองออกดีกว่า ทำได้อย่างมาก็วิ่งถึงกำแพงเมืองคูเมืองหาทางเข้าเมืองไม่ได้
เป็นการล่มของบริการขนาดใหญ่ที่ค่อนข้างนานเลยเนอะ ขอบคุณสำหรับทุกๆท่านที่ช่วยกันแชร์ความรู้นะครับ
..: เรื่อยไป
ผมว่าน่าจะเดือดร้อนยัน root server เลยมั้ง
ของผมส่งข้อความไม่ไปตั้งแต่ 22:20 คิดว่าเน็ตมีปันหาแต่เล้นแอปอื่นก็ปกติ
แทรกรูปในข่าวแบบไม่มี alt แบบนี้ก็ดีครับ
เพราะเวลาเขียนโค้ด alt แล้วตัวฟังก์ชันใน Google Chrome มันไม่ยอมแสดงข้อความในภาพให้โปรแกรมอ่านหน้าจอครับ แต่มันจะแสดงข้อความที่อยู่ใน alt="..." แทน ทำให้คนตาบอดไม่รู้ว่าในภาพมีข้อความเขียนว่าอะไร
แต่พอแทรกรูปแบบข่าวนี้ ซึ่งไม่มี alt รู้สึกว่าเข้าถึงเนื้อข่าวได้เพิ่มขึ้นมาก
พอไม่แทรกแล้วมันจะอ่านข้อความในภาพด้วยเหรอครับ
onedd.net
ใช่ครับ
อย่างถ้าเราแทรก alt="Banner" ต่อให้เราเปิดฟังก์ชันอธิบายข้อความเพื่อให้ Screen Reader อ่านข้อความในภาพได้ แต่ตัว Screen Reader มันจะไม่ยอมอ่านตรงนั้น แต่มันจะไปอ่านคำว่า "banner" แทน เพราะมันถือว่ามีคนอธิบายภาพให้แล้ว ข้อความที่อยู่ในภาพก็ไม่จำเป็นอีกต่อไป
แต่ถ้าเราแทรกแค่ <img src="url" โดยไม่แทรก alt โปรแกรมมันจะรู้ว่า อ้อ ภาพนี้ยังไม่มีคนอธิบายภาพเอาไว้ งั้นก็สะแกนเอาข้อความในภาพให้ Screen Reader ออกเสียงให้คนตาบอดฟังแล้วกัน
ก็ประมาณนี้อะครับ
คุณsuriyan2538 น่าจะเข้าใจผิดครับ
เพราะการที่มี image description ให้ screen reader อ่านได้นั้น เป็นฟีเจอร์เฉพาะของ Chrome เองครับ ไม่ใช่หลักการโดยทั่วไปของการ embed image ตามปกติ
ปัญหาของใน Blognone คือ การ embed รูปภาพจากตัว Drupal เองครับ ที่มันทำให้ฟีเจอร์ image description ของ Chrome ทำงานไม่ได้
ซึ่งการใส่ alt text ตามหลักการพื้นฐานนั้นดีอยู่แล้ว ควรทำครับไม่ใช่ไม่ควร
อย่างข่าวนี้ผมใช้ Firefox ก็ไม่เห็นว่ามีรูปภาพอะไรเลยครับ
@ Virusfowl
I'm not a dev. not yet a user.
น่าจะเขียนหัวข่าวผิด "บ้าง"หลัง ?
เพิ่ม:
Facebook ได้อย่างไร "ส่ง" ที่เกิดขึ้นคือทุกคน