Category: DNS


1) Download BIND for Windows ได้จากที่นี่ ftp://ftp.nominum.com/pub/isc/bind9/ ของผมเลือกเวอร์ชั่น 9.10.3
dig_win10_1a

และเนื่องจากผมใช้ Windows 10 64-bit จึงเลือก x64 (ไม่ต้องเลือกอันที่เป็น debug นะครับ)
dig_win10_1b

2) เมื่อโหลดมาแล้วก็แตกไฟล์ zip จะพบไฟล์ดังต่อไปนี้

dig.exe
host.exe
libbind9.dll
libdns.dll
libeay32.dll
libisc.dll
libisccfg.dll
liblwres.dll
libxml2.dll

ให้ copy ไปไว้ที่ C:\Windows\System32

3) ถ้าใครยังไม่ได้ติดตั้ง Microsoft Visual C++ Redistributable package จำเป็นต้องลงด้วย หลายเครื่องน่าจะติดตั้งจากโปรแกรมอื่นแล้วสามารถข้ามได้ แต่ถ้าไม่มีสามารถติดตั้งได้จาก zip ที่ดาวน์โหลดมาได้เลยครับ สำหรับเครื่องผมมีอยู่แล้วข้ามได้
คำแนะนำของผมคือข้ามไปก่อน ถ้า error ค่อยมาลง
dig_win10_3

4) เท่านี้เราก็สามารถเรียกใช้งาน dig ได้แล้วครับ
dig_win10_4

เครดิต
http://www.blog.paranoidpenguin.net/2014/09/how-to-install-dig-on-a-windows-8-1-64-bit-system/
https://samsclass.info/40/proj/digwin.htm

Advertisement

Edit DNS Configure at THNIC

นอกเนื่องการการตั้งค่า DNS ที่ BIND หรือ Windows Server ของเราแล้ว ยังต้องมีการกำหนดค่าที่ฝั่งของผู้จดทะเบียน DNS ด้วย ในกรณีที่ใช้ .th จะอยู่ในความดูแลของ THNIC ครับ

การแก้ไข DNS ที่ THNIC สามารถทำได้ง่ายๆ ดังนี้
1) เปิดเวปบราวเซอร์ไปที่ https://www.thnic.co.th/
2) เลือก Member Login
THNIC_DNS_2
3) กรอกข้อมูล user และ password
THNIC_DNS_3
4) เลือกแก้ไข DNS
THNIC_DNS_4
5) ใส่ค่าที่ต้องการลงไป เลือก checkbox ว่าใช่ และกด Continue
THNIC_DNS_5
6) เท่านี้ก็เรียบร้อยแล้วครับ ที่เหลือก็คือรอให้ THNIC refresh ค่า DNS Zone และรอให้ cache ใน DNS server อื่นๆ expire ก็ใช้ได้ครับ ผมลองทดสอบกับ google DNS (8.8.8.8) พบว่ารอไม่ถึง 5 นาทีก็ใช้ได้แล้วครับ

เราสามารถหาที่อยู่ของ Microsoft KMS server ได้ง่ายๆ ด้วยคำสั่ง

nslookup -type=srv _vlmcs._tcp.modplusplus.com

อย่าลืมแทนที่ชื่อโดเมน modplusplus.com ด้วยชื่อโดเมน AD ของคุณนะ

ผลลัพธ์ก็จะคล้ายๆ แบบนี้

Server:  dc1.modplusplus.com
Address:  192.168.1.123

_vlmcs._tcp.modplusplus.com  SRV service location:
          priority      = 0
          weight        = 0
          port          = 1688
          svr hostname  = kms02.modplusplus.com
kms02.modplusplus.com   internet address = 192.168.1.124

ดังนั้น KMS server ตามตัวอย่างก็คือ kms02.modplusplus.com นั่นเองครับ

DNS TTL คืออะไร

TTL ของ DNS จะคล้ายกับ TTL ที่ใช้ในเครือข่ายไอพี คือเป็นตัวบอกอายุของ DNS record มีหน่วยเป็นวินาทีครับ จุดทีมีผลกระทบกับเราผู้ใช้งานอินเทอร์เน็ตคือ เป็นค่าที่บอกให้ DNS server ของ ISP ที่เราใช้อยู่จะเก็บแคช (Cache) ของ DNS record ไว้นานแค่ไหน ซึ่งหากกำหนดค่าไว้นานๆ ก็ไม่ต้องถามกันบ่อยๆ ทำให้ DNS server โหลดไม่สูง แต่ก็มีข้อเสียคือหากเปลี่ยน IP ก็ต้องรอให้ cache expired ซะก่อน

และตัวนี้เองก็เป็นเหตุผลที่บอกกันว่าถ้าจะย้ายเวปจาก colo เจ้าเดิมไปเจ้าใหม่ต้องรอ 2-3 วันจึงจะดำเนินการเสร็จ เพราะโดยทั่วไปแล้วหลายๆ Colo ที่เค้ามักจะกำหนด TTL ไว้เป็นหลักวันครับ

หากต้องการทดสอบว่าโดเมนที่เราสนใจสามารถใช้คำสั่ง

nslookup -qt=soa ชื่อโดเมน

ตัวอย่างเช่น

nslookup -qt=soa modplusplus.com

Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Non-authoritative answer:
modplusplus.com
        primary name server = ns1.wordpress.com
        responsible mail addr = hostmaster.wordpress.com
        serial  = 2005071858
        refresh = 14400 (4 hours)
        retry  = 7200 (2 hours)
        expire  = 604800 (7 days)
        default TTL = 300 (5 mins)

แสดงให้เห็นว่าโดเมน modplusplus.com มีค่า TTL 300 วินาที หากภายใน 300 วินาทีมีไคลเอนท์มาถาม DNS server ที่ ISP อีกก็จะตอบค่าเดิมได้เลย แต่หากพ้น 300 วินาทีแล้ว DNS server ที่ ISP จำเป็นต้องวิ่งมาถามที่ ns1.wordpress.com ใหม่ครับ

หากเราต้องการตั้ง Public DNS แล้วไม่ต้องการให้ DNS ของเราเป็น Open DNS คือให้คนอื่นมาถามหาโดเมนอื่นหรือปิด recursive query นั่นเอง ข้อดีคือจะทำให้ CPU, RAM, และ network load ลดลง สามารถทำได้โดย
1) เลือก Start -> Administrative Tools -> DNS

2) คลิกขวาที่ชื่อเครื่อง DNS ที่ต้องการ แล้วเลือก Properties

3) ไปที่แท๊ป Advanced แล้วเลือก Disable Recursion จากนั้นกด OK

หากต้องการเปิด recursive query อีกครั้ง ก็แค่เอาเครื่องหมายถูกหน้า Disable Recursion ออกเท่านั้นเอง

DNS MX record หรือ Mail Exchanger Record เป็นข้อมูล DNS ชนิดหนึ่ง ซึ่งแทนที่จะใช้แปลงจาก Name เป็น IP เหมือนกับ DNS A record ทั่วไป แต่ MX record จะเป็นตัวบอกว่าเมล์เซิร์ฟเวอร์ของโดเมนของเราอยู่ที่เครื่องไหน เช่นหากต้องการรู้ว่า MX record ของโดเมน microsoft.com คือเครื่องไหนให้ใช้คำสั่ง

nslookup -qt=mx hotmail.com

จะมีผลลัพธ์แบบนี้

microsoft.com MX preference = 10, mail exchanger = mail.messaging.microsoft.com

หมายความว่า อีเมล์ที่ส่งหาโดเมน microsoft.com จะส่งไปที่เครื่องเซิร์ฟเวอร์ mail.messaging.microsoft.com หากอยากดูโดเมนอื่นก็ใส่โดเมนเข้าไปท้ายคำสั่งแทน


ซึ่งหากมี MX หลายๆ ตัวก็จะได้แบบนี้

hotmail.com MX preference = 5, mail exchanger = mx4.hotmail.com
hotmail.com MX preference = 5, mail exchanger = mx1.hotmail.com
hotmail.com MX preference = 5, mail exchanger = mx2.hotmail.com
hotmail.com MX preference = 5, mail exchanger = mx3.hotmail.com



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

nectec.or.th MX preference = 20, mail exchanger = maildr.nectec.or.th
nectec.or.th MX preference = 10, mail exchanger = imail.nectec.or.th

เวลาทำงานเมล์เซิร์ฟเวอร์ต้นทางจะพยายามส่งไป imail ก่อน หากไม่สำเร็จจะส่งต่อไปยัง maildr


ตัวอย่างข้างล่างเป็น combo set หลายๆ MX ที่มี preference เท่ากัน และ preference ต่างกัน

ironport.com MX preference = 10, mail exchanger = soma-c601.ironport.com
ironport.com MX preference = 20, mail exchanger = soma-c602.ironport.com
ironport.com MX preference = 20, mail exchanger = cas1-c604.ironport.com
ironport.com MX preference = 10, mail exchanger = cas1-c603.ironport.com



เราสามารถเอามาประยุกต์ใช้กับการเปลี่ยน IP ของเมล์เกตเวย์หรือย้าย ISP ได้ด้วยนะครับ
สมมุติปัจจุบันเรามี MX เป็น

example.com MX preference = 30, mail exchanger = oldisp.example.com

สิ่งที่ต้องทำคือสร้าง MX เพิ่มล่วงหน้าซัก 1-2 วันก่อนเปลี่ยน และให้ preference น้อยกว่า

example.com MX preference = 30, mail exchanger = oldisp.example.com
example.com MX preference = 20, mail exchanger = newisp.example.com

ซึ่งระหว่างที่ยังใช้ IP เดิม ก็จะพยายามส่งมาที่ newisp.example.com แต่ไม่มีใครตอบ จึงพยายามส่งอีกครั้งไป oldisp.example.com และเมื่อเปลี่ยนมาใช้ IP ใหม่ ก็จะส่งเข้า newisp.example.com ได้เลย
และหลังจากที่เปลี่ยน ISP เรียบร้อยแล้ว มั่นใจว่าจะไม่ย้ายกลับก็ลบของเดิมออกได้ครับ

example.com MX preference = 20, mail exchanger = newisp.example.com

นอกจากนี้หากไม่ต้องการรอนานหลักวันอาจลดค่า TTL ของ MX record ให้เหลือเป็นหลักสิบนาที เพื่อให้ DNS server ในอินเทอร์เน็ตลดเวลาที่เก็บใน local cache ทำให้ผู้อื่นเห็นข้อมูลใหม่เร็วขึ้นก็ได้ครับ แต่จะมีโหลดเพิ่มขึ้นที่ DNS server ของเราได้ ทำให้บางครั้ง ISP อาจไม่ยอมคอนฟิกค่า TTL ให้ครับ