ค้นหาเว็บไซต์

การตั้งค่าแคชเซิร์ฟเวอร์ DNS ใน Ubuntu Server 14.04


บริการชื่อโดเมน (DNS) เป็นบริการตั้งชื่อที่จับคู่ที่อยู่ IP และชื่อโดเมนแบบเต็มเข้าด้วยกัน คอมพิวเตอร์ที่ใช้ DNS เรียกว่าเนมเซิร์ฟเวอร์

ที่นี่ ฉันได้ติดตั้งและกำหนดค่าเซิร์ฟเวอร์แคชโดยใช้ตัวส่งต่อ การค้นหาแบบส่งต่อ และการค้นหาแบบสำรอง ในสถานที่ส่วนใหญ่ เราต้องการการค้นหากำลังสำรอง เซิร์ฟเวอร์แคชจะไม่เก็บชื่อโดเมนใด ๆ แต่จะทำงานเป็นเซิร์ฟเวอร์พอยต์เท่านั้น ก่อนที่จะเจาะลึกเราจำเป็นต้องรู้เกี่ยวกับเซิร์ฟเวอร์ DNS และวิธีการทำงาน

DNS คืออะไร?

นี่เป็นวิธีง่ายๆ ในการทำความเข้าใจ DNS และวิธีการทำงาน

หากเราจำเป็นต้องเข้าถึง linux-console.net ในเบราว์เซอร์ ระบบจะค้นหา linux-console.net ที่ส่วนท้ายของ .com จะมี (.) แล้วนี่คืออะไร ?

(.) แสดงถึงเนมสเปซเซิร์ฟเวอร์รูท มีเซิร์ฟเวอร์รูททั้งหมด 13 เซิร์ฟเวอร์ที่พร้อมใช้งานทั่วโลก ขณะที่เราเข้าถึง linux-console.net ระบบจะถามชื่อเซิร์ฟเวอร์ตามการกำหนดค่าระบบปฏิบัติการ ใน Ubuntu เราเคยกำหนดค่าเนมเซิร์ฟเวอร์ใน /etc/resolv.conf ในขณะที่เข้าถึง linux-console.net เบราว์เซอร์ของฉันจะถามถึงรูทเนมเซิร์ฟเวอร์ ถ้าเนมเซิร์ฟเวอร์รูทไม่ทำ มีข้อมูลโดเมนที่ฉันร้องขอ มันจะแคชข้อมูลที่ร้องขอของฉันและส่งต่อคำขอของฉันไปยัง (TLD) โดเมนระดับบนสุด เนมเซิร์ฟเวอร์ แม้ในเซิร์ฟเวอร์ชื่อ TLD คำขอของฉันก็ไม่ใช่ พร้อมใช้งาน โดยจะถูกแคชและส่งต่อไปยังเนมเซิร์ฟเวอร์ ผู้มีอำนาจ

ในขณะที่การจดทะเบียนโดเมน ผู้ลงทะเบียนโดเมนของเราจะกำหนดว่าโดเมนของเราควรใช้เนมเซิร์ฟเวอร์ที่เชื่อถือได้ใด ดังนั้น เนมเซิร์ฟเวอร์ที่เชื่อถือได้จะมีข้อมูลโดเมนของเรา ในขณะที่คำขอของเราไปถึง ANS ก็จะตอบกลับการสืบค้นที่ linux-console.net มี 111.111.222.1 ในเวลาเดียวกัน แคชไว้ในเนมเซิร์ฟเวอร์ที่เชื่อถือได้และส่งคำขอกลับไปยังเบราว์เซอร์ ทุกขั้นตอนข้างต้นเสร็จสิ้นภายในมิลลิวินาที

หวังว่าตอนนี้คุณคงเข้าใจแล้วว่า DNS คืออะไร และมันทำงานอย่างไร ตอนนี้ให้เราตั้งค่า แคชเซิร์ฟเวอร์ DNS ใน Ubuntu Server 14.04 LTS

ขั้นตอนที่ 1: การติดตั้งเซิร์ฟเวอร์ DNS

ขั้นแรก โปรดดูข้อมูลเซิร์ฟเวอร์ DNS ในเครื่องของฉัน เช่น ที่อยู่ IP แบบคงที่และชื่อโฮสต์ ซึ่งใช้เพื่อจุดประสงค์ในบทความนี้

IP Address:	192.168.0.100
Hostname:	dns.tecmintlocal.com

เพื่อตรวจสอบว่าการตั้งค่าข้างต้นถูกต้อง เราสามารถใช้คำสั่ง 'hostnamectl' และ 'ifconfig'

hostnamectl
ifconfig eth0 | grep inet

ต่อไป เราจะอัปเดตพื้นที่เก็บข้อมูลเริ่มต้นและดำเนินการอัปเกรดระบบ ก่อนที่จะตั้งค่าเซิร์ฟเวอร์แคช DNS

sudo apt-get update && sudo apt-get upgrade -y

ตอนนี้ ให้ติดตั้งแพ็คเกจ DNS bind และ dnsutils โดยใช้คำสั่งต่อไปนี้

sudo apt-get install bind9 dnsutils -y

เมื่อติดตั้ง DNS แล้ว ให้ย้ายไปยังไดเร็กทอรีการกำหนดค่าการเชื่อมโยงภายใต้ /etc/bind

/etc/bind/
ls -l

ขั้นตอนที่ 2: การตั้งค่าเซิร์ฟเวอร์แคช DNS

ก่อนอื่น เราตั้งค่าและกำหนดค่าเซิร์ฟเวอร์แคชที่นี่ เปิดและแก้ไขไฟล์ named.conf.options โดยใช้โปรแกรมแก้ไข vim

sudo vim named.conf.options

ตอนนี้ คำว่า 'ผู้ส่งต่อ' ใช้เพื่อแคชคำขอชื่อโดเมน ดังนั้น เราจะใช้เราเตอร์ของฉันเป็นตัวส่งต่อ ยกเลิกการใส่เครื่องหมาย // ที่อยู่ด้านหน้าบรรทัดตามที่แสดงในภาพ

forwarders {
        192.168.0.1;
        };

บันทึกและออกจากไฟล์โดยใช้ wq! ตอนนี้ถึงเวลาที่จะเริ่มเซิร์ฟเวอร์การผูกสำหรับการทดสอบเล็กๆ น้อยๆ

sudo /etc/init.d/bind9 start

หากเราต้องทดสอบว่าแคชทำงานหรือไม่ เราสามารถใช้ คำสั่ง dig และตรวจสอบว่าแคชทำงานหรือไม่

ตัวอย่างเช่น เราจะขุด ubuntu.com ตอนนี้ ในตอนแรกมันจะไม่เป็นแคช ดังนั้นอาจใช้เวลาสักครู่หนึ่งมิลลิวินาที เมื่อแคชแล้ว มันจะเร็วปานสายฟ้า

dig @127.0.0.1 ubuntu.com

คำสั่ง dig เป็นเครื่องมือสำหรับการค้นหา DNS หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง Dig โปรดอ่านหัวข้อด้านล่าง

  1. 10 ตัวอย่างคำสั่ง Dig ที่เป็นประโยชน์

ในภาพด้านบนนี้ ในตอนแรกที่ขุดใช้เวลา 1965 มิลลิวินาทีในการสืบค้น และแสดงว่า ipaddress ใดที่เชื่อมโยงกับ ubuntu.com

ให้เราลองขุดอีกครั้งและดูเวลาสืบค้น

เจ๋ง! ในการลองครั้งที่สองเราได้รับข้อความค้นหาภายใน 5 มิลลิวินาที หวังว่าคุณจะรู้ว่าเซิร์ฟเวอร์แคชคืออะไรตอนนี้ ภาพด้านบนแสดงให้เห็นว่าเซิร์ฟเวอร์รูททั้งหมด 13 กำลังแคช Ubuntu.com เนื่องจากมีผู้คนนับล้านเข้าถึงเว็บไซต์อย่างเป็นทางการของ Ubuntu แล้ว

ขั้นตอนที่ 3: การตั้งค่าเซิร์ฟเวอร์ DNS หลัก

สร้าง MASTER DNS Server ฉันกำลังกำหนดชื่อโดเมนเป็น tecmintlocal.com แก้ไขไฟล์ named.conf.local โดยใช้ vim editor

sudo vim /etc/bind/named.conf.local

ป้อนรายการ DNS-Master ดังที่แสดงด้านล่าง

zone "tecmintlocal.com" {
        type master;
        file "/etc/bind/db.tecmintlocal.com";
        };
    1. โซน: รายละเอียดโฮสต์ในโดเมน

.

  1. ประเภท: DNS หลัก
  2. ไฟล์: ตำแหน่งในการจัดเก็บข้อมูลโซน

สร้างไฟล์โซน db.tecmintlocal.com (การค้นหาล่วงหน้า) จากการทำสำเนาจาก db.local

sudo cp db.local db.tecmintlocal.com

ตอนนี้เปิดและแก้ไขไฟล์โซนที่คัดลอกโดยใช้โปรแกรมแก้ไขเป็นกลุ่ม

sudo vim db.tecmintlocal.com

จากนั้น ให้เพิ่มรายการตัวอย่างต่อไปนี้ ซึ่งฉันได้ใช้เพื่อวัตถุประสงค์ในการสอน ฉันใช้แบบเดียวกันนี้กับการตั้งค่าเครื่องเสมือนอื่นๆ ด้วย แก้ไขรายการด้านล่างตามความต้องการของคุณ

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     tecmintlocal.com. root.tecmintlocal.com. (
                     2014082801         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.tecmintlocal.com.
ns      IN      A       192.168.0.100

clt1    IN      A       192.168.0.111
ldap    IN      A       192.168.0.200
ldapc   IN      A       192.168.0.211
mail    IN      CNAME   clt1.tecmintlocal.com.

บันทึกและออกจากไฟล์โดยใช้ wq!

สุดท้ายให้รีสตาร์ทบริการผูก DNS โดยใช้คำสั่งด้านล่าง

 
sudo service bind9 restart

เราจำเป็นต้องยืนยันว่าการตั้งค่าโซนด้านบนของเราใช้งานได้หรือไม่ ให้เราตรวจสอบโดยใช้คำสั่ง dig รันคำสั่งดังต่อไปนี้จากแบบสอบถาม localhost

dig @127.0.0.1 mail.tecmintlocal.com

มา ping และทดสอบ clt1.tecmintlocal.com กัน ก่อนหน้านั้นเราจำเป็นต้องเปลี่ยนรายการเซิร์ฟเวอร์ DNS เป็น localhost ในเครื่องเซิร์ฟเวอร์ DNS ของเรา และรีสตาร์ทเครือข่ายเพื่อให้มีผล .

เปิดและแก้ไขการตั้งค่าอินเทอร์เฟซเครือข่ายและป้อนรายการ DNS

sudo vim /etc/network/interfaces

เปลี่ยนรายการ DNS ในอินเทอร์เฟซดังต่อไปนี้

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
        address 192.168.0.100
        netmask 255.255.255.0
        gateway 192.168.0.1
        network 192.168.0.0
        broadcast 192.168.0.255
        dns-nameservers 127.0.0.1
	    dns-search tecmintlocal.com

หลังจากเพิ่มรายการแล้ว ให้รีสตาร์ทเครือข่ายโดยใช้คำสั่งต่อไปนี้

sudo ifdown eth0 && sudo ifup eth0

หากการรีสตาร์ทเครือข่ายไม่มีผล เราต้องทำการรีสตาร์ท ตอนนี้เรามา ping และตรวจสอบ clt1.tecmintlocal.com ในขณะที่มันตอบกลับ เราจำเป็นต้องได้รับที่อยู่ IP ที่เรากำหนดไว้สำหรับชื่อโฮสต์ clt1

ping clt1.tecmintlocal.com -c 3

การตั้งค่าการค้นหา DNS แบบย้อนกลับ

เปิดและแก้ไขไฟล์ named.conf.local อีกครั้ง

sudo vim /etc/bind/named.conf.local

ตอนนี้เพิ่มรายการค้นหา DNS แบบย้อนกลับต่อไปนี้ดังที่แสดง

zone "0.168.192.in-addr.arpa" {
        type master;
        notify no;
        file "/etc/bind/db.tecmintlocal192";
        };

บันทึกและออกจากไฟล์โดยใช้ wq! ตอนนี้ให้สร้างไฟล์ db.tecmintlocal192 ตามที่ฉันได้กล่าวถึงในไฟล์หลักด้านบนสำหรับการค้นหาแบบย้อนกลับ ให้คัดลอก db.127 ไปที่ db.tecmintlocal192 โดยใช้คำสั่งต่อไปนี้

sudo cp db.127 db.tecmintlocal192

ตอนนี้ ให้เปิดและแก้ไขไฟล์ db.tecmintlocal192 เพื่อตั้งค่าการค้นหาแบบย้อนกลับ

sudo vim db.tecmintlocal192

ป้อนข้อมูลต่อไปนี้ตามด้านล่าง แก้ไขรายการด้านล่างตามความต้องการของคุณ

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.tecmintlocal.com. root.tecmintlocal.com. (
                        2014082802      ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.
100     IN      PTR     ns.tecmintlocal.com.

111     IN      PTR     ctl1.tecmintlocal.com.
200     IN      PTR     ldap.tecmintlocal.com.
211     IN      PTR     ldapc.tecmintlocal.com.

เริ่มบริการผูกใหม่โดยใช้

ตอนนี้ ตรวจสอบรายการค้นหาสำรอง

host 192.168.0.111

แม้ว่าเราจะค้นหาแบบย้อนกลับโดยใช้ที่อยู่ IP ดังที่แสดงด้านบน แต่ต้องการตอบกลับด้วยชื่อตามที่แสดงไว้ด้านบน

มาตรวจสอบโดยใช้คำสั่ง dig กัน

dig clt1.tecmintlocal.com

ที่นี่ เราจะเห็น คำตอบ สำหรับ ข้อความค้นหาในส่วนคำตอบ ของเรา เนื่องจากชื่อโดเมน clt1.tecmintlocal.com มีที่อยู่ IP 192.168.0.111.

ขั้นตอนที่ 4: การตั้งค่าเครื่องไคลเอนต์

เพียงเปลี่ยนที่อยู่ IP และรายการ DNS ในเครื่องไคลเอนต์เป็นเซิร์ฟเวอร์ DNS ในพื้นที่ของเรา 192.168.0.100 หากเป็นเช่นนั้น เครื่องไคลเอนต์ของเราจะได้รับชื่อโฮสต์ที่กำหนดจากเซิร์ฟเวอร์ DNS ในพื้นที่

ให้เราตรวจสอบชื่อโฮสต์ของไคลเอนต์ของเราโดยใช้ชุดคำสั่งต่อไปนี้

ifconfig eth0 | grep inet
hostname	
dig -x 192.168.0.100

ทำความเข้าใจเกี่ยวกับรายการไฟล์โซนใน DNS รูปภาพนี้จะให้คำอธิบายเล็กๆ น้อยๆ เกี่ยวกับสิ่งที่เรากำหนดไว้ในรายการไฟล์โซน

แค่นั้นแหละ! ในบทความนี้ เราได้เห็นวิธีตั้งค่าเซิร์ฟเวอร์ DNS ในเครื่องสำหรับใช้ในสำนักงานหรือที่บ้านแล้ว

ในไม่ช้าคุณสามารถอ่านบทความเกี่ยวกับวิธีแก้ปัญหาเซิร์ฟเวอร์ DNS โดยใช้เครื่องมือต่าง ๆ และแก้ไขได้ มีเครื่องมือมากมายที่ใช้ในการแก้ไขปัญหาเซิร์ฟเวอร์ DNS อ่านบทความด้านล่างเพื่อทราบเคล็ดลับการแก้ปัญหาบางประการ

8 คำสั่ง Nslookup สำหรับการแก้ไขปัญหา DNS