เจอปัญหาแปลกๆมาเล่าให้ฟังครับ วันนี้ืทีม #vronline เจอเรื่องแปลกๆกับ Internet ของ TOT มา
คิดว่าน่าจะมีปัญหาอะไรซักอย่างใน DNS ของ TOT
อย่างแรกเลย ลูกค้าแจ้งมาว่า เจอปัญหา เปิด Google Chrome ใน Office เพื่อเข้า youtube แล้วเข้าไม่ได้
แต่ว่า ถ้าใช้ safari เปิดเข้า youtube ก่อน หนึ่งที
หลังจากนั้น Chome ก็จะเข้า youtube ได้ครับ
เอาล่ะ พอจะเดาออกไหมว่าปัญหาน่าจะอยู่ตรงไหน
ซึ่งบอกตรงๆ ผมฟังปัญหา แล้วก็ Remote ไปที่ Mikrotik ปลายทางของเรา ผมก็ไม่เห็นปัญหาหรอกครับ งงเลย ปัญหาอัลไลวะเนี่ย
เลยลอง remote ไปที่เครื่องลูกค้าเพื่อทดสอบว่าจริงอย่างที่เค้าเล่าหรือเปล่า ก็พบว่าเป็นจริงๆซะด้วยสิ
ซึ่งปัญหานี้ ถ้า reboot กลับมา จะเกิดใหม่อีกครั้ง
พอให้ลูกค้า Reboot Notebook ผมก็เลยลองใช้ command line ครับ
ลองง่ายๆก่อน ก็คือ ping ไปที่ชื่อ youtube.com ก็ตอบสนองถูกต้องปกติ
ลองเอา youtube.com ไปเปิดที่ chrome เปิดไม่ติด โดยผล Error ที่ได้มาคือ DNS ไม่สามารถ resolve ได้
โอ้ เริ่มได้ Hint ในการตรวจสอบปัญหามาหนึ่งเรื่อง
ผมลอง curl youtube.com ปรากฏว่าค้าง ไม่สามารถ curl ได้
หมายเหตุ curl เป็นคำสั่งในการเรียกดู http,https data ในแบบ command line ซึ่งเราจะสามารถดูพวก debug บางอย่างได้ด้วยครับ
ตอน curl ก็ไม่ได้เหมือนกัน ค้างไปเลย แต่ผมสังเกตว่าตรง URL Bar ของ chrome มันเปลี่ยนจาก youtube.com -> “www.youtube.com” เอ๊ะ หรือว่า??? ลองเข้า nslookup แล้วไปถาม DNS ว่า “www.youtube.com” มัน resolve IP ได้ไหม ปรากฏว่าไม่ได้
ซึ่งใน Mikrotik ผมใช้ DNS ชี้ไปที่ Google DNS “8.8.8.8” ครับ ผมลองย้ายไป Cloudflare ที่ “1.1.1.1” ก็เข้าไม่ได้ ลองย้ายอีกทีไปที่ Quad9 “9.9.9.9” ก็ยังเข้าไม่ได้ ทำให้แน่ใจได้อย่างนึงว่า TOT มันทำ Redirect DNS ของผมแน่ๆล่ะ
อธิบายอย่างนี้ก่อนว่า DNS คืออะไร
DNS ย่อมาจาก Domain Name Service เป็นบริการที่เอาไว้ตอบว่า ชื่อเว็บที่เราเข้า มันเป็น IP Address อะไรบนโลก Internet เพราะมนุษย์จำชื่อเว็บได้ แต่จำ IP Address ไม่ได้ ดังนั้นระบบ DNS Server จึงสำคัญมากๆในการช่วยให้เราเข้าเว็บได้ง่ายขึ้น เพราะจำแต่ชื่อก็พอครับ
ทีนี้ DNS เนี่ย มันเป็น UDP Protocol ที่เวลาส่งไปถามใครบนโลก Internet มันไม่ได้เข้ารหัสเหมือน HTTPS ทำให้สามารถแก้ไข Packet หรือแก้ไขอะไรหลายๆอย่างได้ หนึ่งในนั้นก็คือ การแก้ไข Server ปลายทางที่จะถามครับ คือ สมมติผมอยู่ภายใต้ ISP TOT และระบบ Network ของผมเลือกใช้ DNS ของ Google ตามหลักแล้ว ผมควรจะไป Resolve ที่ Google แต่ว่า TOT ที่เป้น Network ต้นทางของผม สามารถมองเห็นว่า ผมกำลังจะไปขอ DNS ที่ Google เค้าสามารถสั่งเลี้ยว การทำ DNS Request ของผมจากที่จะไปถาม Google ให้เลี้ยวไปที่ๆเค้าต้องการได้เลย
และจากที่การผมย้าย DNS ไปหลายที่ ผลก็คือยังเข้า youtube ไม่ได้ เลยทำให้แน่ใจว่า
TOT ทำการ Redirect DNS Request ของผมที่ผมชี้เป้าไปยัง Public DNS อย่าง 8.8.8.8 หรือ 1.1.1.1 เข้าไปหา DNS Server ของตัวเองแน่นอน
แล้วขั้นตอนนี้ผมจะแก้ไขยังไงดี แก้ DNS Server กี่ทีก็ไม่หาย?
Mikrotik เวอร์ชั่นใหม่ จะรองรับ Feature ทาง Network ตัวนึงที่ชื่อว่า DoH (DNS Over HTTPS) หรือการทำ DNS Request บน Protocol HTTPS ซึ่งมันจะเข้ารหัสได้ครับ
ผมลองย้าย DNS Service ของผมไปถามบน DoH ของ Cloudflare
ปรากฏว่าใช้งานได้เลย จริงๆเรื่อง TOT ทำการ redirect DNS ก็ไม่น่าแปลกใจ เพราะเค้าเป็น ISP ของรัฐ ที่ต้องการ Block เว็บห้ามเข้าต่างๆนาๆมากมายอยู่แล้วครับ
แก้ปัญหาลูกค้าไปได้อีกหนึ่งเรื่อง จบข่าว
Update เพิ่มเติม สำหรับคนที่สงสัยว่าทำไมเปิด Safari แล้วเข้าได้ ทำไม Chrome เข้าไม่ได้ สาเหตุก็เพราะว่าใน Safari ver ใหม่ ทาง Apple ได้ใส่ ระบบที่ชื่อว่า DoT (DNS over TLS เป็นแบบเดียวกับ DoH ครับ แต่คนละมาตรฐานกัน) แล้วเปิดใช้งานมาให้เลย ซึ่ง สำหรับ Google Chrome และ Firefox ก็มี DoH ใส่มาให้เลย เหมือนกัน แต่ไม่ได้เปิดใช้งานเป็น Default ครับผม
ทีนี้ พอ Safari สามารถเปิดเว็บได้โดยที่ไม่โดน TOT ดัก ก็เลยทำให้ในเครื่องมีค่าที่เรียกว่า DNS Cache .. บันทึกเอาไว้แล้วว่า “www.youtube.com” อยู่ที่ IP ไหน พอเอา Chrome มาเปิด ก็สามารถเข้าได้เลยนั่นเองครับ