Header-sellsuki.webp
S E L L S U K I

DNS ของ Macbook กับวิธีแก้ปัญหาในการเชื่อมต่อ VPN


14 Oct 2022

Share with :
0
DNS Macbook เชื่อมต่อ VPN

สำหรับการทำงานในสายงาน SRE การใช้อุปกรณ์ในการทำงานอย่าง Macbook ก็ถือว่าเป็นตัวเลือกที่ใครหลาย ๆ คนเลือกที่จะใช้ แต่เชื่อว่าผู้คนส่วนใหญ่ เคยประสบปัญหายอดฮิตปวดหัวมามากกับ DNS ใน Macbook เพราะการทำงานของ DNS request ใน Macbook นั้นไม่เหมือนกับ Window และยังส่งผลให้เชื่อมต่อ VPN ยากอีก…อย่าเพิ่งหมดหวังเพราะวันนี้น้องสุกิหาวิธีมาช่วยแก้ปัญหาให้เพื่อน ๆ แล้ว แต่ก่อนอื่นเราไปทำความรู้จักในส่วนต่าง ๆ กันก่อนเลยดีกว่า!!

การทำงานของ DNS

DNS คืออะไร

ต้องบอกก่อนเลยว่า DNS ย่อมาจากคำว่า Domain Name Server ก็คือคอมพิวเตอร์ที่ทำหน้าที่ในการเก็บ IP ของแต่ละเว็บไซต์ เพราะทุกครั้งที่เราเข้าเว็บไซต์ด้วยการพิมพ์ www ตามด้วยชื่อเว็บนั้น ตัว DNS จะแปลงจากชื่อเว็บไซต์ไปเป็นหมายเลข IP เพื่อนำเราไปยัง Server ที่เป็นที่อยู่ของเว็บนั้นๆ เช่น พอเราพิมพ์ที่อยู่ของเซลซูกิ sellsuki.co.th ลงไปในเว็บ เบราว์เซอร์ก็จะไปถาม DNS ว่า “สวัสดี หมายเลขที่อยู่ของ Sellsuki.co.th คือหมายเลขอะไรเหรอ?” DNS ก็จะตอบกลับมาว่า “หมายเลข 203.xxx.xxx.x ยังไงล่ะ” จากนั้นเบราว์เซอร์ก็จะติดต่อไปยังหมายเลขดังกล่าว เพื่อโหลดหน้าเว็บของเซลซูกิมาให้เรา

VPN คืออะไร

VPN ย่อมาจากคำว่า virtual private network หากแปลเป็นไทยแบบตรงตัวก็คือ “เครือข่ายส่วนตัวเสมือน” ซึ่งคนทั่วไปอาจจะอ่านหรือฟังแล้วรู้สึกไม่ค่อยเข้าใจถ้าให้จะอธิบายง่าย ๆ VPN คือเน็ตจำลองส่วนตัวที่เป็นระบบเครือข่ายอย่างหนึ่งเป็นรูปแบบเดียวกับอินเตอร์เน็ตที่เราใช้ ๆ กันอยู่นั่นเอง แต่เพียงการนำมาใช้งานนั้นจะมีความแตกต่างกันกันอยู่นั่นคือ อินเตอร์เน็ตที่เราใช้ทั่วไปจะมีลักษณะเครือข่ายสาธารณะ เปรียบเสมือนท่อส่งสัญญาณใหญ่ ๆ ส่วน VPN จะเป็นท่อเล็ก ๆ ที่อยู่ภายในท่อใหญ่เหล่านี้อีกที โดยจะมีลักษณะเป็นเครือข่ายส่วนตัว ใครจะขอเข้าหรือส่งออกของข้อมูลไประบบเครือข่ายส่วนตัว VPN นี้ ก็จะต้องมีการใส่รหัสความปลอดภัยนั่นเอง

ความแตกต่างระหว่าง Window กับ Macbook

เวลาที่ Window ตั้งค่า DNS Server ไว้หลายๆ Target มันจะสามารถส่ง Request ไปที่ทุกๆ DNS Server ได้พร้อม ๆ กัน แล้ว DNS Server ไหนที่ตอบกลับมาก่อน Window จะเลือกใช้อันนั้น แต่สำหรับ Macbook นั้น การทำงานของระบบ DNS Request นั้นไม่เหมือนกัน Macbook จะส่ง DNS Request ไปตามลำดับของ DNS Server ที่ตั้งค่าไว้ ถ้า DNS Server แรกยังไม่ตอบหรือยังไม่ Timeout Macbook จะไม่ส่ง DNS Request ไปที่ DNS Server ถัดไป

และเนื่องจากปัญหาข้างต้นของ Macbook จึงทำให้เราไม่สามารถเชื่อมต่อ VPN หลาย ๆ Tunnel พร้อมกันและใช้งานไม่ได้ ถ้า DNS Server ของ Internal Network ของเราไม่ได้ตั้งค่า Public DNS Server ไว้ เราจะไม่สามารถเชื่อมต่อไปที่ Internet ได้อย่างมีประสิทธิภาพ ซึ่งเวลาที่เรากำลังเชื่อมต่อ VPN ใน Macbook จะส่ง DNS Request ไปที่ DNS Server อันใดอันหนึ่งก่อน ทำให้ DNS Record ที่อยู่อีก DNS Server จะใช้เวลานานหรืออาจจะไม่ได้เลยเพราะ Macbook จะต้องรอ Respond จาก DNS Server แรกก่อน

วิธีแก้ปัญหา Macbook ในการเชื่อมต่อ VPN

  1. ติดตั้ง dnsmasq ที่เครื่อง

    • brew install dnsmasq
    • sudo brew services start dnsmasq
  2. ตั้งค่า search domain ที่จำเป็นต้องใช้

    • ในตัวอย่างการตั้งค่าข้างล่างจะเป็นการตั้งค่า domain ที่อยู่ใน DNS Server จาก VPN
    • DNS Record *.example.orgx.domain จะส่ง DNS Request ไปที่ DNS Server x.x.x.x
      #/opt/homebrew/etc/dnsmasq.conf -> dnsmasq --test
      -> sudo brew service restart dnsmasq
      all-servers
      no-resolv
      server=8.8.8.8 -> Default DNS Server for internetaccess
      server=8.8.4.4 -> Default DNS Server for internetaccess
      server=/internal/x.x.x.x
      server=/internal/y.y.y.y
      server=/example.orgx.domain/x.x.x.x
      server=/example.org.domainx/y.y.y.y
      server=/example.orgy.domain/x.x.x.x
      server=/example.org.domainy/y.y.y.y
  3. ปิด nameserver ที่ตั้งค่ามาจาก tunnelblick

    • การตั้งค่าข้างล่างจะ Skip DNS Server ที่จะส่งมาจาก VPN
DNS Macbook
  1. ตั้ง DNS Server ที่ Network Setting
    • ตั้งให้ DNS Request บน Macbook ส่งไปที่ dnsmasq ที่เรา ติดตั้งไว้
DNS Macbook

ทีนี้เราก็สามารถเชื่อมต่อ VPN หลาย ๆ ท่อได้พร้อม ๆ กันแล้ว
เรื่องนี้อาจดูยากสำหรับคนนอกสายอาชีพนี้ไปสักนิด แต่ลองทำตามขั้นตอนที่น้องสุกิหามาให้แล้วล่ะก็ รับรองว่าทำได้แน่นอน

อย่าลืมติดตามน้องสุกิผ่านช่องทางอื่น ๆ ด้วยน้า

Facebook
Youtube
TikTok