วันศุกร์ที่ 18 เมษายน 2014
Text Size
   

สร้าง DNS Record อัตโนมัติ ใน Bind9 กัน

ปัญหามีอยู่ว่า ผมมีเครื่องโหนด สำหรับสร้าง Virtual Machine จำนวน 400 เครื่อง และ DNS Record ใหม่จะต้องถูกสร้างเมื่อมีการสร้าง VM และ Start VMs เรียบร้อยแล้ว Sub Domain (Public DNS) ที่ได้ ลูกค้าสามารถนำ Public DNS นี้ไปใช้งานโดยการชี้ Record CNAME มายังเครื่อง VMs การสร้าง DNS Record ในลักษณะนี้ทำได้หลายวิธี ตั้งแต่การจัดการด้วยมือ, Script, Monitoring Script, myDNS ซึ่งแล้วแต่ละเลือกใช้ ซึ่งในแต่ละวิธีก็ใช้พลังภายในเยอะพอสมควร ผมมีวิธีง่ายๆ ในการสร้าง DNS Record โดยใช้ Generate Directive กันครับ จากตัวอย่าง VMs ทั้งหมดจะได้ IP Address จากการกำหนดจาก Virtual Network ซึ่งส่วนใหญ่เป็น Range IP ทั้ง Public IP และ Private IP (มีการ์ด 2 ใบ ที่เครื่องโหนด) ดังนั้น เราสามารถสร้าง DNS Zone ที่กำหนด Private และ Public IP ได้ แต่ Record ต้องไล่ใส่ลงไปตาม Range IP ที่กำหนด ได้ใน Virtual Network ซึ่งถ้าจะใส่ให้ครบทุก IP ก็คงมือหงิกกันเลยทีเดียว

?


Bind9 มี Generate Directive ที่เราสามารถใช้งานได้ โดยกำหนด Rage ของ IP Address และรูปแบบที่ต้องการได้ มาดูตัวอย่างกัน VM จะถูก Config ด้วย Private IP จาก Virtual Network (Private Network) และ Public IP จาก Virtual Network (Public Network) นั่นหมายความว่า VMs ทุกตัวจะมี 2 ขา DNS Zone ก็จะมี 2 ชุดคือ Private DNS และ Public DNS ดังนี้

ในส่วน Private DNS จะมี Domain ดังนี้

private-192-168-2-1.example.com. A 192.168.2.1

private-192-168-2-2.example.com. A 192.168.2.2

private-192-168-2-3.example.com. A 192.168.2.3

...

ส่วน Public DNS จะมี Domain ดังนี้

cloud-172-16-19-1.example.com. A 172.16.19.1

cloud-172-16-19-2.example.com. A 172.16.19.2

cloud-172-16-19-3.example.com. A 172.16.19.3

...

ทีนี้เรามา config Bind กัน ในส่วน Private DNS กำหนด Generate Directive ดังนี้

$GENERATE 1-255 private-192-168-2-$.example.com A 192.168.2.$

ส่วน Public DNS กำหนด Generate Directive ดังนี้

$GENERATE 1-255 cloud-172-16-19-$.example.com A 172.16.19.$

หากคุณทราบ IP Address ในส่วน Private IP และ Public IP คุณก็สามารถอ้างอิงจาก Sub Domain ได้แล้ว ยกตัวอย่างเช่น VM ชื่อ ubuntu-mail-server มี Private IP และ Public IP เป็น 192.168.2.23, 172.16.19.35 คุณสามารถใช้ Domain ชื่อ private-192-168-2-23.example.com และ public-172-16-19-35.example.com ใช้อ้างอิงได้ :)

อ่านเพิ่มเติมได้ที่ - http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.ch06.html#id2566761

ที่มา : http://www.thaiopensource.org/howto/สร้าง-dns-record-อัตโนมัติ-ใน-bind9-กัน