DNS的简介和用法

DNS服务

dns服务器:将互联网上的所有主机IP和其对应的域名存放到互联网上的无数台的dns服务器内存放。

DNS:Domain Name Service 应用层协议

C/S,53/udp, 53/tcp

本地名称解析配置文件:hosts

/etc/hosts

DNS域名结构 :

捕获

 

DNS服务器的类型:

主DNS服务器

从DNS服务器

主DNS服务器:管理和维护所负责解析的域内解析库的服务器 

从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本 (在主服务器宕机时起替换作用)

重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

过期时长:从服务器联系不到主服务器时,多久后停止服务

“通知”机制:主服务器解析库发生变化时,会主动通知从服务器

网络上DNS解析的过程:

例如某一用户访问一个域名网站:www.baidu.com 以下为具体过程:

首先个人用户访问域名,自己的上级dns服务器不清楚此网站的IP地址,会把请求向上一级一级的提交,直至最高层,根域的dns服务器,然后它只知道com的域名在哪里,传到com的下级域服务器,com域在向下找,找到下级子域百度的域服务器,最后找到你要访问的主机服务器的IP地址。上级域知道紧跟的下级域的地址,但下级域并不知道紧挨着的他的上级域的地址。

搭建DNS服务器实例:

在7上搭建主DNS服务器,负责解析www.magedu.com这个域,

1 . 安装DNS服务软件:yum install bind  :装好后启动此服务systemctl  start naned

2 . 修改bind的主配置文件:路径:/etc/named.conf  (修改配置文件前先将其备份,注意要爆了其权限-a)

在端口绑定设为本机自己:权限允许添加所有

格式

 

 

3 . 修改此配置文件:vim /etc/named.rfc1912.zones (一般建议在此文件下来添加,在主配置文件里添加也是可以的/etc/named.conf)添加的内容如下图:

捕获

4 . 修改完后,需要手动创建一个文件来记录域名和IP地址的对应关系;创建的文件名在上述添加的内容里就已经确定了,magedu.com.zone ,由于此文件在上述添加的内容中没有写路径,则用他的默认路径:

最后添加的一行没有分号,记得要加

/var/named/新建一个magedu.com.zone 的文件。

可以将此目录下的模板文件修改即可: cp -a named.localhost magedu.com.zone

然后编辑修改就可以了,具体修改的内容如下图所示

捕获他已经

修改完后同步一下文件:systemctl reload named  :sync  reload   并将此文件的属组改为named :chgrp named magedu.com.zone

5 .在本机解析域名:host www.magedu.com 192.168.60.4 (此IP为主DNS服务器的IP地址)

在其他主机上解析:host www.magedu.com 192.168.60.4

6 .在7.5上开启http服务。由于前面配置文件指向的时7.5的地址www  A  192.168.60.2

7 . 在6上将仅主机网卡写上DNS=(DNS服务器的IP地址),然后桥接的网卡断开连接,在6的图形界面上开启浏览器,输入网址www.magedu.com 通过DNS服务器解析并指向7.5的http服务。

cat /etc/resolv.conf  (此命令可以查看自己DNS的设置情况,验证刚才指定的DNS是否成功)

多台web服务器主机共用一个域名网站,将多个服务器主机的IP地址指向一个域名,然后实现将用户访问流量分流,避免一台服务器访问压力过大,具体实现方法:

在DNS的库配置文件添加以下几行:/etc/named/magedu.com.zone (此配置文件是手动创建的和前面/etc/named.rfc1912.zones 下自己写的文件名相对应的)

master    A       192.168.60.6   (此IP地址为DNS服务器的IP地址)

www          A      192.168.60.1

www         A       192.168.60.2

www         A     192.168.60.3 (此IP地址都是web服务器的地址都指向一个域名)

(三台主机所提供的信息是一样的,用户访问的界面也是一样的,只是后台IP主机不同而已)

原本指向一个的web服务器地址,现在指向三个,就实现了客户访问一个域名网站后面有三台web服务器,提供服务,具体访问哪台主机是随机分配的

ping www.magedu .com  就可以查看了  (别忘记将自己的仅主机网卡DNS指定为自己的DNS服务器的地址)dig  www.magedu.com  也可以查看详细的信息。

将www  改为@ 这样用户就可以不用敲www.magedu.com 敲magedu.com 也可以访问提升用户体验

如果将www换成*这样用户在magedu.com 前面加什么都可以访问。

$GENERATE    1-100 webs$  A   192.168.60 .$   (webs为别名。此行的意思是批量的将webs1–>192.168.60.1上一直到webs100—>192.168.60.100 这样写省事)

 

 

 

 

实验:实现主从服务器的实验:(一台主DNS服务器外加一台从的DNS服务器)

当主服务器宕机时,从服务器可以提供服务。bind程序的版本应该保持一致;否则,应该从高,主低

1 . 首先配置主服务器

安装bind,启动服务,(systemctl   start  named )修改三个配置文件 (详细步骤可参考上面的设置来修改)

主服务器的库文件需要添加从服务器的IP地址 :/var/named/

捕获

rndc reload (重新加载此配置文件)

2 . 从服务器的配置和搭建:

安装bind, 启动服务,修改配置文件

修改/etc/named.conf 配置文件:
listen-on port 53 { 127.0.0.1; }
allow-query { localhost; }; (将此两行注释掉就可以了)

修改配置文件:/etc/named.rfc1912.zones

zone “magedu.com” IN {
type slave;

masters {192.168.60.4;};  (此为它的主服务器地址)
file “slaves/magedu.com.zone.slave”; (此处文件存放的路径为相对路径,绝对路径在/var/named/slves/)
};                                                                       (文件名可以和主服务器的库文件名不同可以自定义)

/var/named/magedu.com.zone.slave此数据库文件可以不用建,自动从主服务器上同步:

重启服务就可以了;查看文件是否同步了,(7系统此文件为2进制文件不能查看,6系统文件可以查看)

3 .最后测试:

在客户机上只设置一个仅主机网卡,并将此网卡的DNS绑定到两个DNS服务器的IP地址上:

DNS1=主DNS服务器的地址 ;;DNS2=从DNS服务器的IP地址

ping www.magedu.com  :此时应该会通的;

将主DNS服务器的网卡全部断开;此时在ping www.mage.com 也应该是通的因为从服务器现在开始启用了。

 

 

 

实验:在从服务器的基础上再建一个从服务器:一主二从

可依照上述实验再做一遍,将第二个从服务器的IP地址添加到主服务器的库文件里。然后配置自己的两个配置文件,之后同步就可以了。

但还可以将第一个从服务器作为第二个从服务器的主服务器;具体步骤如下:(一般不建议使用)

安装bind, 启动服务,修改配置文件
修改/etc/named.conf 配置文件:
listen-on port 53 { 127.0.0.1; }
allow-query { localhost; }; (将此两行注释掉就可以了)
修改配置文件:/etc/named.rfc1912.zones
zone “magedu.com” IN {
type slave;
masters {192.168.60.5;}; (此为它的主服务器地址,其实是第一个从服务器的IP地址)
file “slaves/magedu.com.zone.slave.slave”; (此处文件存放的路径为相对路径,绝对路径在/var/named/slves/)
}; (文件名可以和主服务器的库文件名不同可以自定义)

重新启动named服务就可以获取库文件了。

由于第二个从服务器没经过主服务器的允许就将数据同步到自己的服务器上了,存在安全风险。

解决办法:

在主DNS服务器上添加一行:/etc/named.conf 

allow-transfer   {192.168.60.1 ;192.168.60.2;};(允许哪些服务器从自己主服务器上获取信息)

在两个从服务器上也添加一行;

allow-transfer {none ;} ;    (禁止所有服务器从自己这里获取库文件的信息)

配完之后需要重启named服务让其生效。这种配置为全局性配置,如果有多个域名,只想要限制其中某个域名的,需要在/etc/named.rfc1912.zones配置文件里修改,在单独的某个域的后面添加允许和禁止条款。

 

 

实验:子域的创建:(例如www.zz.magedu.com和www.bj.magedu.com)

第一种实现方法:(将两个子域都和父域放在一起)

在主DNS服务器上的库配置文件中添加这两行就可以了:

www      A         192.168.60.7   (原本的父域绑定的web服务器的IP地址)

www.bj     A      192.168.60.7

www.zz    A      192.168.60.5     (将两个子域都写在主服务器的库配置文件里,然后分别绑定到两个wed域                                                           名的服务IP地址上。)其他配置不变。

第二种方法  :  (将子域和父域分开来放,单独存放到一个文件里,方便管理)

在主服务器上/etc/named.rfc1912.zones添加bj和zz的两个独立的域。

捕获微软

然后再/var/named/下新建两个子域的库文件就可以了

cp -a magedu.com.zone    bj.magedu.com.zone

cp -a magedu.com.zone      zz.magedu.com.zone  (保留属性复制过来就可以了,然后再修改)

在bj.magedu.com.zone的配置文件里将www      A        192.168.60.1   (此为web服务器的IP地址)

此处的www就已经代表了www.bj.mage.com了只需要写上这一条就可以了

再加上原本的作为DNS服务器主机的IP等等信息可参考最上方的详解

在zz.magedu.com.zone的配置文件里将www     A          192.168.60.2 (此为web服务器的IP地址)

此处的原理同上

rndc  reload  (重新加载配置文件)

named-checkconf   (可以检查配置文件哪里出错)

第三种方式将父域和子域分到不同的主机来存放:(适合较大的数据流量的情况下)委派服务

1 . 主服务器上的父域,还是按照主服务器的配置来修改:

在主配置文件上添加两条信息:/etc/named/mage.com.zone

bj       NS            dns2.magedu.com.

dns2   A              192.168.60.7  (此IP地址为子域的独立主机的IP地址)

vim /etc/named.conf  :修改配置文件
dnssec-enable no;
dnssec-validation no;

rndc reload   (重新加载服务)

 

2 . 在子域的服务器上修改配置文件:(装包,启动)(父域委派给子域其本身就变成相对的主域了)

vim /etc/named.conf;

和上面一样注释掉两行

isten-on port 53 { 127.0.0.1; }
allow-query { localhost; };

 

/etc/named.rfc1912.zones  :  再次配置文件添加:

zone “bj.magedu.com” IN {
type master;
file “bj.magedu.com.zone”;
};

/var/named在此配置文件里新建bj.magedu.com此文件

cp -a named.localhost bj.magedu.com.zone  (复制模板文件来修改)

捕获天

 

rndc reload(加载配置文件)

named-checkconf   (检查配置文件)

 

最后在客户机上将仅主机网卡的DNS设为父域的IP然后ping  www.bj.magedu.com ;父域找不到会委派给他所知道的子域。可以通过cat /etc/resolv.conf来查看DNS是否指定成功。

 

 

 

 

 

 

搭建模拟网络的DNS服务器:(具体结构拓扑图如下)

实验环境:将各个主机的防火墙和selinux都关上。yum仓库配好,

named-checkconf (每次将配置文件修改过后,此命令可以检查修改配置文件的语法错误)

rndc reload(重新加载配置文件)或者重启服务:service named  restart  (6系统上的)

systemctl  restart named  (7系统上的)

三个主要配置文件的路径:

/etc/named.conf

/etc/named.rfc1912.zones

/var/named/新建的文件

 

新建位图图像

实验结构:两个web服务器作为http服务器,上面有一个主的DNS服务器一个从DNS服务器,再向上是comDNS服务器,再向上是根DNS服务器。用户从客户端经小区的DNS服务器去解析magedu.com的地址然后访问。

 

1  . 在两个web服务器上搭建web界面  (IP:60.12和60.13)
安装HTTP服务,在两个不同的web的HTTP的主页面做上不同的标记

/var/www/htlm/index.html
web1—–>mage1
web2—–>mage2
启动服务
在作为客户访问端的主机(192.168.60.4)用links +ip 来访问两个web服务器,看一看是否成功(如果没有links,用yum安装就可以)

2 .搭建DNS的主服务器;安装bind包;修改配置文件(magedu.com域的DNS服务器的搭建)
/etc/named.conf (注释掉)
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };

allow-transfer { 192.168.60.11 ;};(添加此行的意思是允许从服务器从本机上获取信息)

/etc/named.rfc1912.zones (在此配置文件里添加)

zone “magedu.com” IN {
type master;
file “magedu.com.zone”;
};
/var/named /(在此目录下新建文件)magedu.com.zone
cp -a named.localhost magedu.com.zone (复制模板文件然后修改,注意属性)

捕获1

dig www.magedu.com @192.168.60.10 (测试刚搭建的主服务器)还是在客户机上测试。

 

3 .搭建从服务器  (magedu.com的从服务器)

装包; 修改配置文件

/etc/named.conf (此配置文件里注释掉)
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };

allow-transfer { none; };(添加此行,不允许任何机器再从此处抓取信息)

/etc/named.rfc1912.zones (在此配置文件里要添加的内容)

zone “magedu.com” IN {
type slave; (自己的DNS服务器类型设为从服务器)
masters { 192.168.60.10;}; (指定主DNS服务器的IP地址)
file “slaves/magedu.com.zone.slave”;
};

重启服务就将主服务器的区域数据库信息抓过来了存放在/var/named/slaves/下

如果主DNS服务器修改数据了 ,必须要在数值上加1 ,否则从服务器无法及时更新数据信息。

dig www.magedu.com @192.168.60.11 (测试从服务器是否能够解析)

4.  配置com DNS服务器:(是magedu.com的父域)
装包,修改配置文件

/etc/named.conf (注释掉)
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };
要委派需要关掉以下两项:
dnssec-enable no;
dnssec-validation no;

/etc/named.rfc1912.zones (添加内容)
zone “com” IN {
type master;
file “com.zone”;
};

新建/var/named/com.zone文件
cp -a named.localhost .com.zone (复制本地的模板文件然后修改,注意属性)

捕获111

重启服务就可以了 ;service named restart (6系统上用的命令)

5 .配置根DNS服务器:
装包,修改配置文件;

/etc/named.conf (注释掉)
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };

要委派需要关掉以下两项:
dnssec-enable no;
dnssec-validation no;

要删除的内容:(因为在下面文件里会新建一个相同的域)

zone “.” IN {
type hint;
file “named.ca”;
};

在此配置文件/etc/named.rfc1912.zones (添加内容)

zone “.” IN {
type master;
file “root.zone”;
};

新建/var/named/root.zone文件
cp -a named.localhost root.zone (复制本地的模板文件然后修改,注意属性)

捕获12345

dig www.magedu.com @192.168.60.5 (测试还是在客户端来测试)

6 .最后搭建电信的dns服务器:
装包bind 修改配置文件

/etc/named.conf (注释掉)
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };

要委派需要关掉以下两项:
dnssec-enable no;
dnssec-validation no;

vim /var/named/named.ca (修改此配置文件)

捕获4567654

最后测试:
在客户机上将自己的仅主机网卡:添加DNS1=电信服务器的主机IP地址就可以了
可以通过cat /etc/resolv.conf来查看DNS是否指定成功

如果不行将其他网卡都删掉,只留一个仅主机的网卡,然后重启网络服务或者重启机器就可以了。
如果成功;ping www.magedu.com 就可以成功。且会出现两个不web的IP主机地址

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99889

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班