构建简单的DNS服务器的方法
如何实现dns服务器?下面介绍一个简单的构建方法,供大家参考。这里不涉及任何路由器、FTP和交换机,只说DNS服务器本身。
dns实验做测试的时候能够解析,但是在互联网上无法得到:
假设我已经注册了一个域xiaoxiongboke.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/xiaoxiongboke.com.zone
- [root@localhost named]# cat /var/named/xiaoxiongboke.com.zone
- $TTL 600
- xiaoxiongboke.com. IN SOA ns1.xiaoxiongboke.com. admin.xiaoxiongboke.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.xiaoxiongboke.com
dig -t NS xiaoxiongboke.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.xiaoxiongboke.com
www.xiaoxiongboke.com has address 172.16.100.3
www.xiaoxiongboke.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.xiaoxiongboke.com. admin.xiaoxiongboke.com. (
- 20150521
- 1H
- 5M
- 2D
- 6H )
- IN NS ns1.xiaoxiongboke.com.
- 1 IN PTR ns1.xiaoxiongboke.com.
- 1 IN PTR www.xiaoxiongboke.com.
- 2 IN PTR mail.xiaoxiongboke.com.
- 3 IN PTR