DNS篇之三 構建簡單的DNS服務器

如何實現dns服務器?

dns實驗做測試的時候能夠解析,但是在互聯網上無法得到:

假設我已經註冊了一個域zledu.com,ip地址網段爲:172.16.100.0/24的掩碼。

ns 172.16.100.1

www 172.16.100.1,172.16.100.3

mail 172.16.100.2

ftp  www



DNS:BIND

早期:Berkeley Internet Name Domain

現在:ISC   www.isc.org

這個網站提供了兩種服務:BIND與dhcpd。

目前版本:9.7.2

步驟:

 yum list all|grep "^bind"

卸載: rpm -e  utils  libs

 yum install  bind97-libs  bind97-utils

 bind97是一定要裝的;

 

yum install bind97

bind97:

/etc/named.conf

BIND進程的工作屬性

區域的定義

/etc/rndc.key

rndc: Remote(偏僻的,遙遠的) Name Domain Controller(讓rndc命令能夠遠程執行的祕鑰文件)遠程控制dns服務器進程開啓重啓甚至

修改主配置文件的一個非常常用的命令。因此rndc文件是一個可以讓rndc命令可以遠程工作的一個。事實上bind自身的文件叫做rndc.conf;

一般來講有一個就夠了。

密鑰文件 

配置信息:/etc/rndc.conf

/var/named/

區域數據文件;區域數據文件默認情況下需要管理員自己去創建,至於叫什麼名字,有管理員自己去定義。


/etc/rc.d/init.d/named

{start|stop|restart|status|reload|configtest}

所以安裝完畢之後,就可以使用這些命令了。重讀其數字文件和數據文件。

二進制程序的名字:named;只不過軟件包的名字叫做bind。

yum install bind97-devel

當我們針對bind軟件進行二次開發的時候需要用bind-devel

 


bind-chroot:(加強服務器系統安全性而言需要使用chroot包,但是對剛學習的你們而言,請確保這個軟件包一定不要裝)

默認: named

用戶:named

組:named

將named運行的進程統統搬到一個假的根的位置。統統放到/var/named/chroot/下面,讓它以它爲根。請確保這個軟件包一定不要裝。

/var/named/chroot/

etc/named.conf

etc/rdnc.key

sbin/named

var/named/


另外一個軟件包名字:

yum info  caching-nameserver;能夠讓我們的服務器稱爲緩存名稱服務器。緩存服務器跟主dns服務器的配置一般來說是沒有區別的。

如我們要配置一個主dns服務器,首先我們要配置一個緩存dns服務器。而後再配置我們所需要的域,它就成了主dns服務器了。

緩存-->主-->從


rpm  -ql bind97  查看bind包裏面有兩個重要的命令,一個叫做named-checkconfig;另外一個叫做name-checkzone;

named-checkconfig

named-checkzone


/etc/named.conf和/etc/named.rfc1912.zones都是安裝完bind97包之後,自動生成的。

cd   /var/named

cat named.ca其下面全是根域名服務器;


dig: Domain Information Gropher(到域名服務器裏面去查找它的相關信息)


service named start 開啓dns服務器;


DNS: 

監聽的協議及端口:

53/udp

53/tcp

953/tcp, rndc

cat /etc/named.conf



SOCKET: 套接字

IP:PORT

通過套接字編程,能夠讓兩個服務器間的進程進行通信。

C/S: Client/Server

172.16.100.1:53

192.168.0.13

192.168.0.12:53 

172.16.100.1:53

0.0.0.0:53  表示所有地址的服務都監聽;


recursion yes;表示允許遞歸查詢;

vim  named.conf

[root@localhost etc]# vim /etc/named.conf


options {

directory "/var/named";

};

zone "." IN {

type hint;

file "named.ca"

};

zone "localhost" IN {

type master;

file "named.localhost";

};

zone "0.0.127.in-addr.arpa" IN {

        type  master;

        file "named.loopback";

};


[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   #檢查localhost區域文件

zone localhost/IN: loaded serial 0

OK

[root@localhost etc]# named-checkzone "0.0.127.in-arpa" /var/named/named.loopback

zone 0.0.127.in-arpa/IN: loaded serial 0

OK


區域說明:

區域:

zone "ZONE NAME" IN {

type {master|slave|hint|forward};   #hin他表示根區域;

};


主區域:

file "區域數據文件";  #是個相對路徑,相對於directory而言;

從區域:

file "區域數據文件";   #是個相對路徑,相當於directory而言;

masters { master1_ip; };#指定主服務器的IP地址



臨時性地關閉SELinux:

# getenforce

Enforcing


# setenforce 0  關閉selinux

# setenforce 1打開selinux



永久關閉:

# vim /etc/selinux/config


DNS區域:


vim /var/named/zledu.com.zone

[root@localhost named]# cat /var/named/zledu.com.zone 

$TTL 600

zledu.com.  IN  SOA  ns1.zledu.com.   admin.zledu.com. (

        20150521

        1H

        5M

        2D

        6H )


            IN  NS     ns1

            IN  MX  10 mail

ns1         IN  A     172.16.100.1

mail        IN  A     172.16.100.2

www         IN  A     172.16.100.1

www         IN  A     172.16.100.3

ftp         IN    CNAME    www


測試DNS服務器:

    

dig -t RT NAME @IP   #t表示resource type

[root@localhost named]# dig -t A www.zledu.com

dig -t NS zledu.com   


dig -x IP: 表示根據IP查找FQDN

checkconfig --list |grep named

checkconfig --level 345 named on

host -t RT(RESORCE TYPE) NAME: 查詢名稱的解析結果


例如:[root@localhost ~]# host -t A www.zledu.com

www.zledu.com has address 172.16.100.3

www.zledu.com has address 172.16.100.1


nslookup: 交互式  

nslookup:(同時windows也支持這種交互式命令)

server IP  #設定dns服務器是那個;

set q=RT   #設定資源指定類型;

NAME       #此爲第一行的名字;   


定義反向區域文件:

反向區域如何定義?

100.16.172.in-addr.arpa

[root@localhost named]# cat 172.16.100.zone 

$TTL 600

@       IN  SOA  ns1.zledu.com.   admin.zledu.com. (

        20150521

        1H

        5M

        2D

        6H )


            IN  NS     ns1.zledu.com.

1           IN  PTR    ns1.zledu.com.

1           IN  PTR    www.zledu.com.

2           IN  PTR    mail.zledu.com.

3           IN  PTR    

www.zledu.com.




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章