DNS服务及相关实验

DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。

本节索引:

一、DNS服务相关介绍

二、实验:搭建正向主DNS服务器

三、实验:泛域名解析,提高访问感受

四、实验:利用DNS实现web服务器负载均衡

五、实验:实现反向解析

六、实验:搭建正向从DNS服务器

七、实验:实现子域

八、实验:forward转发

九、实验:实现智能DNS

timg_image&quality=80&size=b9999_10000&sec=1528194054665&di=8763291c489274bb9113

一、DNS服务相关介绍

DNS:Domain Name Service 应用层协议

C/S,53/udp, 53/tcp

BIND:Bekerley Internat Name Domain

ISC (www.isc.org)

 

名字解析服务:将全称域名解析为IP地址

FQDN:Fully Qualified Domain Name,完整主机名

www.magedu.com         完整主机名(FQDN)

www             主机名,或者别名

magedu.com          domain域名

 

分散式解决方案:小环境,特定应用内部集群

/etc/hosts

集中式解决方案:NIS,适合中小型环境

分布式(既分散又集中)解决方案:DNS

 

 

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

Linux:    /etc/hosts

Windows:%WINDIR%/system32/drivers/etc/hosts

         122.10.117.2  www.magedu.com

         93.46.8.89    www.google.com

 

 

权威DNS服务器:查询FQDN所在的DNS服务器

13组服务器,13个IP地址存放根域

IPv6,25组跟服务器

 

DNS查询类型:

   递归查询:负责到底

  迭代查询:不负责到底

解析类型:

正向解析:FQDN –> IP

反向解析:IP –> FQDN

注意:正反向解析是两个不同的名称空间是两棵不同的解析树

 

DNS服务器的类型:

主DNS服务器

从DNS服务器

缓存DNS服务器(转发器)

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

从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本

序列号:解析库版本号,主服务器解析库变化时,其序列递增 刷新时间间隔:

服务器从主服务器请求同步解析的时间间隔

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

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

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

 

bind

相关文件:

/etc/named.conf                              主配置文件

/usr/sbin/named                               主程序

/usr/lib/systemd/system/named.service      服务

/var/named                               存放数据库

/var/named/named.localhost                区域解析库参考文件

 

cat /var/named/named.localhost  

$TTL 1D                                                                              一天作为缓存期

@       IN SOA  @ rname.invalid. (                                   第一个@表示当前域名,第二个@表示主DNS服务器,rname.invalid表示管理员邮箱

0       ; serial            版本序列号,序列号越大表示数据越新,需手动更改

1D      ; refresh        刷新时间

1H      ; retry            重试时间

1W      ; expire        过期时间

3H )    ; minimum      否定答案的TTL值

NS      @

A       127.0.0.1

AAAA    ::1

 

资源记录:

区域解析库:由众多RR组成:

资源记录:Resource Record, RR

记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,

必须位于解析库的第一条记录,定义了谁是主DNS服务器,管理员邮箱及刷新时间(从属DNS服务器拉取

主DNS服务器数据的时间)、重试时间、过期时间及否定答案的TTL值

A:internet Address,作用,FQDN –> IP

AAAA:FQDN –> IPv6

PTR:PoinTeR,IP –> FQDN

NS:Name Server,专用于标明当前区域的DNS服务器

CNAME:Canonical Name,别名记录,如www

MX:Mail eXchanger,邮件交换器

 

资源记录定义的格式:

语法:name [TTL] IN rr_type value

注意:

(1) TTL可从全局继承

(2) @可用于引用当前区域的名字

(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询

方式响应

(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值

进行定义;此仅表示通过多个不同的名字可以找到同一个主机

 

 

二、实验:搭建正向主DNS服务器

前期准备:

主DNS服务器:192.168.30.10

web服务器:192.168.30.16

客户端:192.168.30.11

实验预期:

客户端访问通过主DNS解析访问http服务器搭建的网页

具体步骤:

1主DNS服务器安装bind包:

yum install bind

2 备份主配置文件,注意保留属性

cp /etc/named.conf  /etc/named.conf.bak  -a

3.开启named服务

Systemctl  start  named

Systemctl  enable  named

4.修改主配置文件:

vim /etc/named.conf

options {

         listen-on port 53 { localhost; };

         allow-query     { local;any; };

};

named.conf

5.修改区域配置文件:

区域配置文件

6创建区域解析数据库文件

可参照named.localhost文件进行创建

cp named.localhost  magedu.com.zone -a

vim magedu.com.zone

$TTL 1D

@       IN SOA  dns1.magedu.com. admin.magedu.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

magedu.com.        NS      dns1

dns1                         A        192.168.30.10

www                        A        192.168.30.16

区域数据库解析文件

7重新加载named服务:

Systemctl reload named   或   rndc  reload

 

8如启动失败,可使用语法检查

named-checkconf          主配置文件语法检查

named-checkzone “magedu.com” /var/named/magedu.com.zone       解析库文件语法检查

 

9切换至客户端进行测试:

dig www.magedu.com  @192.168.30.10            指定从192.168.30.10解析www.magedu.com

4dig测试

10切换到web服务器:

echo welcome to Magedu > /var/www/html/html.index

service httpd start

 

11.切换至客户端:

添加DNS到网卡配置文件

5修改网卡dns

重启网络服务

Service httpd restart

12.测试访问www.magedu.com

我们看到,客户端已经由主DNS服务器解析成功访问到我们自己搭建的http网页!

6访问成功

 

三、实验:泛域名解析,提高访问感受

前期准备:

实验环境承接上

实验预期:

客户端访问网页时,即使将主机名输出,也可正常访问

具体步骤:

1修改主DNS服务器端区域数据库解析文件:

增加此行:泛域名解析,如wwwww.magedu.com也可正常访问

*  A  192.168.30.7

修改区域解析库文件

2客户端测试:

我们看到即时主机名输出,也可正常访问到www.magedu.com的http页面

访问成功

 

四、实验:利用DNS实现web服务器负载均衡

前期准备:

主DNS服务器:192.168.30.10

web服务器1:192.168.30.16

web服务器2:192.168.30.12

客户端:192.168.30.11

实验预期:

当客户端访问网页时,由主DNS服务器随机指向一台web服务器

具体步骤:

1修改区域解析库数据文件:

添加下列行:

websrv A 192.168.30.17

websrv A 192.168.30.27

www  CNAME  websrv

修改区域解析库文件

重新加载named服务:

rndc reload

2切换至客户端测试:

我们看到当ping测www.magedu.com时,将随机指向一台web服务器

测试成功

 

五、实验:实现反向解析

前期准备:

DNS服务器:192.168.30.10

测试客户端:192.168.30.11

具体步骤:

1修改DNS服务器区域配置文件,添加反向解析区域

反向解析1

2添加方向区域解析数据库文件

反向解析2

重启named服务

rcdn reload

3切换客户端建测试

dig -x  IPaddr 是一个专门测试反向解析的命令

dig -x 192.168.30.16

我们看到192.168.30.16反向解析到了websrv.magedu.com

反向解析3

dig -x 192.168.30.17

192.168.30.16反向解析到了appsrv.wxlinux.com

反向解析4

dig -x 192.168.30.100

192.168.30.16反向解析到了mail.magedu.com

与DNS服务器区域解析文件对应关系相一致

反向解析5

 

六、实验:搭建正向从DNS服务器

前期准备:

主DNS服务器:192.168.30.10

从DNS服务器:192.168.30.12

web服务器:192.168.30.16

客户端:192.168.30.11

实验预期:

搭建从DNS服务器,当主DNS服务器宕机时,由从DNS实现地址解析

具体步骤:

1.修改主DNS服务器主配置文件,

vim /etc/named.conf

options {

         listen-on port 53 { localhost; };

         allow-query     { local;any; };

         allow-transfer  { 从DNS的IP };                          加此行

};

1修改主dns主配置

2修改主DNS服务器区域数据库解析文件

将从DNS服务器同步进去

5主dns区域解析库

3修改从DNS服务器主配置文件

vim /etc/named.conf

allow-transfer { none; };         加此行

2修改从dns主配置

4修改从DNS服务器区域配置文件

sda

重启named服务

rndc reload

5确认从DNS服务器slave区域文件同步成功

4生成slave文件

6模拟主DNS服务器宕机,将虚拟机网卡断开连接

6模拟宕机

7添加从服务器地址到客户端的DNS列表中:

7客户端添加dns

8.客户端测试

ping www.magedu.com

经过短暂的等待(dns切换时间),从DNS服务器解析地址成功!

 8测试成功

 

七、实验:实现子域

实验预期:

www.bj.magedu.com

www.zz.magedu.com             使能正常访问

方法一:修改主DNS区域解析文件

直接将子域指向子域web服务器:

www.bj  A       192.168.30.17

www.zz  A       192.168.30.27

方法1

方法二:本机独立子域

适用场景:访问量不大,较小规模,由同一个主DNS服务器管理

vim /etc/named.rfc1912.zones

zone “bj.magedu.com” IN {

         type master

         file “bj.magedu.com.zone”;

 

zone “zz.magedu.com” IN {

         type master

         file “zz.magedu.com.zone”;

方法2.1

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

vim bj.magedu.com.zone

方法2.2

cp magedu.com.zone zz.magedu.com.zone  -a

vim zz.magedu.com.zone

方法2.3

方法三:委派给另一台主机维护子域,实现分布式DNS管理

前期准备:

主域magedu.com: 192.168.30.10

子域bj.magedu.com: 192.168.30.16

web服务器1:www.magedu.com: 192.168.30.17

web服务器2:www.bj.magedu.com: 192.168.30.27

测试客户端:192.168.30.11

1关闭dnssec功能

vim /etc/named.conf

dnssec-enable no;

dnssec-validation no;

方法3.1

 

2修改主域DNS区域解析文件,主域web服务器指向192.168.30.17

vim /var/named/magedu.com.zone

$TTL 1D

@       IN SOA  dns1.magedu.com. admin.magedu.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

     NS      dns1.magedu.com.

bj                 NS      dns2.magedu.com.     ##新增

dns1       A        192.168.30.10

dns2                     A    192.168.30.17                         ##新增

方法3.2

3切换至子域DNS服务器,添加bj.magedu.com的区域配置

vim /etc/named.rfc1912.zones

3.3

4添加子域DNS区域解析文件,将web服务器指向192.168.30.27

3.4

重启named服务

rndc reload

5切换客户端进行测试

dig  www.bj.magedu.com @192.168.30.10

ping www.bj.magedu.com

我们看到www.bj.magedu.com将通过主域DNS转发至子域DNS,再经子域DNS解析指向web服务器

3.5

dig  www.magedu.com @192.168.30.10

ping www.magedu.com

而www.magedu.com还是由主域DNS负责解析,这样就实现了主域和子域DNS简单的分布式管理

3.6

 

八、实验:forward转发

(一)全局性转发:

对非本机所负责解析区域的请求,全转发给指定的服务器

注意:被转发的服务器需要能够为请求者做递归否则转发请求不予进行

前期准备:

DNS服务器1: 192.168.30.10

DNS服务器2: 192.168.30.16

Web服务器:192.168.30.100

测试访问端: 192.168.30.11

实验预期:

当FQDN在DNS1服务器无法解析时,直接指向到DNS2服务器进行转发

1在DNS2服务器上建立www.wxlinux.com的区域文件及解析数据库文件,并将www.wxlinux.com指向web服务器:192.168.30.100

全局转发1

全局转发2

2切换到访问端用DNS2服务器解析www.wxlinux.com,可以解析成功

dig www.wxlinux.com @192.168.30.16

全局转发3

3切换至DNS1服务器修改主配置文件

vim /etc/named.conf

options {

       forward first|only;                                    ##first优先在指向DNS服务器解析,only表示只在

         forwarders { 192.168.30.17; }                         ##指向的DNS服务器解析

};

全局4

注意确定主配置文件recursion yes;并且关闭dnssec功能否则也将导致实验失败

重启named服务

rndc reload

4切换至客户端进行测试:

首先清除dns缓存记录

rndc flush

进行ping测,解析成功(由于未搭建web服务器,所以显示主机不可达)

ping www.wxlinux.com

全局5.0

指定DNS1服务器解析地址,发现DNS1直接指向了DNS2服务器进行解析

dig www.wxlinux.com @192.168.30.10

全局5

 

(二)特定区域转发:

仅转发对特定的区域的请求,比全局转发优先级高

前期准备:

同全局转发实验

实验预期:

只有在访问wxlinux.com域时,才优先指向DNS2服务器进行解析

1在DNS1删除刚才的全局配置,新增加区域配置文件内容如下:

只有当访问wxlinux.com域时,才优先转发DNS2服务器解析

vim /etc/named.rfc1912.zones

zone “wxlinux.com” IN {

         type forward;

         forward first|only;

         forwarders {192.168.30.16;};

特定域1

清理DNS1服务器的DNS缓存

rndc flush

2切换至客户端测试:

解析成功,只在访问wxlinu.com优先指向DNS2服务器进行解析

dig www.wxlinux.com @192.168.30.10

特定域转发2

 

九、实验:实现智能DNS

前期准备:

DNS服务器:两块网卡地址分别为172.20.113.242和192.168.30.10

模拟192.168.30.0/24网段为北京地区地址段

模拟172.20.0.0/16   网段为上海地区地址段

实验预期:

北京用户访问时返回192.168.30.1

上海用户访问时返回192.168.30.2

其他地区用户访问时防护192.168.30.3

 

1在主配置文件中添加ACL

智能1

2建立与ACL映射的数据库

区域解析配置

view4

3建立view,一但采用viwe,必须把所有区域信息放到view语句块中,否则将失效,为了便于管理,我们将主配置文件中此段内容剪切至/etc/named.rfc19212.zones中

view1

view2

vim /etc/named.conf

添加view:如图

view3

4创建view对应的区域数据信息

cp  /etc/named.rfc1912.zone    /etc/named.rfc1912.zone.beijing –a

cp  /etc/named.rfc1912.zone    /etc/named.rfc1912.zone.shanghai –a

vim /etc/named.rfc1912.zone.beijing

zone “wxlinux.com” IN {

         type master

         file “wxlinux.com.zone.beijing”;

viww6

vim /etc/named.rfc1912.zone.shanghai

zone “wxlinux.com” IN {

         type master

         file “wxlinux.com.zone.beijing”;

view5

最终生成三个独立的区域数据信息

view7

重启named服务

rndc reload

5切换到客户端进行测试:

(1)192.168.30.0/24测试

dig www.wxlinux.com @192.168.30.10

当地址为192.168.30.0/24段时,web服务器指向192.168.30.1

测试2

(2)172.20.0.0/16测试

dig www.wxlinux.com @172.20.113.242

当地址为172.20.0.0/16段时,web服务器指向192.168.30.2

测试3

(3)其他网段测试

切换回DNS服务器端:

dig www.wxlinux.com @127.0.0.1

由于127.0.0.1不属于上述两个网段之一,所以DNS服务器将web服务器地址指向192.168.0.3

测试4

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

(1)
wangxczwangxcz
上一篇 2018-06-02
下一篇 2018-06-02

相关推荐

  • 编译安装LAMP示例

    httpd 2.4.9 + mysql-5.5.33 + php-5.4.26编译安装过程: 一、编译安装apache 1、解决依赖关系 httpd-2.4.9需要较新版本的apr和apr-util,因此需要事先对其进行升级。升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包。这里选择使用编译源代码的方式进行,它们的下载路径为ftp://172…

    Linux笔记 2018-05-29
  • 变量替换 字符串处理

    变量替换非空 空 不存在 Var=${Str-Expr} Str 空 Expr Var=${Str:-Expr} Str Expr Expr 不存在至stderrVar=${Str?Expr} Str 空 Expr(stderr) Var=${Str:?Expr} Str Expr(stderr) Expr(stderr) 不存在 被赋值Var=${Str=…

    Linux笔记 2018-07-15
  • LINUX磁盘管理笔记

    磁盘组成:扇区 sector          磁头  head 柱面 cylinder就是磁道相同序列的和 磁道  track 硬盘使用步骤: a.分区 b.创建文件系统;格式化 c.挂载;分配目录名   a.分区: 意义: a、优化i/o性能 ;b、提高修复速度 ;c、隔离系统和程序 d、安装多个OS  e、使用不同的文件格式 按柱面分区有两种…

    Linux笔记 2018-04-29
  • redis

    分布式存储一定是每个节点只存储一部分数据。

    2018-07-20
  • bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

    bash的基础特性: 1.命令补全: shell程序在接收到用户执行命令的请求时,分析完成之后,最左侧的字符串会被当作命令; 命令查找机制: 根据PATH环境变量中设定的目录,自左向右逐个搜多目录下的文件名 给定的打头字符串,如果能唯一标识某命令程序文件,则直接补全,                      如果不能唯一标识某命令程序文件,再tab一次会给…

    Linux笔记 2018-05-20