เจอปัญหาเข้า code.visualstudio.com ไม่ได้ สุดท้ายต้นเหตุคือ IPv6

เจอปัญหาเข้า code.visualstudio.com ไม่ได้

Written by

in

ช่วงนี้เจอปัญหาแปลก ๆ กับอินเทอร์เน็ตของค่ายหนึ่ง คือไม่สามารถเข้า code.visualstudio.com ผ่าน Chrome และ Firefox ได้ แต่กลับเข้าได้ปกติผ่าน Safari

ตอนแรกคิดว่าเป็นปัญหาที่ Browser แต่พอลองไปเรื่อย ๆ ก็พบว่าไม่ใช่

ลองติดต่อ Call Center ก็ทำได้ค่อนข้างยาก และคำแนะนำที่ได้รับก็มีเพียงให้รีเซ็ต Router ซึ่งไม่ได้ช่วยแก้ปัญหาอะไร

เริ่มไล่หาสาเหตุ

ลองตรวจสอบเส้นทางด้วย traceroute

IPv4

traceroute code.visualstudio.com

IPv6

traceroute6 code.visualstudio.com

ผลที่ได้ดูเหมือนจะปกติทั้งคู่

จากนั้นลองทดสอบด้วย curl

curl -4 -I https://code.visualstudio.com

IPv4 ตอบกลับปกติ

HTTP/2 200

แต่เมื่อบังคับให้ใช้ IPv6

curl -6 -I https://code.visualstudio.com

กลับได้ผลลัพธ์

curl: (35) Recv failure: Connection reset by peer

ตรงนี้ทำให้เริ่มสงสัยว่าปัญหาน่าจะเกี่ยวกับ IPv6 มากกว่า Browser

ผลกระทบที่เจอ

ที่บ้านผมมี Raspberry Pi ทำหน้าที่เป็น Server และบางครั้งก็ใช้ VS Code Remote SSH เข้าไปทำงาน

ปัญหาคือ VS Code ฝั่ง Client จะพยายามดาวน์โหลด VS Code Server ลงบนเครื่องปลายทาง แต่เมื่อเชื่อมต่อผ่าน IPv6 ก็โหลดไม่สำเร็จ ทำให้ใช้งาน Remote SSH ไม่ได้

ทางแก้ชั่วคราวคือต้องปิด IPv6 บน Server หรือบังคับให้ใช้งานผ่าน IPv4

อีกเรื่องที่นึกขึ้นได้คือ เมื่อปีที่แล้วผมเคยเจอปัญหาคล้ายกันกับเกม HELLDIVERS 2 ซึ่งสุดท้ายก็ต้องปิด IPv6 ถึงจะเล่นได้ตามปกติ

ลองวิเคราะห์เพิ่มเติม

ผมลองถาม Claude พร้อมแนบผลการทดสอบไป ได้คำอธิบายประมาณนี้

สาเหตุที่เป็นไปได้

  1. Azure Front Door ไม่รับ IPv6 TLS Handshake จาก IP ของคุณ
  2. ISP อาจมีปัญหาเรื่อง IPv6 Routing ไปยัง Azure
  3. Azure บาง PoP อาจมีปัญหากับ IPv6 ชั่วคราว

จาก Log ที่เห็น

  • TCP เชื่อมต่อไปยัง code.visualstudio.com ผ่าน IPv6 ได้
  • ส่ง TLS Client Hello ได้
  • Server ตอบกลับด้วย Server Hello
  • หลังจากนั้นการเชื่อมต่อถูก Reset ระหว่าง TLS Handshake

สรุปคือ TCP เชื่อมต่อได้ แต่การเชื่อมต่อถูกตัดระหว่าง TLS Handshake ซึ่งไม่น่าจะเป็นปัญหาของ Browser หรือเครื่องผู้ใช้

หากการวิเคราะห์นี้ถูกต้อง ก็มีความเป็นไปได้ว่าปัญหาอยู่ระหว่าง IPv6 Routing ของ ISP กับ Azure Front Doorมากกว่าจะเป็นปัญหาที่เครื่องฝั่งผู้ใช้

สรุป

จากที่ทดสอบมา ผมพบว่า

  • Safari ยังเข้า code.visualstudio.com ได้
  • Chrome และ Firefox เข้าไม่ได้
  • IPv4 ใช้งานได้ปกติ
  • IPv6 จะถูกตัดการเชื่อมต่อระหว่าง TLS Handshake (Connection reset by peer)
  • VS Code Remote SSH ได้รับผลกระทบ เพราะดาวน์โหลด VS Code Server ไม่สำเร็จผ่าน IPv6
  • ก่อนหน้านี้ก็เคยเจอปัญหาลักษณะคล้ายกันกับ HELLDIVERS 2 ซึ่งแก้ได้ด้วยการปิด IPv6

เลยอยากสอบถามว่ามีใครใช้อินเทอร์เน็ตค่ายเดียวกัน หรือเคยเจออาการแบบนี้บ้างไหมครับ?

ถ้าใครเคยเจอ รบกวนแชร์ด้วยว่าเป็น ISP ไหน และมีวิธีแก้ที่ดีกว่าการปิด IPv6 หรือเปล่า จะได้ลองทดสอบเพิ่มเติมครับ

Comments

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *