- DNS 是計算機域名(Domain Name System)的縮寫,主要功能是將計算機域名與IP地址之間做轉換。執行這一服務的網絡主機就能夠稱做爲DNS服務器,一般咱們都認爲DNS只是將域名轉換成IP地址,而後再使用所查到的IP地址去鏈接(俗稱「正向解析」)。事實上,將IP地址轉換成域名的功能也是常使用到的,(俗稱「逆向解析」)。下面就來用一個假設的域名(www.mageedu.com),ip地址爲172.16.86.1,是本機IP地址,那咱們就用本機來作DNS服務器來說一下DNS的基本配置吧,很簡單的哦。一學就會哦。
- 首先介紹一下基本知識:
- 數據庫中的,每個條目稱做一個資源記錄,資源記錄類型:
- SOA(Start Of Authority): #起始受權記錄
- 格式: ZONE NAME TTL IN SOA FQDN ADMINISTRATOR_MAILBOX (
- serial number:版本號或序列號
- refresh:刷新週期
- retry:重試時間
- expire:過時時長
- nagative ansver TTL:否認答案的緩存時長)
- 如: mageedeu.com 600 IN SOA ns1.mageedu.com. admin.mageedu.com. (
- 2013040101
- 1H
- 5M
- 1W
- 1D )
- 時間單位:M(分鐘)、H(小時)、D(天)、W(周),默認單位是秒
- 郵箱格式:admin@mageedu.com -也能夠寫爲->admin.mageedu.com
- NS(Name Server):#名稱服務器
- 格式: Zone MAIN NAME -->FQDN
- 如: mageedu.com 600 IN NS ns1.mageedu.com.
- ns1.mageedu.com. 600 IN A 172.16.86.1
- MX(Mail eXchanger):#郵件交換器
- 格式: ZONE NAME TTL IN MX pri VALUE
- 優先級:0-99,數字越小級別越高
- 如: mageedu.com. 600 IN MX 10 mail.mageedu.com.
- mail.mageedu.com. 600 IN A 1.1.1.3
- A(address):FQDN-->IPv4 #這裏是由IPv4地址解析到域名
- AAAA(address):FQDN-->IPv6
- PTR(pointer):IP-->FQDN #反向解析由IP解析域名
- CNAME(Canonical NAME):FQDN-->FQDN #別名記錄
- 如 ftp.magedu.com. IN CNAME www.magedu.com.
- 1、 首先要配置yum源,咱們是從本地服務器上下載的,大家能夠用光盤或者鏡像文件掛載本地也是能夠的。咱們就用bind97來介紹一下吧。
- [root@localhost ~]#cd /etc/yum.repos.d
- [root@localhost yum.repos.d]# wget ftp://172.16.0.1/pub/gls/server.repo
- 2、安裝bind97,並添加或修改其主配置文件,咱們這裏就來本身編輯其配置文件。
- [root@localhost yum.repos.d]# rpm -e bind-libs bind-utils
- [root@localhost yum.repos.d]# yum install bind97-libs bind97-utils
- [root@localhost ~]# yum install bind97 -y #安裝bind97主包
- [root@localhost ~]# cd /etc/
- [root@localhost etc]# cat named.conf #查看配置文件
- [root@localhost etc]# mv /etc/named.conf /etc/named.conf.orig #這裏把原有的配置文件重命名或者刪除均可以
- [root@localhost etc]# ll -l /etc/named.conf.orig #查看原配置文件的權限和屬性
- -rw-r----- 1 root named 930 Mar 29 20:03 /etc/named.conf.orig
- [root@localhost etc]# vim named.conf #編輯配置文件 建立緩存名稱服務器
- [root@localhost etc]# chown root:named /etc/named.conf #修改屬主和屬組
- [root@localhost etc]# chmod 640 /etc/named.conf #修改權限
- [root@localhost etc]# named-checkconf #檢查語法是否有錯誤,不報信息就是最好的信息
- [root@localhost etc]# named-checkzone "." /var/named/named.ca
- zone ./IN: has 0 SOA records
- zone ./IN: not loaded due to errors.
- [root@localhost etc]# named-checkzone "localhost" /var/named/named.localhost
- zone localhost/IN: loaded serial 0
- OK
- [root@localhost etc]# named-checkzone "0.0.127.in-addr.arpa" /var/named/named.loopback
- zone 0.0.127.in-addr.arpa/IN: loaded serial 0
- OK
- [root@localhost ~]# service named start #啓動DNS服務器
- Starting named: [ OK ]
- 3、關閉 selinux
- [root@localhost ~]# getenforce #查看當前selinux狀態
- Enforcing #開啓
- [root@localhost ~]# setenforce 0 #關閉selinux
- [root@localhost ~]# getenforce
- Permissive
- [root@localhost ~]# vim /etc/selinux/config #修改配置文件永久有效
- 4、修改DNS服務器地址爲本機地址,並讓它開機自動運行
- [root@localhost ~]# vim /etc/resolv.conf
- nameserver 172.16.86.1
- search localdomain
- [root@localhost ~]# chkconfig --list named
- named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
- [root@localhost ~]# chkconfig named on #用此命令實現開機自動運行DNS服務器
- [root@localhost ~]# chkconfig --list named
- named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- 5、實現正向解析
- [root@localhost named]# vim /etc/named.conf #編輯主配置文件,添加以下內容
- zone "magedu.com" IN {
- type master;
- file "mageedu.com.zone";
- };
- [root@localhost named]#vim mageedu.com.zone #在/var/named目錄下建立文件並編輯文件內容
- $TTL 600
- magedu.com. IN SOA ns1.mageedu.com. admin.mageedu.com. (
- 2013040101
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1.mageedu.com.
- IN MX 10 mail.mageedu.com.
- ns1 IN A 172.16.86.1
- mail IN A 172.16.86.2
- www IN A 172.16.86.1
- ftp IN CNAME www
- [root@localhost named]# chmod 640 mageedu.com.zone
- [root@localhost named]# chown root:namedmageedu.com.zone
- [root@localhost named]# named-checkzone "mageedu.com" /var/named/mageedu.com.zone
- zonemagedu.com/IN: loaded serial 2013040101
- OK
- [root@localhost named]# service named restart #重啓DNS服務
- Stopping named: [ OK ]
- Starting named: [ OK ]
- 測試結果:
- [root@localhost named]# dig -t CNAME ftp.mageedu.com
- ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t CNAME ftp.mageedu.com
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40718
- ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
- ;; QUESTION SECTION:
- ;ftp.mageedu.com. IN CNAME
- ;; ANSWER SECTION:
- ftp.mageedu.com. 600 IN CNAME www.mageedu.com.
- ;; AUTHORITY SECTION:
- mageedu.com. 600 IN NS ns1.mageedu.com.
- ;; ADDITIONAL SECTION:
- ns1.mageedu.com. 600 IN A 172.16.86.1
- ;; Query time: 5 msec
- ;; SERVER: 172.16.86.1#53(172.16.86.1)
- ;; WHEN: Fri Mar 29 21:23:43 2013
- ;; MSG SIZE rcvd: 85
- [root@localhost named]# dig -t NSmagedu.com
- ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t NSmagedu.com
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37572
- ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
- ;; QUESTION SECTION:
- ;mageedu.com. IN NS
- ;; ANSWER SECTION:
- mageedu.com. 600 IN NS ns1.mageedu.com.
- ;; ADDITIONAL SECTION:
- ns1.mageedu.com. 600 IN A 172.16.86.1
- ;; Query time: 13 msec
- ;; SERVER: 172.16.86.1#53(172.16.86.1)
- ;; WHEN: Fri Mar 29 21:24:29 2013
- ;; MSG SIZE rcvd: 63
- [root@localhost named]# dig -t MXmagedu.com
- ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t MXmagedu.com
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57248
- ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
- ;; QUESTION SECTION:
- ;mageedu.com. IN MX
- ;; ANSWER SECTION:
- mageedu.com. 600 IN MX 10 mail.mageedu.com.
- ;; AUTHORITY SECTION:
- mageedu.com. 600 IN NS ns1.mageedu.com.
- ;; ADDITIONAL SECTION:
- mail.mageedu.com. 600 IN A 172.16.86.2
- ns1.mageedu.com. 600 IN A 172.16.86.1
- ;; Query time: 9 msec
- ;; SERVER: 172.16.86.1#53(172.16.86.1)
- ;; WHEN: Fri Mar 29 21:25:02 2013
- ;; MSG SIZE rcvd: 100
- 6、實現反向解析
- [root@localhost named]vim /etc/named.conf
- zone "86.16.172.in-addr.arpa" IN {
- type master;
- file "172.16.86.zone";
- [root@localhost named]# vim 172.16.86.zone
- $TTL 600
- @ IN SOA ns1.mageedu.com. admin.mageedu.com. (
- 2013040101
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1.mageedu.com.
- 1 IN PTR ns1.mageedu.com.
- 1 IN PTR www.mageedu.com.
- 2 IN PTR mail.mageedu.com.
- [root@localhost named]# chmod 640 172.16.86.zone
- [root@localhost named]# chown root:named 172.16.86.zone
- [root@localhost named]# named-checkzone "86.16.172.in-addr.arpr" 172.16.86.zone
- zone 86.16.172.in-addr.arpr/IN: loaded serial 2013040101
- OK
- [root@localhost named]# service named restart
- Stopping named: [ OK ]
- Starting named: [ OK ]
- [root@localhost named]# dig -x 172.16.86.1 #dig -x IP 根據IP查主機名
- ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.1
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46711
- ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
- ;; QUESTION SECTION:
- ;1.86.16.172.in-addr.arpa. IN PTR
- ;; ANSWER SECTION:
- 1.86.16.172.in-addr.arpa. 600 IN PTR www.mageedu.com.
- 1.86.16.172.in-addr.arpa. 600 IN PTR ns1.mageedu.com.
- ;; AUTHORITY SECTION:
- 86.16.172.in-addr.arpa. 600 IN NS ns1.mageedu.com.
- ;; ADDITIONAL SECTION:
- ns1.mageedu.com. 600 IN A 172.16.86.1
- ;; Query time: 5 msec
- ;; SERVER: 172.16.86.1#53(172.16.86.1)
- ;; WHEN: Fri Mar 29 21:43:49 2013
- ;; MSG SIZE rcvd: 119
- [root@localhost named]# dig -x 172.16.86.2
- ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.2
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50818
- ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
- ;; QUESTION SECTION:
- ;2.86.16.172.in-addr.arpa. IN PTR
- ;; ANSWER SECTION:
- 2.86.16.172.in-addr.arpa. 600 IN PTR mail.mageedu.com.
- ;; AUTHORITY SECTION:
- 86.16.172.in-addr.arpa. 600 IN NS ns1.mageedu.com.
- ;; ADDITIONAL SECTION:
- ns1.mageedu.com. 600 IN A 172.16.86.1
- ;; Query time: 2 msec
- ;; SERVER: 172.16.86.1#53(172.16.86.1)
- ;; WHEN: Fri Mar 29 21:44:16 2013
- ;; MSG SIZE rcvd: 106
- [root@localhost named]# dig -x 172.16.86.3
- ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.3
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28749
- ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
- ;; QUESTION SECTION:
- ;3.86.16.172.in-addr.arpa. IN PTR
- ;; ANSWER SECTION:
- 3.86.16.172.in-addr.arpa. 600 IN PTR www.mageedu.com.
- ;; AUTHORITY SECTION:
- 86.16.172.in-addr.arpa. 600 IN NS ns1.mageedu.com.
- ;; ADDITIONAL SECTION:
- ns1.mageedu.com. 600 IN A 172.16.86.1
- ;; Query time: 6 msec
- ;; SERVER: 172.16.86.1#53(172.16.86.1)
- ;; WHEN: Fri Mar 29 21:44:29 2013
- ;; MSG SIZE rcvd: 105
- 7、就這樣一個簡單的DNS服務器就作成了,是否是很簡單啊 ,本身動手實現如下吧。