如何实现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.