什么是DNS
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议;
域名解析一般分为:正向解析和反向解析
正向解析:域名 ——》ip
反向解析:ip ——》 域名
还有一个递归查询的解析,对于提供互联网域名解析的互联网服务商,无论从性能上,还是从安全上来说,都不可能只有一台DNS服务器,而是由一台或者两台根DNS服务器(两台根DNS服务器通常是镜像关系),然后再在下面配置了多台子DNS服务器来均衡负载的(各子DNS服务器都是从根DNS服务器中复制查询信息的),根DNS服务器一般不接受用户的直接查询,只接受子DNS服务器的递归查询,以确保整个域名服务器系统的可用性。
DNS服务的工作过程
如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。
如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是的交互查询就是迭代查询。
DNS服务器配置
一 安装
#yum install -y bind*
二 配置
主配置文件 /etc/named.conf
zone配置文件 /var/named
安装了bind-chroot,为了安全bind安装将到一个伪根目录内,
主配置文件 /var/named/chroot/etc/named.conf
zone配置文件 /var/named/chroot/var/named
拷贝实例文件
#cp -rv /usr/share/doc/bind-*/sample/etc/* /var/named/chroot/etc/
#cp -rv /usr/share/doc/bind-*/sample/var/named/* /var/named/chroot/var/named/配置主配置文件(最简配置)
#vim /var/named/chroot/etc/named.conf
options
{
// Put files that named is allowed to write in the data/ directory:
directory "/var/named"; // "Working" directory
listen-on port 53 { 127.0.0.1; }; //监听ip和端口,所以则改为any;
listen-on-v6 port 53 { ::1; };
};
zone "example.com" { //正向解析
type master; //主服务器
file "example.com.zone"; //具体配置文件位置
};
zone "173.168.192.inaddr.arpa" { //反向解析
type master;
file "192.168.173.zone";
};
type:
master:表示定义的是主域名服务器
slave :表示定义的是辅助域名服务器
hint:表示是互联网中根域名服务器
3.zone配置
1) 正向解析
#cp named.localhost example.com.zone
#vim example.com.zone
$TTL 3H
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
IN MX mail.example.com.
mail IN A 192.168.173.140
www IN A 192.168.173.127
2)反向解析
# cp named.loopback 192.168.173.zone
#vim 192.168.173.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
127 IN PTR www.example.com.
140 IN PTR mail.example.com.
4.让本机指向配置好的dns服务器
#vim /etc/resolv.conf
nameserver 127.0.0.1
5.权限
#setenforce 0
#service iptables stop
#chown -R named:named /var/named/chroot/
还要至少保证配置文件最小有可读权限
三 测试
判断有语法错误
#named-checkconf /var/named/chroot/etc/named.conf
#named-checkzone example.com example.com.zone
重启服务
#service named start
重载配置
#service named reload
用host或dig验证dns配置
#host example.com
#dig -t mx example.com
有关邮件的反向解析还不是很清楚,可能配置有误~~后期会继续研究
要了解DNS配置的具体参数可以看一下http://yuanbin.blog.51cto.com/363003/108627