คู่มือเกมแลค › L4 เส้นทางอินเทอร์เน็ต
เส้นทาง BGP เปลี่ยนและ converge ใหม่ Route change / BGP convergence
ID สาเหตุ isp-bgp · ผู้รับผิดชอบหลัก อินฟราเครือข่าย (ทีมอินฟรา) · ร่วมกับ พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม), ภายนอก (ภายนอก)
เปิดการ์ดในฉบับหลักที่มีภาพและการทดลอง →
เมื่อข้อมูลเส้นทางของอินเทอร์เน็ตเปลี่ยน แพ็กเก็ตจะหายในช่วงไม่กี่วินาทีถึงหลายสิบวินาที (บางกรณีหลายนาที) ที่เส้นทางกำลัง converge ใหม่
ทำไม ข้อมูลเส้นทางในช่วงเครือข่ายของ ISP รายใดรายหนึ่งเปลี่ยน → ผลคือ แพ็กเก็ตหายไปไม่กี่วินาทีถึงหลายสิบวินาที หรือสลับไปใช้เส้นทางใหม่ → บนหน้าจอ จู่ ๆ ก็ค้างไปไม่กี่วินาที แล้วค่าปิงเปลี่ยนไป (เช่น 40 → 70 ms)
- อาการ
- ค้าง, วาร์ป
- ปัจจัย
- แพ็กเก็ตหาย, ความหน่วง
- ใครเจอ
- บางพื้นที่/บาง ISP
- เกิดเมื่อไร
- สุ่มเป็นครั้งคราว
- ผู้รับผิดชอบ
- ผู้รับผิดชอบหลัก อินฟราเครือข่าย (ทีมอินฟรา) · ร่วมกับ พัฒนาเซิร์ฟเวอร์ (ทีมพัฒนาเกม), ภายนอก (ภายนอก)
- งานฝั่งทีมพัฒนาเกม
- ตั้งไทม์เอาต์ให้ทนการขาดช่วงสั้น ๆ ได้ (ไม่ตัดการเชื่อมต่อที่หยุดไปไม่กี่วินาทีทันที)
- งานฝั่งทีมอินฟรา
- มอนิเตอร์เส้นทาง (เฝ้าดูการเปลี่ยนแปลงของเส้นทางและปิงของช่วง IP ของเรา), ใช้ BFD ตรวจจับวงจรของเราที่ขัดข้องภายใน 1 วินาทีแล้วสลับเส้นทาง (hold time ค่าเริ่มต้นของ BGP คือ 90–180 วินาที), ถ้าเส้นทางเปลี่ยนไปทางไกลแล้วไม่กลับมา ให้ย้ายทราฟฟิกไปวงจรอื่น
- งานฝั่งภายนอก
- ขอให้ ISP ที่เส้นทางในช่วงเครือข่ายของตนเปลี่ยนบ่อยตรวจหาสาเหตุ
- บนกราฟ
- ขึ้นเป็นขั้นบันไดจากจุดหนึ่ง · RTT, เส้นทางจาก traceroute
- จุดที่ต้องดู
- เทียบเส้นทางจาก traceroute และ mtr ก่อนและหลังเวลาที่ RTT เปลี่ยน และดูประวัติการเปลี่ยนเส้นทาง BGP ของช่วง IP ของเรา (prefix) ด้วย RIPEstat BGPlay
- สัญญาณว่าใช่
- หยุดไปไม่กี่วินาทีพร้อมกับที่ RTT ย้ายไปอยู่อีกค่าหนึ่ง และในเวลาเดียวกันมี BGP update และ AS path เปลี่ยน
- สัญญาณว่าไม่ใช่
- ถ้าไม่มีประวัติการเปลี่ยนเส้นทางแต่สูงเฉพาะหัวค่ำ น่าจะเป็น “จุด peering แออัดช่วงพีค” ถ้าแย่เฉพาะบางการเชื่อมต่อ น่าจะเป็น “เส้นทาง ECMP เส้นหนึ่งเสีย”
- วิธีตรวจ
- ใช้เครื่องมือฝั่งอินฟรา (ไม่ต้องใช้โค้ดเกม)
- กรณีจริง
- Cloudflare 2020: คอนฟิกแบ็กโบนของ Cloudflare ผิดพลาด ทำให้ทราฟฟิกบางเมืองหายไป
Meta 2021: คำสั่งเดียวบนแบ็กโบนของ Facebook ทำให้ DNS หายไปด้วย
Cloudflare 2025: DNS สาธารณะ 1.1.1.1 ของ Cloudflare ขัดข้อง
แหล่งอ้างอิง
- RFC 4271: A Border Gateway Protocol 4 (BGP-4) IETF
ค่าเริ่มต้นที่แนะนำของ BGP hold time คือ 90 วินาที (ถ้าไม่ได้รับข้อความจากอีกฝั่งในช่วงนี้ จะตัดเซสชัน) - BGP updates in 2024 APNIC
เส้นทางที่ไม่เสถียรใช้เวลากว่าจะกลับมาเสถียรโดยเฉลี่ยรายวัน 25–35 วินาที (IPv4) และ 40–50 วินาที (IPv6) - Delayed Internet Routing Convergence (SIGCOMM 2000) ACM
หลังเส้นทางขัดข้อง การ converge ใช้เวลาได้ถึงหลายนาที และระหว่างนั้นแพ็กเก็ตหายและความหน่วงเพิ่มขึ้น (การวัดในปี 2000) - BGPlay (RIPEstat Data API) RIPE NCC
แสดงเส้นทาง BGP ของช่วง IP (prefix) ณ เวลาเริ่มต้น, BGP update ที่พบในช่วงนั้น และข้อมูล AS ในเส้นทาง
สาเหตุที่ควรดูประกอบ
ชั้นเดียวกัน: L4 เส้นทางอินเทอร์เน็ต
สาเหตุจากชั้นอื่นที่ทำให้เกิดอาการเดียวกัน (ค้าง)
ดูการ์ดในฉบับหลักที่มีภาพและการทดลอง