จัดการ DNS server ด้วยโปรแกรม bind

จัดการ DNS server ด้วยโปรแกรม bind

จัดการ DNS server  ด้วยโปรแกรม bind

  1. สมมติว่า name server ของ ISP ที่ให้บริการ มีหมายเลข ip คือ 10.0.0.5  และ name server ของเราเป็นเลข 10.0.1.3

    ก่อนติดตั้ง ให้ทดสอบว่า server เครื่องนี้ สามารถท่องอินเทอร์เนตได้อย่างสมบูรณ์

    • ลองใช้ browser ไปที่ www.google.com ว่าใช้งานได้

    • ตรวจสอบดู dns server ที่ตนเองใช้อยู่ในปัจจุบันในแฟ้ม /etc/resolv.conf ด้วยคำสั่งว่า  cat /etc/resolv.conf
      ได้ข้อความประมาณว่า

      nameserver 10.0.0.5

      ตัวอย่างนี้คือระบบเลือกใช้ name server มีหมายเลข ip คือ 10.0.0.5

    • ลองใช้คำสั่งว่า nslookup www.yahoo.com

      Server:         10.0.0.5
      Address:        10.0.0.5#53

      Non-authoritative answer:
      www.yahoo.com   canonical name = www.yahoo.akadns.net.
      Name:   www.yahoo.akadns.net
      Address: 209.191.93.52

  2. โปรแกรม bind ที่ติดตั้งบน linux fedora core 4 จะเป็น name server แบบ caching only คือเป็น name server ที่ไม่ต้องมีการส่งข้อมูลออกไปให้ name server อื่นๆ ทำหน้าที่ไปค้นหา ip จาก name server แต่เพียงอย่างเดียว

    ติดตั้งโปรแกรม bind
    หากเป็น ubuntu ใช้คำสั่ง
    apt-get install bind9 bind9-doc
    สั่งให้ DNS sever ทำงาน ใช้คำสั่ง
    /etc/init.d/bind9 start
    ปรับแต่งค่าต่างๆได้ที่แฟ้ม /etc/bind/named.conf.options
    แล้วสั่งให้ DNS server ทำงานใหม่ด้วยคำสั่ง
    /etc/init.d/bind9 reload

    หากเป็น fedora ใช้คำสั่ง
    yum  install  bind  bind-utils  bind-chroot
    ตั้งให้ทำงานทุกครั้งที่บูทเครื่อง ด้วยคำสั่ง
    chkconfig named on
    สั่งให้ DNS sever ทำงานใช้คำสั่ง
    /etc/init.d/named start
    ปรับแต่งค่าได้ที่แฟ้ม /var/named/chroot/etc/named.conf
    แล้วต้องสั่งให้ reload ใหม่ด้วยคำสั่ง
    /etc/init.d/named reload

  3. การทำเป็น name server แบบ forward only
    หากเป็น ubuntu ให้แก้ไขแฟ้ม /etc/bind/named.conf.options
    หากเป็น fedora ให้แก้ไขแฟ้ม /var/named/chroot/etc/named.conf ให้มีข้อมูลประมาณดังตัวอย่าง

    options {
            directory "/var/cache/bind";
    ### หากเป็น ubuntu ใช้ข้อความ  directory "/var/cache/bind";
    ### หากเป็น fedora ใช้ข้อความ  directory "/var/named";
            forward first;
               forwarders {
                    10.0.0.5;
                };
    };

    แก้ไขเสร็จแล้ว ให้สั่ง reload name server ใหม่
    หากเป็น ubuntu ใช้คำสั่ง
    /etc/init.d/bind9 reload
    หากเป็น fedora ใช้คำสั่ง
    /etc/init.d/named reload

    ทดสอบผลงานด้วยคำสั่ง
    nslookup www.yahoo.com 127.0.0.1
    ได้ผลประมาณว่า
    Server:         127.0.0.1
    Address:        127.0.0.1#53

    Non-authoritative answer:
    www.yahoo.com   canonical name = www.yahoo.akadns.net.
    Name:   www.yahoo.akadns.net
    Address: 209.191.93.52

    ถึงตอนนี้แสดงว่า name server ของเราทำงานเป็นแบบ forward only  ได้แล้ว

  4. หากต้องการทำเป็น caching only ด้วยก็ให้ทำต่อคือ
    แก้ไขแฟ้ม /etc/resolv.conf เพิ่มข้อความว่า
    name server 127.0.0.1 ไว้บนบรรทัดแรกสุด ประมาณว่า

    nameserver 127.0.0.1
    nameserver 10.0.0.5

    หมายความว่า ให้เลือก query จากตนเองก่อน หากไม่พบ ก็ไปต่อที่ 10.0.0.5

    แก้ไขแค่นี้ ก็ใช้ได้แล้ว ไม่ต้องไป reload หรือ restart
    รอสัก 2 นาที แล้วลองทดสอบผลงานด้วยคำสั่ง
    nslookup www.yahoo.com
    ได้ผลประมาณว่า
    Server:         127.0.0.1
    Address:        127.0.0.1#53

    Non-authoritative answer:
    www.yahoo.com   canonical name = www.yahoo.akadns.net.
    Name:   www.yahoo.akadns.net
    Address: 209.191.93.52

    แสดงว่าใช้งานได้แล้ว

  5. หากต้องการทำเป็น name server สำหรับบริการทั่วๆไป
    มีตนเองเป็น primary และมี myisp.domain.com เป็น secondary

    หากเป็น ubuntu แก้ไขที่แฟ้ม /etc/bind/named.conf.local
    หากเป็น fedora แก้ไขที่แฟ้ม /var/named/chroot/etc/named.conf 
    ****  ต้องยกเลิกหรือลบบรรทัดข้อความ(ถ้ามี)ว่า
            forward first;   ทิ้งออกไปด้วย
    **** การใส่ comment ใน zone file ให้ใส่เครื่องหมาย ";" นำหน้า
    ให้มีข้อมูล zone และ reserve zone ที่ต้องการ ดังตัวอย่าง
    zone "mydomain.com" {
       type master;
       allow-query { any; };
       file "/etc/bind/my-domain.zone";
    // หากเป็น ubuntu ต้องใส่ path ด้วยว่า file "/etc/bind/my-domain.zone"
    // หากเป็น fedora ไม่ต้องใส่ path เหลือแค่ file "my-domain.zone"
    };
    zone "1.0.10.in-addr.arpa" {
      type master;
      file "10-0-1.zone";
    // หากเป็น ubuntu ต้องใส่ path ด้วยว่า file "/etc/bind/10-0-1.zone"
    // หากเป็น fedora ไม่ต้องใส่ path เหลือแค่ file "10-0-1.zone"
    };

    ต่อไปให้สร้างแฟ้ม zone ต่างๆ
    หากเป็น ubuntu แก้ไขแฟ้ม /etc/bind/my-domain.zone
    หากเป็น fedora แก้ไขแฟ้ม /var/named/chroot/var/named/my-domain.zone
    มีข้อมูลประมาณดังตัวอย่าง
    $TTL    3D
    @               IN SOA  ns.mydomain.com. (
                                            200611146       ; serial (d. adams)
                                            3H              ; refresh
                                            15M             ; retry
                                            1W              ; expiry
                                            1D )            ; minimum
                    NS   ns
                  
    localhost       A       127.0.0.1
    ns               A       10.0.1.3
    myserver1    A       10.0.1.207
    myserver2    A       10.0.1.208

    ต่อไปให้สร้างแฟ้ม reverse zone
    หากเป็น ubuntu แก้ไขแฟ้ม /etc/bind/10-0-1.zone
    หากเป็น fedora แก้ไขแฟ้ม /var/named/chroot/var/named/10-0-1.zone
    มีข้อมูลประมาณดังตัวอย่าง
    $TTL    3D
    @               IN SOA  ns.mydomain.com. (
                                            200611142       ; serial (d. adams)
                                            3H              ; refresh
                                            15M             ; retry
                                            1W              ; expiry
                                            1D )            ; minimum
                    NS   ns
                    NS   mysip.domain.com

    205             PTR     myserver1.mydomain.com.
    207             PTR     myserver1.mydomain.com.

    หากเป็น ubunt ให้ DNS ทำงานด้วยคำสั่ง
    /etc/init.d/bind9 restart

    หากเป็น fedora เมื่อสร้างแฟ้มเสร็จแล้ว ต้องเปลี่ยนสิทธิ์แฟ้มนี้ให้เป็นของ named ด้วยคำสั่ง
    chown named.named /var/named/chroot/var/named/my-domain.zone
    chown named.named /var/named/chroot/var/named/10-0-1.zone
    เสร็จแล้วสั่งให้ DNS ทำงานด้วยคำสั่ง
    /etc/init.d/named restart

ขอบคุณข้อมูลจาก : ศูนย์คอมพิวเตอร์มหาวิทยาลัยสงขลานครินทร์

บันทึกนี้เขียนที่ GotoKnow โดย  ใน ศูนย์การจัดการความรู้ด้าน ICT ครูอุ.คอม [www.krooubon.com : V.2010.1 AddOns Released ]บล



ความเห็น (1)

ครูคอมฯ
IP: xxx.151.232.70
เขียนเมื่อ 

ดีครับ ผมไม่ได้ทำนานแล้วก็ลืมเหมือนกัน พอได้มาอ่านอีกทีก็เริ่มฟื้นความทรงจำกลับมาแล้วครับ พอดีที่โรงเรียนผมใช้ Ubuntu linux เป็น server ครับ ตอนนี้กำลังจะลง Ubuntu 8.04 Server LTS ใหม่ครับเพิ่งได้แผ่นติดตั้งมา (จากอังกฤษ)เดี๋ยวจะลองทำตามบทความของอาจารย์ดูนะครับ ผมก็อยู่โรงเรียนถนนเส้นเดียวกันโรงเรียนทุ่งเทิงฯนี่แหละ แต่อยู่จังหวัดที่มีเรื่องเขาพระวิหารครับ ขอบคุณครับ