ช่วงนี้เจอปัญหาแปลก ๆ กับอินเทอร์เน็ตของค่ายหนึ่ง คือไม่สามารถเข้า 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 พร้อมแนบผลการทดสอบไป ได้คำอธิบายประมาณนี้
สาเหตุที่เป็นไปได้
- Azure Front Door ไม่รับ IPv6 TLS Handshake จาก IP ของคุณ
- ISP อาจมีปัญหาเรื่อง IPv6 Routing ไปยัง Azure
- 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 หรือเปล่า จะได้ลองทดสอบเพิ่มเติมครับ
