DNS,全称Domain Name System,即域名解析系统。
DNS帮助用户在互联网上寻找路径。在互联网上的每一个计算机都拥有一个唯一的地址,称作“IP地址”(即互联网协议地址)
DNS功能
每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议所要完成的功能。
主机名到IP地址的映射有两种方式:
1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;
2)动态映射,建立一套域名解析系统(DNS),只在专门的DNS服务器上配置主机到IP地址的映射,网络上需要使用主机名通信的设备,首先需要到DNS服务器查询主机所对应的IP地址。
通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。
DNS的工作原理
以访问www.为例说明(主机为Windows系统)
1)客户端首先检查本地c:\windows\system32\drivers\etc\host文件,是否有对应的IP地址,若有,则直接访问WEB站点,若无
2)客户端检查本地缓存信息,若有,则直接访问WEB站点,若无
3)本地DNS检查缓存信息,若有,将IP地址返回给客户端,客户端可直接访问WEB站点,若无
4)本地DNS检查区域文件是否有对应的IP,若有,将IP地址返回给客户端,客户端可直接访问WEB站点,若无,
5)本地DNS根据cache.dns文件中指定的根DNS服务器的IP地址,转向根DNS查询。
6)根DNS收到查询请求后,查看区域文件记录,若无,则将其管辖范围内.com服务器的IP地址告诉本地DNS服务器
7).com服务器收到查询请求后,查看区域文件记录,若无,则将其管辖范围内.xxx服务器的IP地址告诉本地DNS服务器
8).xxx服务器收到查询请求后,分析需要解析的域名,若无,则查询失败,若有,返回www.的IP地址给本地服务器
9)本地DNS服务器将www.的IP地址返回给客户端,客户端通过这个IP地址与WEB站点建立连接
安装DNS服务器软件
yum install bind -y
配置相关配置文件
/etc/named.conf ,/etc/named.rfc1912.zones 为DNS主配置文件
/var/named/目录为DNS数据库文件存放目录,每一个域文件都放在这里。
/etc/rc.d/init.d/named 为DNS服务的服务脚本。
一 DNS正向解析
这里以peter.com域为例
www.peter.com 对应IP 为192.168.4.12;
ftp.peter.com 对应IP为1.1.1.1
1 首先编辑vim /etc/named.conf文件
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
2 编辑区域配置文件vim /etc/named.rfc1912.zones
zone "peter.com" IN {
type master;
file "peter.com.zone";
};
其中zone的格式为:
zone "ZONE_NAME" IN {
type master;
file "ZONE_NAME.zone"
};
3 新建解析库文件/var/named/peter.com.zone
[root@CentOS7 ~]# vim /var/named/peter.com.zone
$TTL 1D
$ORIGIN peter.com.
@ IN SOA peter.com. admin.peter.com. (
20170526; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
peter.com. IN NS ns1.peter.com.
ns1 IN A 192.168.4.12
www IN A 192.168.4.12
ftp IN A 1.1.1.1
4 修改解析库文件权限
[root@CentOS7 ~]# chgrp named /var/named/peter.com.zone
5、检查 配置语法
(1)检查配置文件语法
named-checkconf
(2)检查域配置文件语法
[root@CentOS7 ~]# named-checkzone peter.com /var/named/peter.com.zone
zone peter.com/IN: loaded serial 20170526
OK
6 启动named服务
systemctl start named
7 防火墙开放53,953端口
firewall-cmd --add-port=53/tcp --permanent
firewall-cmd --add-port=53/udp --permanent
firewall-cmd --add-port=953/tcp --permanent
firewall-cmd --reload
说明:有的教程写的是只开放53端口就可以了,我没尝试。
或者直接关闭防火墙selinux,修改SELNUX的值 SELNUX=disabled,wq保存。然后reboot重启即可。
8、dns服务器测试
将电脑的首选DNS设置为192.168.4.156(192.168.4.156是我搭建的dns服务器地址)。同过ping,nslookup(如nslookup www.peter.com )等命令,可以发现返回的是我们配置的192.168.4.12。说明配置成功。
二 NDS反向解析
这里以peter.com域为例
IP地址192.168.4.12/24对应域名为www.peter.com;
192.168.4.12/24对应域名为ftp.peter.com;
1、 首先编辑vim /etc/named.conf文件
listen-on port 53 { any; };
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
2 编辑区域配置文件vim /etc/named.rfc1912.zones
zone "4.168.192.in-addr.arpa" IN {
type master;
file "name.4.168.192";
};
格式为:pwd.
zone "NET_IP.in-addr.arpa" IN { #NET_IP 为反向解析的IP网段
type master;
file "NAME_ZONE"; #NAME_ZONE为反向解析库配置文件名称
};
3 新建解析库文件vim /var/named/name.4.168.192
$TTL 1D
$ORIGIN 4.168.192.in-addr.arpa.
@ IN SOA peter.com. admin.peter.com. (
20170526; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS peter.com.
12 IN PTR www.peter.com.
4 修改解析库文件所属组
chgrp named name.4.168.192
5 语法检查
(1)检查配置文件语法
named-checkconf
(2)检查域配置文件语法
named-checkzone 4.168.192.in-addr.arpa /var/named/name.4.168.192
6 启动named服务
systemctl start named
比较好的存根https://www.cnblogs.com/haozheyu/p/8318969.html
https://www.linuxidc.com/Linux/2017-07/145879.htm
来源:CSDN
作者:peter-zou
链接:https://blog.csdn.net/qq_23587541/article/details/82687382