DNS域名解析服务介绍与案例配置

什么是域名解析?如何理解?

域名系统(Domain Name System,DNS)是Internet上解决网上机器命名的一种系统。就像拜访朋友要先知道别人家怎么走一样,Internet上当一台主机要访问另外一台主机时,必须首先获知其地址,TCP/IP中的IP地址是由四段以“.”分开的数字组成(此处以IPv4的地址为例,IPv6的地址同理),记起来总是不如名字那么方便,所以,就采用了域名系统来管理名字和IP的对应关系。
虽然因特网上的节点都可以用IP地址惟一标识,并且可以通过IP地址被访问,但即使是将32位的二进制IP地址写成4个0~255的十位数形式,也依然太长、太难记。因此,人们发明了域名(Domain Name),域名可将一个IP地址关联到一组有意义的字符上去。用户访问一个网站的时候,既可以输入该网站的IP地址,也可以输入其域名,对访问而言,两者是等价的。例如:微软公司的Web服务器的IP地址是207.46.230.229,其对应的域名是www.microsoft.com,不管用户在浏览器中输入的是207.46.230.229还是www.microsoft.com,都可以访问其Web网站。

来结合下图来理解
用户访问服务器经过复杂的流程,域名解析可以让用户通过内部二进制方式机器语言找到对应的域名

在这里插入图片描述

1,作用:

将域名解析成ip地址

2,解析过程概述:

就像我们初次拜访一个人一样,我们要知道人家的门牌号,然后按照地址去找。在Internet上只知道某台机器的域名还是不够的,还要有办法去找到那台机器。寻找这台机器的任务由网上一种被称为域名服务器的设备来完成的,而完成这一任务的过程就称为域名解析。

当一台机器a向其域名服务器A发出域名解析请求时,如果A可以解析,则将解析结果发给a,否则,A将向其上级域名服务器B发出解析请求,如果B能解析,则将解析结果发给a,如果B无法解析,则将请求发给再上一级域名服务器C,如此下去,直至解析到为止。

3,解析方式:

正向解析: 域名解析出ip地址
反向解析 : ip地址解析出域名
dns 服务器中存储着大量的ip 和域名映射记录,他的记录文件也分为正向解析文件和反向解析文件
正向解析文件中存储的记录称为A记录,A记录记录着域名和ip的映射关系
反向解析文件中存储的记录称为PRT指针,PTR记录着IP和域名的映射关系
DNS服务即属于TCP协议也属于UDP协议,端口号为53号

4,域的种类
  • 国家域:cn中国,hk香港,uk 英国 ,au澳大利亚
  • 顶级域:(领域):com商业用途 net 网络组织 edu 教育
  • 二级域:个性化的名称,每个域的二级域都不一样
  • 主机名(用途):www(网页),mail(邮件)
5,dns 的解析过程

DNS的解析过程是分层解析的,一般客户机将解析的请求发送给它的DNS服务器,DNS服务器首先是从DNS服务器(.)开始改送域名解析请求,根将COM域的IP反馈给客户机的本地DNS服务器,本地DNS服务器访问COM域服务器,COM域服务器反馈baidu域的IP给本地 DNS服务器,本地DNS服务器访问baidu域服务器询问www域服务器的ip,baidu域服务器给dns服务器反馈ww域的ip,这时本地DNS服务器得到www.baidu.com的精确IP之后,直接将这个映射记录反馈给客户机,客户机直接访问www.baidu.com服务器,服务器反馈相应的数据。

6,DNS缓存

DNS缓存指DNS返回了正确的IP之后,系统就会将这个结果临时储存起来。并且它会为缓存设定一个失效时间 (例如N小时),在这N小时之内,当你再次访问这个网站时,系统就会直接从你电脑本地的DNS缓存中把结果交还给你,而不必再去询问DNS服务器,变相“加速”了网址的解析。当然,在超过N小时之后,系统会自动再次去询问DNS服务器获得新的结果。
所以,当你修改了 DNS 服务器,并且不希望电脑继续使用之前的DNS缓存时,就需要手动去清除本地的缓存了。

扫描二维码关注公众号,回复: 12328899 查看本文章

其中一台DNS服务器可以上网去获取DNS映射记录,客户机将dns服务器地址指向这台可以上网的DNS服务器,从而获取到相应的映射记录
在这里插入图片描述

7,主从DNS服务器详细配置过程

这样的一个目的就是为了预防主DNS服务器DOWN掉之后,从DNS服务器能立马顶替主服务器来继续工作,从而不影响工作进程。

基本的一个原理如下图所示:
在这里插入图片描述

实验环境: 三台虚拟机
主DNS: 192.168.100.10 vnet1 仅主机模式
从DNS : 192.168.100.20 vnet1 仅主机模式
客户机 : 192.168.100.30 vnet 仅主机模式
配置之前三台虚拟机上关掉防火墙与核心防护

主DNS;

systemctl stop firewalld
setenforce 0
vi /etc/resolv.conf     
nameserver 192.168.100.10
nameserver 192.168.100.20
######安装DNS服务
rpm -ivh /mnt/Packages/bind-(TAB补全)  或者yum-y install binb*
####### 修改主配置文件

vi /etc/named.conf    ****这时第一个文件
options {
        listen-on port 53 { 192.168.100.10; };      #改成主服务器地址
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any ; };                 #这边改成任何人都能访问,你还可以写IP地址网段
        recursion yes;
};



vi /etc/named.rfc1912.zones       ****这是第二个文件


zone "abc.com" IN {     // 双引号里面添加域名
        type master;    //主节点
        file "abc.com.zone";
        allow-transfer { 192.168.100.20; };   //含义转告给从服务器
        also-notify { 192.168.100.20; };   //通告给从服务器
};
zone "100.168.192.in-addr.arpa" IN {
        type master;
        file "abc.com.local";
        allow-transfer { 192.168.100.20; };
};
######添加区域文件
cd  /var/named          ******这是第三个文件
 
chown root:named .localhost
chown root:named .loopback
[root@server1 named]# cp -p named.localhost abc.com.local
[root@server1 named]# cp -p named.loopback abc.com.zone

vi aa.com.local           ******反向区域文件      第四个文件
$TTL 1D
@       IN SOA  aBC.com.  rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      aa.com.
        A       192.168.100.10
119 IN PTR      www.abc.com.
120 IN PTR      ftp.abc.com.


vi abc.com.zone    ---正向区域文件   *****第五个文件
$TTL 1D
@       IN SOA  @ rname.invalid.  (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       192.168.100.10
www  IN A       192.168.100.10
ftp  IN A       192.168.100.20
mail IN CNAME   www

######启动DNS服务
systemctl start named.service 
#######检测下本地服务有没有问题

[root@server1 ~]# nslookup www.abc.com
Server:		192.168.100.10
Address:	192.168.100.10#53

Name:	www.abc.com
Address: 192.168.100.20

从DNS

systemctl stop firewalld
setenforce 0
vi /etc/resolv.conf
nameserver 192.168.100.10
nameserver 192.168.100.20
安装DNS服务
rpm -ivh /mnt/Packages/bind-(TAB补全) 或者yum安装

######修改主配置文件

vi /etc/named.conf
options {
        listen-on port 53 { 192.168.100.20; };      #改成辅服务器地址
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any ; };                 #这边改成任何人都能访问,你还可以写IP地址网段
        recursion yes;

vi /etc/named.rfc1912.zones       
zone "abc.com" IN {
        type slave;
        masters { 192.168.100.10; };
        allow-notify { 192.168.100.10; };
        file "slaves/abc.com.zone";
};

zone "100168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.100.10; };
        allow-notify { 192.168.100.10; };
        file "slaves/abc.com.local";
};
#######开启服务

systemctl start named

########检测下本地服务有没有问题 
[root@lvs2 ~]# nslookup www.abc.com
Server:		192.168.100.10
Address:	192.168.100.10#53

Name:	www.abc.com
Address: 192.168.100.20


客户机验证:

[root@server3 ~]# systemctl stop firewalld.service 
[root@server3 ~]# setenforce 0
[root@server3 ~]# vi /etc/resolv.conf 
[root@server3 ~]# nslookup www.abc.com
Server:		192.168.100.10
Address:	192.168.100.10#53

Name:	www.abc.com
Address: 192.168.100.20

将主服务器down掉,看是否还能验证成功
[root@server1 ~]# systemctl stop named.service 
[root@server1 ~]# systemctl status named.service 
● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

1月 07 01:58:22 server1 named[54359]: error (network unreachable) resolving 'mirrors.163.com/A/IN': 2001:500:9f::42#53
1月 07 01:58:22 server1 systemd[1]: Stopping Berkeley Internet Name Domain (DNS)...
1月 07 01:58:22 server1 named[54359]: received control channel command 'stop'
1月 07 01:58:22 server1 named[54359]: shutting down: flushing changes
1月 07 01:58:22 server1 named[54359]: stopping command channel on 127.0.0.1#953
1月 07 01:58:22 server1 named[54359]: stopping command channel on ::1#953
1月 07 01:58:22 server1 named[54359]: no longer listening on 192.168.100.10#53
1月 07 01:58:22 server1 named[54359]: no longer listening on ::1#53
1月 07 01:58:22 server1 named[54359]: exiting
1月 07 01:58:22 server1 systemd[1]: Stopped Berkeley Internet Name Domain (DNS).
客户机上再次验证

[root@server3 ~]# nslookup www.abc.com
Server:		192.168.100.20       //此时服务器地址转变成了从服务器的地址
Address:	192.168.100.20#53

Name:	www.abc.com
Address: 192.168.100.20
验证成功



8,服务器开启路由的命令:
  • 永久开启 : vi /etc/sysctl.conf
    net. ipv4. ip_forward=1
    sysctl -p 加载配置
  • 临时开启 :echo “1”>/proc/sys/net/ipv4/ip forward

猜你喜欢

转载自blog.csdn.net/Lihuihui006/article/details/112301338
今日推荐