DNS是什么?
DNS 为Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种服务机制。
其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。
DNS使用TCP和UDP, 端口号都是53, 但它主要使用UDP,服务器之间备份使用TCP。
全世界只有13台“根”服务器,1个主根服务器放在美国,其他12台为辅根服务器
DNS服务器根据角色可以分为:主DNS, 从DNS, 缓存DNS服务器,DNS转发服务器
DNS 工作原理图:
----------------------------------------分割线----------------------------------------
DNS 的安装:
[[email protected] ~]# yum list |grep bind
[[email protected] ~]# yum install -y bind #安装bind
[[email protected] ~]# vim /etc/named.conf #查看配置文件
[[email protected] ~]# vim /var/named/named.ca #查看根域文件
[[email protected] ~]# cat /var/named/named.localhost #查看localhost
[[email protected] ~]# cat /var/named/named.localhost
$TTL 1D # 生存周期1天
@ #域名IN SOA@ rname.invalid. (
#SOA 指定的授权服务器0; serial #序列号,年份,月日
@#主机名1D; refresh #刷新,主从之间刷新时间
rname.invalid. #管理员邮箱 1H; retry #主从的同步的时间
1W; expire #过期时间
NS#dns server3H ); minimum #TTL 相关
NS@
A127.0.0.1
AAAA::1
A#A记录
AAAA#ipv6
--------------------------------------------------------------------
[[email protected] ~]# /etc/init.d/named start #启动
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
[[email protected] ~]# dig @127.0.0.1 localhost.localdomain #测试
[[email protected] ~]# cat /var/named/named.loopback #反解析文件的格式
$TTL 1D
@IN SOA@ rname.invalid. (
0; serial
1D; refresh
1H; retry
1W; expire
3H ); minimum
NS@
A127.0.0.1
AAAA::1
PTRlocalhost. #此处和前面是不相同的
[[email protected] ~]# dig @127.0.0.1 -x 127.0.0.1 #测试反解析,用的并不是很常见。
----------------------------------------分割线----------------------------------------
DNS 正向解析配置:
[[email protected] ~]# vim /etc/named.conf #创建了个测试域名
zone "123.com" IN {
type master;
file "123.com.zone";
};
[[email protected] ~]# named-checkconf #检查named.conf 配置文件
[[email protected] ~]# vim /var/named/123.com.zone #配置zone 文件
$TTL 1D
@ IN SOA @ admin.123.com. (
20161213 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.123.com.
IN MX 5 mail.123.com.
mail IN A 10.72.4.254
ns IN A 10.72.4.21
www IN A 10.10.10.10
bbs IN CNAME www.123.com.
-------------------------------
[[email protected] ~]# named-checkzone "123.com" /var/named/123.com.zone #检查有没有错误
zone 123.com/IN: loaded serial 20161213
OK
[[email protected] ~]# vim /etc/named.conf #添加IP 到监听端口
options {
listen-on port 53 { 127.0.0.1;10.72.4.21;};
[[email protected] ~]# dig @10.72.4.21 www.123.com #测试
没有做配置的解析不到:如下图
[[email protected] ~]# dig @10.72.4.21 bbs.123 #编写一没有配置的网址
配置反解析:(楼主的IP 有变动是正常的,环境不一样)
[[email protected] ~]# vim /etc/named.conf #加入以下反解析配置
zone "31.168.192.in-addr.arpa" IN {
type master;
file "31.168.192.zone";
};
[[email protected] ~]# vim /var/named/31.168.192.zone # 配置zone 文件
$TTL 1D
@ IN SOA @ admin.123.com. (
20161213 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.123.com.
135 IN PTR ns.123.com.
20 IN PTR mail.123.com. #注意此处IP 的配置,IP 配不正确,反解析
dig @ 10.72.4.14 -x 10.72.4.21 ,会解析不出来
[[email protected] ~]# named-checkconf #检查named.conf 配置文件
[[email protected] ~]# /etc/init.d/named restart #重启 DNS 服务
Stopping named: [ OK ]
Starting named: [ OK ]
反解析测度试:
----------------------------------------分割线----------------------------------------
DNS 主从配置
(只有一个主DNS ,如果主DNS 宕掉了,域名解析不了。那网站就上不了去了,不可靠,所以还要配置一个从DNS或者多台服务器)
在另一台客户端Linux 下安装 bind
[[email protected]Bird ~]# yum install -y bind
[[email protected] ~]# vim /etc/named.conf #复制主DNS /etc/named.conf 下的配置来更改
options {
// listen-on port 53 { 127.0.0.1; }; #注释掉这两行,监听所有的端口,如果需要单个监听就
// listen-on-v6 port 53 { ::1; }; 写在后面{}内。
zone "123.com" IN {
type slave;
file "slaves/123.com.zone";
masters { 10.72.4.21; }; #语法,注意空格和分号
};
zone "10.72.4.21.in-addr.arpa" IN {
type slave;
file "slaves/4.72.10.zone";
masters { 10.72.4.21; };
};
[[email protected] ~]# /etc/init.d/named start #启动
Starting named: [ OK ]
[[email protected] ~]# ls /var/named/slaves #查看生成的文件
123.com.zone 4.72.10.zone
[[email protected] ~]# cat /var/named/slaves/123.com.zone #同步生成的表很规整,时间=秒
解析测试
-------------------------------------------
[[email protected] ~]# vim /var/named/123.com.zone #增加另一个域名 “coco”,让主DNS 发生变化
$TTL 1D
@ IN SOA @ admin.123.com. (
2016121402 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.123.com.
IN MX 5 mail.123.com.
mail IN A 10.72.4.14
ns IN A 10.72.4.21
www IN A 10.10.10.10
bbs IN CNAME www
coco IN A 101.101.101.101 #增加另一个域名 “coco”
[[email protected]LNMP ~]# vim /etc/named.conf #设置主从强制更新,在主DNS 上的配置
zone "123.com" IN {
type master;
file "123.com.zone";
notify yes; #设置强制更新(下同)注意语法大括号,分号
also-notify { 10.72.4.14; };
};
zone "4.72.10.in-addr.arpa" IN {
type master;
file "4.72.10.zone";
notify yes;
also-notify { 10.72.4.14; };
[[email protected] ~]# named-checkconf #语法错误
/etc/named.conf:48: ‘{‘ expected near ‘(‘
[[email protected] ~]# !vim
vim /etc/named.conf
[[email protected]LNMP ~]# vim /etc/named.conf
[[email protected] ~]# named-checkconf #再次检查
#在另一台客户端上测试;楼主添加了多个不同的域名进行测试,要重启 /etc/init.d/named restart
服务才能生效,切记。
从上的配置文件也自动更新了。
DNS安装&主从配置