2019-10-24 18:05:43 weixin_40231055 阅读数 212
  • Windows Server 2012 R2 服务器应用与架站(中级全套...

    全套视频共分为9种企业常见应用服务器构建与管理,每一章节从初级讲起,做到全方位技术提高,内容包括DHCP 服务器搭建与管理、DNS服务器搭建与管理、IIS服务器的搭建与管理、PKI与SSL网站搭建与管理、FTP服务器的搭建与管理、打印服务器的设置与管理、WSUS服务器部署与更新程序、故障转移群集服务器的搭建与管理、网络负载平衡群集(NLBC)服务器的搭建与管理。

    10568 人正在学习 去看看 深博

DNS服务

DNS(Domain Name Service) 域名解析服务,就是将域名和IP之间做相应的转换,利用 TCP 和 UDP 的53号端口

DNS系统作用

正向解析:根据域名查找对应的ip地址
反向解析:根据ip地址查找对应的域名

DNS服务器的分类

主域名服务器
负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。
辅助域名服务器
当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为主域名服务器的备份提供域名解析服务。辅助域名服务器中的区域文件中的数据是从另外的一台主域名服务器中复制过来的,是不可以修改的。
缓存域名服务器
从某个远程服务器取得每次域名服务器的查询回答,一旦取得一个答案就将它放在高速缓存中,以后查询相同的信息就用高速缓存中的数据回答,缓存域名服务器不是权威的域名服务器,因为它提供的信息都是间接信息。
转发域名服务器
负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

1、安装服务

yum –y install bind #安装DNS 服务
yum -y install bind-utils #安装DNS 检测工具

2、编辑主配置文件

vi /etc/named.conf

options {
        listen-on port 53 { 192.168.105.80; };       //修改为本机ip
        listen-on-v6 port 53 { any; };                //修改为any
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };           //修改为any

3、检查语法错误

named-checkconf

4、编辑配置文件

vi /etc/named.rfc1912.zones

在最后添加

//正向区域配置
zone "xugz.com" IN {               
        type master;
        file "xugz.com.zone";
        allow-update { none; };
};

//反向区域配置
zone "80.105.168.192.in-addr.arpa" IN {      //ip地址反写          
        type master;
        file "xugz.com.local";
        allow-update { none; };
};

5、编辑正向DNS配置文件

cd /var/named
cp -p named.localhost xugz.com.zone #编辑正向区域数据配置文件,注意复制配置文件时,要保持源文件权限
vi xugz.com.zone

$TTL 1D
@       IN SOA  xugz.com. www.xugz.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      xugz.com.
                A       192.168.105.80
www  IN         A       192.168.105.70
ftp  IN         A       192.168.105.71
                AAAA    ::1

6、编辑反向配置文件

cp -p named.localhost xugz.com.local #复制反向区域数据配置文件
vi xugz.com.local

$TTL 1D
@       IN SOA xugz.com. www.xugz.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                        NS      xugz.com.
                        A       192.168.105.80
192.168.105.70  IN      PTR     www
192.168.105.71  IN      PTR     ftp

7、添加DNS解析

vi /etc/sysconfig/network-scripts/ifcfg-eno16777736

DNS1=192.168.105.80     ##末尾添加一行

或者

vi /etc/resolv.conf

nameserver 192.168.105.80    ##末尾添加一行

8、重启测试

systemctl restart named //重启DNS服务
nslookup www.xugz.com //测试正向解析
host www.xugz.com //测试正向解析
nslookup 192.168.105.80 //测试反向解析

2020-02-11 18:29:57 weixin_44176630 阅读数 60
  • Windows Server 2012 R2 服务器应用与架站(中级全套...

    全套视频共分为9种企业常见应用服务器构建与管理,每一章节从初级讲起,做到全方位技术提高,内容包括DHCP 服务器搭建与管理、DNS服务器搭建与管理、IIS服务器的搭建与管理、PKI与SSL网站搭建与管理、FTP服务器的搭建与管理、打印服务器的设置与管理、WSUS服务器部署与更新程序、故障转移群集服务器的搭建与管理、网络负载平衡群集(NLBC)服务器的搭建与管理。

    10568 人正在学习 去看看 深博

DNS服务器
服务名named
软件包名bind
RHEL5:必须一个叫做chroot的环境
RHEL6$RHEL7:没有严格的要求,如果用yum安装,默认安装chroot

systemctl restart named
软件包名字:bind
服务名称:named
专用术语:DNS

DNS服务器配置:

1:查询是否已经安装DNS

[root@node1 ~]# rpm -qa | grep bind
bind-license-9.9.4-37.el7.noarch
bind-libs-9.9.4-37.el7.x86_64
bind-libs-lite-9.9.4-37.el7.x86_64

或者:
[root@node1 ~]# yum install -y bind*

2:重启服务

[root@node1 named]# systemctl restart named

RHEL5:必须存在一个叫做chroot的环境
RHEL6&RHEL7:没有严格的要求必须安装chroot。如果使用yum安装,默认是安装chroot

3:查看配置文件

[root@node1 named]# vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; };-----DNS服务器的地址(本机)
listen-on-v6 port 53 { ::1; };----IPV6的地址
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 { localhost; };-----允许那些主机查询本dns

zone “.” IN { -----.表示的是根域服务器
type hint; -----类型为hint,表示的是根域
file “named.ca”;-----根域服务器的配置文件名称,该文件记录所有根域服务器
};

4:主配置文件的编辑

明确:
1:你要使用谁做dns服务器,地址是多少(我的是192.168.1.111)
2:准备怎么做(是否做主从)
[root@node1 named]# vim /etc/named.conf
// named.conf
options {
listen-on port 53 { 192.168.1.111; };
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 { 192.168.1.0/24; };
};

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

#定义配置文件
#1定义正向区域配置文件
zone “baidu.com” IN {
type master;
file “baidu.zhengx.zone”;
};

#定义反向解析配置文件
zone “1.168.192.in-addr.arpa” IN {
type master;
file “baidu.fanx.zone”;
};

4:正向区域配置文件和反向区域配置文件默认都不存在,需要手动创建
[root@node1 named]# ls
chroot dynamic named.ca named.localhost-----这个文件是模板文件
data dyndb-ldap named.empty named.loopback

5:查看模板文件

[root@node1 named]# vim named.localhost
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1

C:\Windows\System32\drivers\etc----windows下hosts文件存放的位置

6:创建区域配置文件并编辑

[root@node1 named]# cp named.localhost baidu.zhengx.zone -p
[root@node1 named]# ll
-rw-r-----. 1 root named 152 Jun 21 2007 baidu.zhengx.zone
(看啥?
1:名字是否跟主配置文件/etc/name.conf写的一致
2:看该文件的所属组是不是为named
3:-p是带权限拷贝,也是就使所属组为named)

7:编辑正向区域配置文件

[root@node1 named]# vim baidu.zhengx.zone
$TTL 1D
@ IN SOA baidu.com. root.node1.baidu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS node1.baidu.com.
node1 A 192.168.1.111
node2 A 192.168.1.222

8:编辑反向区域配置文件

[root@node1 named]# cp baidu.zhengx.zone baidu.fanx.zone
[root@node1 named]# ll
total 24
-rw-r-----. 1 root root 193 Jun 23 06:49 baidu.fanx.zone–所属组为root
-rw-r-----. 1 root named 193 Jun 23 06:49 baidu.zhengx.zone
[root@node1 named]# chgrp named baidu.fanx.zone
[root@node1 named]# ll
total 24
-rw-r-----. 1 root named 193 Jun 23 06:49 baidu.fanx.zone
-rw-r-----. 1 root named 193 Jun 23 06:49 baidu.zhengx.zone
[root@node1 named]# vim baidu.fanx.zone
$TTL 1D
@ IN SOA baidu.com. root.node1.baidu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS node1.baidu.com.
111 PTR node1.baidu.com.
222 PTR node2.baidu.com.

9:确认你的服务器IP地址和主机名

[root@node1 named]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.111 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fe40:9de0 prefixlen 64 scopeid 0x20
ether 00:0c:29:40:9d:e0 txqueuelen 1000 (Ethernet)
RX packets 9691 bytes 945995 (923.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2206 bytes 331857 (324.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[root@node1 named]# vim /etc/hostname
[root@node1 named]# hostname node1.baidu.com
[root@node1 named]# hostname
node1.baidu.com

node1的dns需要指向自己
[root@node1 named]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
IPADDR=192.168.1.111
PREFIX=24
GATEWAY=192.168.1.1
DNS1=192.168.1.111
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=“System ens33”
UUID=c96bc909-188e-ec64-3a96-6a90982b08ad

[root@node1 named]# systemctl restart network

10:把node2加入到该域中

1:修改主机名
[root@node2 ~]# vim /etc/hostname 
node2.baidu.com
[root@node2 ~]# hostname node2.baidu.com
[root@node2 ~]# hostname
node2.baidu.com
2:修改网络配置,将DNS指向DNS服务器
[root@node2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@node2 ~]# systemctl restart network

[root@node2 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=2ed71679-1f8f-4aea-afaf-6fa7aed2fb13
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.222
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.111

[root@node1 named]# systemctl restart named
[root@node1 named]# dig -t axfr baidu.com

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t axfr baidu.com
;; global options: +cmd
baidu.com. 86400 IN SOA baidu.com. root.node1.baidu.com. 0 86400 3600 604800 10800
baidu.com. 86400 IN NS node1.baidu.com.
node1.baidu.com. 86400 IN A 192.168.1.111
node2.baidu.com. 86400 IN A 192.168.1.222
baidu.com. 86400 IN SOA baidu.com. root.node1.baidu.com. 0 86400 3600 604800 10800
;; Query time: 4 msec
;; SERVER: 192.168.1.111#53(192.168.1.111)
;; WHEN: Sun Jun 23 07:11:41 AST 2019
;; XFR size: 5 records (messages 1, bytes 162)

[root@node1 named]# nslookup

node1.baidu.com
Server: 192.168.1.111
Address: 192.168.1.111#53

Name: node1.baidu.com
Address: 192.168.1.111

192.168.1.222
Server: 192.168.1.111
Address: 192.168.1.111#53

222.1.168.192.in-addr.arpa name = node2.baidu.com.

**DNS域名解析工作原理
<1> 客户机提交域名解析请求,并将该请求发送给本地的域名服务器。
<2> 当本地的域名服务器收到请求后,就先查询本地的缓存。如果有查询的DNS信息记录,则直接返回查询的结果。如果没有该记录,本地域名服务器就把请求发给根域名服务器。
<3> 根域名服务器再返回给本地域名服务器一个所查询域的顶级域名服务器的地址。
<4> 本地服务器再向返回的域名服务器发送请求。
<5> 接收到该查询请求的域名服务器查询其缓存和记录,如果有相关信息则返回客户机查询结果,否则通知客户机下级的域名服务器的地址。
<6> 本地域名服务器将查询请求发送给返回的DNS服务器。
<7> 域名服务器返回本地服务器查询结果(如果该域名服务器不包含查询的DNS信息,查询过程将重复<6>、<7>步骤,直到返回解析信息或解析失败的回应)。
<8> 本地域名服务器将返回的结果保存到缓存,并且将结果返回给客户机。

正向解析与反向解析
1)正向解析
正向解析是指域名到IP地址的解析过程。
2)反向解析
反向解析是从IP地址到域名的解析过程。反向解析的作用为服务器的身份验证。
DNS查询类型
1.递归查询: 简单的理解就是以最终结果查询,就是返回最终的结果给客户机,而客户机在此阶段是处于等待的状态!(就好比,你在家里地位最高,你都是衣来伸手饭来张口的,最什么事情就只要一句话不用自己亲自动手)

2.迭代查询:简单的理解就是以最佳的结果查询,意思就是如果DNS服务器能解析就直接以最终结果返回给客户机,如果无法解析则就返回上一级DNS服务器的IP给客户机,由客户机完成查询工作直到得到最终结果!(举个例子就是什么事情你去问别人,别人只是告诉你怎么做,你知道后要自己亲自去做)

这里要带权限拷贝,加-p的参数(2个文件都要(正向解析和反向解析))
TTL 生存周期,在红帽5下面默认单位是秒,在红帽6和红帽7下面,它是单位是天。
@ 这里如果是“@”和“空白”都代表是域名,那代表那个域名?dyzx.edu.zone
SOA 这里的SOA叫做起始授权服务器。只有它能和根域服务器交流。它相当于基督教的神父。
Serial 序列号,这个是我们做主从服务器用的,用于我们的主/从同步。就是当我们的主服务器宕机之后,我们的从服务器来接手工作。而且我们的从服务器是没有区域配置文件的,也就是说,从服务器的区域配置文件我们根本不要写,那从服务器的区域配置文件从哪里来?从服务器就是没有区域配置文件。靠什么来做匹配呢?匹配的是什么呢?就根据这个序列号来匹配我们的解析条目。当我们的服务器里面有新的解析条目出现的时候,这个序列号就会+1。这个时候,从服务器就去匹配我们主服务器的解析条目。如果从服务器发现主服务器的这个序列号比自己的序列号还小的话,它就不会去同步主服务器了!
Refresh 刷新时间。从服务器多久刷新一次,这个值是可以修改的。
Retry 重试时间,当我们的从服务器没法连接主服务器的时候,它每个多久重新连接一次
Experi 过期时间,什么意思呢!就是说,当我们的从服务器不断去刷新的时候,这个动作持续多久,1周!如果这一周从服务器都没能连接上主服务器,宣告数据过期,我将不在重试了!
minimum 最小生存周期
NS Name server名称服务器。它是专门做递归查询的。
MX 5 Mail exchange ,邮件交换,级别为5**

注意提示;1.经常出现问题的地方,权限没有满足2.防火墙设置允许3.selinux可以设置为通过比较好

2018-10-04 21:43:29 xpt211314 阅读数 538
  • Windows Server 2012 R2 服务器应用与架站(中级全套...

    全套视频共分为9种企业常见应用服务器构建与管理,每一章节从初级讲起,做到全方位技术提高,内容包括DHCP 服务器搭建与管理、DNS服务器搭建与管理、IIS服务器的搭建与管理、PKI与SSL网站搭建与管理、FTP服务器的搭建与管理、打印服务器的设置与管理、WSUS服务器部署与更新程序、故障转移群集服务器的搭建与管理、网络负载平衡群集(NLBC)服务器的搭建与管理。

    10568 人正在学习 去看看 深博

介绍:什么是DNS服务器就不说了,至于搭建dns服务器,在linux上有很多的服务可以搭建的,比如:bind、dnsmasq、unbound....等;

直接上干货:

搭建环境:redhat7.0,yum源挂载的是redhat7.0的光盘;

一、Dnsmasq安装
    yum install dnsmasq -y

二、Dnsmasq配置

1、Dnsmasq的配置文件为:/etc/dnsmasq.conf

2、编辑/etc/dnsmasq.conf

找到下列参数修改或添加:

    resolv-file=/etc/resolv.dnsmasq.conf           //会从这个文件中寻找上游dns服务器
    strict-order                                  //去掉前面的#
    addn-hosts=/etc/dnsmasq.hosts                //在这个目录里面ip和域名dnsmasq 
    listen-address=127.0.0.1,172.22.10.50         //监听地址

3、修改/etc/resolv.conf

        /etc/resolv.conf 定义了本机的dns地址(在本身不是dns服务器之前),将该文件内容注释并添加  nameserver 127.0.0.1  ,使用本机作为dns服务器;

4、创建 /etc/resolv.dnsmasq.conf 文件并添加上游dns服务器的地址

        默认没有  /etc/resolv.dnsmasq.conf ,需要按照dnsmasq配置文件中参数定义的路径创建;

        touch /etc/resolv.dnsmasq.conf

        echo 'nameserver 114.114.114.114' > /etc/resolv.dnsmasq.conf       

        * 以 114.114.114.114 为上游的dns服务器;

        resolv.dnsmasq.conf 中设置的是真正的nameserver,可以用电信、联通等公共的DNS

5、创建 /etc/dnsmasq.hosts 文件

           touch /etc/dnsmasq.hosts

           vim 编辑 /etc/dnsmasq.hosts 文件,添加ip对应的域名,例如:

                         192.168.111.111       xpt.redhat.cn

            这样,当客户端要求解析 xpt.redhat.cn 时,会解析为192.168.111.111 ;

三、Dnsmasq启动

1、设置Dnsmasq开机启动并启动Dnsmasq服务:
    systemctl start dnsmasq.service
    systemctl enable dnsmasq.service

2、netstat -tunlp | grep 53 查看Dnsmasq是否正常启动:
    # netstat -tlunp|grep 53
    tcp        0      0 0.0.0.0:53                  0.0.0.0:*                   LISTEN      2491/dnsmasq        
    tcp        0      0 :::53                       :::*                        LISTEN      2491/dnsmasq        
    udp        0      0 0.0.0.0:53                  0.0.0.0:*                               2491/dnsmasq        
    udp        0      0 :::53                       :::*        

如果有防火墙的话还需要打开防火墙:

 firewall-cmd --add-service=dns        //允许防火墙临时放行dns服务;

firewall-cmd --add-service=dns --permanent        //允许dns通过,永久生效;

 

#####  到此处,一个简单的dns服务器就搭建成功了,主要是理解配置文件中参数定义的文件路径都是什么作用;

可以使用 自己的windows电脑做测试,将自己windows的dns修改成搭建dns服务器的ip;

运行cmd,使用host 或者nslookup命令都可以:

              hsot   xpt.redhat.cn

              nslookup   xpt.redhat.cn

工作流程:

          windows向dns服务器发送请求解析 xpt.redhat.cn ,dns服务器接收到之后先去 /etc/dnsmasq.hosts 文件中寻找有误匹配的ip、域名,如果有则返回域名对应的ip,如果没有则向 /etc/resolv.dnsmasq.conf 中定义的上级dns服务器发送请求解析;

下面是对dns服务器配置进一步的深入:

1.对参数的解释:
    resolv-file            定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。
    strict-order        表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
    listen-address        定义dnsmasq监听的地址,默认是监控本机的所有网卡上。
                            局域网内主机若要使用dnsmasq服务时,指定本机的IP地址。
    address                启用泛域名解析,即自定义解析a记录,如下配置为demon.com这个域名:
                            address=/demon.com/127.0.0.1  #访问demon.com时的所有域名都会被解析成127.0.0.1
    server                指定dnsmasq程序使用哪个DNS服务器进行解析。对于不同的网站可以使用不同的域名对应解析如下配置
                            server=/google.com/8.8.8.8    #表示对于google的服务,使用谷歌的DNS解析。
    bogus-nxdomain        为防止DNS污染,使用参数定义的DNS解析的服务器。注意:如果是阿里云服务器上配置dnsmasq要启用此项。

############## dns服务器的优化 ################

一、应对ISP的DNS劫持
1.输入一个不存在的域名,正常的情况下浏览器是显示无法连接,DNS劫持会跳转到一个广告页面。
    先随便 nslookup 一个不存在的域名,看看ISP商劫持的IP地址。        
2.接着编辑/etc/dnsmasq.conf文件,将:bogus-nxdomain=123.123.123.123 加入进去,
    后面的IP是刚刚查询到的DNS劫持IP地址;
3.重启dnsmasq,再尝试打开不存在的域名,这时浏览器就会显示正常的无法连接页面了。

二、智能DNS加快解析速度。
    打开/etc/dnsmasq.conf文件,server=后面可以添加指定的DNS,例如国内外不同的网站使用不同的DNS。
        #国内指定DNS
        server=/cn/114.114.114.114
        server=/taobao.com/223.5.5.5
        server=/taobaocdn.com/114.114.114.114
        #国外指定DNS
        server=/google.com/8.8.8.8
        server=/cn/表示所有的cn域名都使用114这个公共DNS,
        
三、屏蔽网页广告。
    将指广告的URL指定127这个IP,就可以将网页上讨厌的广告给去掉了。
    address=/ad.youku.com/127.0.0.1
    address=/ad.iqiyi.com/127.0.0.1    

四、指定域名解析到特定的IP上
    这个功能可以让你控制一些网站的访问,非法的DNS就经常把一些正规的网站解析到不正确IP上。
    address=/freehao123.com/123.123.123.123

五、内网DNS
    首先将局域网中的所有的设备的本地DNS设置为已经安装Dnsmasq的服务器IP地址。
    然后修改已经安装Dnsmasq的服务器Hosts文件:/etc/hosts,指定域名到特定的IP中。

 

2017-09-21 23:33:04 zhangym199312 阅读数 2950
  • Windows Server 2012 R2 服务器应用与架站(中级全套...

    全套视频共分为9种企业常见应用服务器构建与管理,每一章节从初级讲起,做到全方位技术提高,内容包括DHCP 服务器搭建与管理、DNS服务器搭建与管理、IIS服务器的搭建与管理、PKI与SSL网站搭建与管理、FTP服务器的搭建与管理、打印服务器的设置与管理、WSUS服务器部署与更新程序、故障转移群集服务器的搭建与管理、网络负载平衡群集(NLBC)服务器的搭建与管理。

    10568 人正在学习 去看看 深博

一、bind简介
Linux中通常使用bind来实现DNS服务器的架设,bind软件由isc(www.isc.org)维护。在yum仓库中可以找到软件,配置好yum源,直接使用命令yum install bind就可以安装,监听窗口为53。bind的主要配置文件为/etc/named.conf,此文件主要用于配置区域,并指定区域数据库文件名称。区域数据库文件通常保存于/var/named/目录下,用于定义区域的资源类型。
——————————————————————————————————————————————————————————————————
二、架设主DNS服务器、
实例操作:以域名zym.com为例配置一个DNS服务器,实现正向解析。
配置一台ip为172.18.24.17/16的主机作为DNS服务器。
为了实验能成功进行,我们把selinux和防火墙先关闭

[root@centos7~ ]#setenforce 0    #设置selinux为permissvie
[root@centos7~ ]#systemctl stop firewalld   #关闭防火墙
[root@centos7~ ]#ss -ntl         #查看53号端口是否打开,监听本机的IP

修改主配置文件

[root@centos7~ ]#vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1;localhost;}; #监听本地所有的IP
allow-query     { any;};    #所有的客户端都可以查询区域数据库,实现解析 
}

定义用户自定义域

[root@centos7~ ]#vim /etc/named.rfc1912.zones  #用户自定域,也可以把域写在/etc/named.conf文件中
zone "zym.com" IN {     #添加zym.com域
        type master;    #指定类型为主                                            
        file "zym.com.zone";   #指定区域数据库文件名                                    
};

写解析数据库文件

[root@centos7~ ]#vim /var/naemd/zym.com.zone
$TTL 1D
@   2D  IN  SOA  dns1 admin.magedu.com. (       
      200005    ; serial  #版本号,版本号可以任意数值,位数不能超过10个
      1D        ; refresh #更新间隔时间,1D表示一天
      1H        ; retry   #同步数据失败后,再次尝试同步间隔时间。1H表示1小时
      1W        ; expire #一直不能同步数据,此间隔时间后从服务器不再提供解析服务
      3H )      ; minimum  #错误请求间隔时间,此时间内不再重启查询,直接将结果返回给客户端
               NS             dns1          #指明服务器名称
dns1    2D IN  A              172.18.24.17  #服务器IP
www            CNAME              web       #指明www为web的别名 
web            A              172.18.24.26  #域名对应的IP
zym.com.       A              172.18.24.27        
[root@centgos7 named]# ll zym.com.zone 
-rw-r----- 1 root root 296 Sep 22 05:49 zym.com.zone 
#只有所有者和所属组有读的权限,这里所有主和所属组都是root用户,其他用户没有读的权限,故需要下面的一步修改,让named有读解析数据文件的权限
[root@centos7~ ]#chgrp named /var/named/zym.com.zon  
#很重要的一步,把zym.com.zon解析数据文件的属组改为named,这是DNS服务创建的一个用户,用于方便调用DNS服务,这里把属组改成named,named就有权限为客户端读取解析数据,达到查询解析的目的

主配置文件语法检查

[root@centos7~ ]#named-checkconf  #检查配置文件中的语法/etc/named.conf /etc/named.rfc1912.zones
[root@centos7~ ]#named-checkzone zym.com /var/named/zym.com.zone #解析库文件语法检查
[root@centos7~ ]#rndc reload     #加载DNS配置文件  

这里写图片描述

测试主DNS服务器能否解析
用IP为172.18.24.6/16的主机测试IP为172.18.24.17的DNS主服务器能否正常解析域名
保证两台主机能正常通信
在IP为172.18.24.6/16的主机上用yum安装bind-utils包,安装此包中有dig命令dig命令的这里不详细讲解了,有兴趣的同学可以看我另外一篇关于DNS的博客,里面有详解讲解dig的用法

[root@centos7~ ]#dig www.zym.com @172.18.24.17  #在指定ip为172.18.24.17的主机上查询域名为www.zym.com的ip地址
[root@centos7~ ]#dig zym.com @172.18.24.17  #在指定ip为172.18.24.17的主机上查询域名为zym.com的ip地址,这里

这里写图片描述
——————————————————————————————————————————————————————————————————
三、架设从DNS服务器
准备:
1. 一台IP为172.18.24.7/24的主机,并且能于IP为172.18.24.17/16主DNS服务器、IP为172.18.24.6/测试主机通信。
2. 为了保证实验顺利进行,我们先把selinux和防火墙关闭,第二步架设主DNS服务器有写,这里不再赘述。

同理修改主配置文件

[root@centos7~ ]#vim /etc/named.conf
options {
    listen-on port 53 { localhost;};   #监听本地所有的IP
    allow-query       { any;};         #所有的客户端都可以查询区域数据库,实现解析 
}

定义用户自定义域

[root@centos7~ ]#vim /etc/named.rfc1912.zones  #用户自定域,也可以把域写在/etc/named.conf文件中
zone "zym.com" IN {           #添加zym.com域
        type slave;               #指定类型为从服务器
        masters {172.18.24.17;};   #指定从当前从服务器对应的主服务器IP地址
        file  "slaves/zym.com.slave.zone";  #指定从解析数据库文件名

这里我们就不需要在自己写解析数据文件了,我们要实现主从DNS服务器,那么数据就必须要同步,接下来,我们就开始同步解析数据文件

[root@localhost ~]#cd /etc/named/slaves 
[root@localhost slaves]#ls
[root@localhost slaves]#rndc reload   #从主服务器同步解析数据到从服务器上
server reload successful
[root@localhost slaves]# ls
zym.com.slave.zone
#注意:区域数据库文件zym.com.slave.zone在centos6是明文,而在centos7是密文 

在IP为172.18.24.6/主机上测试两台主机能否正常解析
测试主DNS服务器能否正常解析

这里写图片描述

测试主DNS服务器能否正常解析

这里写图片描述

从上面两个图可以清楚的看到,主从服务器都能正常解析
——————————————————————————————————————————————————————————————————
四、实现容错

原理:
搭建主从服务器,除了减轻负载,还有一个更重要的作用,实现容错。容错,顾名思义,就是允许出现错误,出现问题后任然对外能够提供服务,实现思想是,一台服务器坏了,另外一台能正常工作,对外提供服务。
实验过程分析:
我们这里模拟真实环境,dig测试不再指定用哪个服务器来解析域名,那么我们需要修改测试主机上的网卡配置,指定DNS主从服务器

[root@CentOS6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
IPADDR=172.18.24.6
PREFIX=16
DNS1=172.18.24.17    #主
DNS2=172.18.24.7     #从
BOOTPROTO=static
GATEWAY=172.18.0.1
[root@CentOS6 ~]#dig www.zym.com 

这里写图片描述

现在我们把主服务器上的ip为172.18.24.17的网卡down掉,模拟主机服务器出问题。

[root@CentOS7 ~]#ifconfig ens37 down 

这里写图片描述

再次在测试主机上测试
这里写图片描述

测试成功。
说明:在执行 dig www.zym.com 命令后,明显可以感觉停顿了一两秒时间才显示出结果,比down掉网卡前慢了些许,因为我们配置网卡的时候,把主服务器的IP放在了从服务器IP的前面,当执行解析命令后,主机首先会到主服务器上去查询,结果主服务器网卡坏掉了,不能提供服务,然后主机会到从服务器去查询,从服务器正常工作,解析出域名,返回给主机,显示出结果。
——————————————————————————————————————————————————————————————————
五、安全加强
利用dig命令可以直接抓取的服务器上的解析数据的所有解析记录,而且是明文,现在存在很大的危险漏洞。
先把第四步禁掉的网卡启用起来,然后抓取主服务器上的解析纪录

[root@CentOS7 ~]#ifconfig ens37 up

在测试主机抓取

[root@CentOS6 ~]#dig -t axfr zym.com @172.18.24.17    

这里写图片描述

在主DNS服务器上安全加强

[root@CentOS7 ~]#vim /etc/named.conf
options{
allow-transfer  {172.18.24.7;};  #在options中加入此行,表示只允许172.18.24.7这个IP查询解析数据,我们知道172.18.24.7是从服务器的IP,所以一般设置的都是从服务器才有权限查询解析数据
};

再次测试

这里写图片描述

虽然我们在主服务上设置了安全策略,但是外部主机还是可以照样抓取从服务器上的解析纪录,同样存在安全漏洞。

这里写图片描述

从服务器上安全加强

[root@CentOS7 ~]#vim /etc/named.conf
options{
    allow-transfer  {none;};  #从服务器一般没有谁需要同步解析纪录,所以我们这里设置为none
};

测试

这里写图片描述

测试成功。
注意:这里我们只是设置了同步解析数据纪录的纪录,并没有限制查询,外部的主机都是可以在主从DNS服务器查询域名的,因为DNS本身就是对外提供查询服务的。

总结:这里我们是实验环境,为了方便实验把防火墙和selinux都关闭了,但是在生产中环境中,可不能随便把防火墙强关闭,需要提前设置防火墙策略,有安全要求较高的话,还需要设置selinux策略,然后搭建服务。同时我们应该知道,无论是实验环境还是真实生产环境,原理都是想通的。主从DNS服务器不仅能均衡负载,还可以实现容错,在生产中广泛使用。

2019-07-25 11:24:45 chen010416 阅读数 1535
  • Windows Server 2012 R2 服务器应用与架站(中级全套...

    全套视频共分为9种企业常见应用服务器构建与管理,每一章节从初级讲起,做到全方位技术提高,内容包括DHCP 服务器搭建与管理、DNS服务器搭建与管理、IIS服务器的搭建与管理、PKI与SSL网站搭建与管理、FTP服务器的搭建与管理、打印服务器的设置与管理、WSUS服务器部署与更新程序、故障转移群集服务器的搭建与管理、网络负载平衡群集(NLBC)服务器的搭建与管理。

    10568 人正在学习 去看看 深博

恰同学少年,风华正茂。

前言

说到DNS,相信大家非常的耳熟,那是因为在访问网站时都需要用到服务,可以说是掌握了网页的命脉啊
Dns服务器主要是用于帮助用户方便访问网站,在访问某一网站时,可以通过dns服务器来进行解析,
这样就可以在不知道主机ip地址的情况下通过它的名字来进行访问。
那DNS究竟是怎么样进行运作,有应该如何的安装呢?这一篇文章就来为大家揭开dns神秘的面纱。
在这里插入图片描述

Dns服务简介

在正式开始学习前,我先为大家介绍个文件 /etc/hosts 哈哈,大家对这个文件肯定不陌生吧,没错他就是dns的前身,最早期没有dns的主机,就是利用/etc/hosts 文件来实现域名解析这个功能的,每一台主机上都保存了一份本地网中全部主机及其对应的ip地址清单。
在这里插入图片描述
好家伙 看着头都大了
在这里插入图片描述

但是人脑对于一连串的数字字母,记忆起来确实很吃力,这样,当需要访问某一个主机时就要先查询对方的ip地址,确实很麻烦 也增加了访问网页的复杂性,为了解决这个难题,BIND就应运而生啦, 这一套分布式管理主机ip地址的系统就是目前全世界使用最广泛的域名解析系统
在这里插入图片描述

DNS查询原理

在dns的系统中提供dns解析的主机被称为dns服务器或者域名服务器,而进行“域名查询“请求的主机,则被成为dns客户端,不过在dns客户端中,也有简单的dns查询服务,其中包括/etc/host.conf resolvhosts3
在这里就不为大家具体解释这三个文件了。
通常在进行测试调试过程中需要某一个网站的解析 我通常就喜欢用hosts 文件来进行解析 。
因为确实是方便啊 嘿嘿嘿。

在这里插入图片描述

后面会为大家简单介绍一下hosts文件的使用方法

切入正题

在客户端发送查询信息中包含最重要的一条信息:
被指定的dns域名 必须为完全合格域名(FQDN)
Ps :(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。(通过符号“.”)。

说一下 当客户端需要域名解析是 并不是直接向域名解析服务器进行解析,而是首先在本机进行域名解析的操作 如果解析不到,才向域名解析服务器发送解析请求。

linux客户端默认解析就是首先查询host文件 如果host文件中查询不到 才会向dns服务器发送请求

hosts文件的使用方法

在这里插入图片描述
第一部分的内容是主机的ip地址 第二部分是域名 第三部分是主机的别名
在这里插入图片描述

DNS服务器安装搭建

Linux系统下假设DOS服务器通常时使用Bind程序来实现的。Bind是最知名域名服务器软件,他完整的实现了DNS协议规定的各种功能。可以在各种主流的操作系统平台上运行,并且被作为许多供应商的unix标准配置封装在产品中。
在这里插入图片描述
Bind基础命令
yum install -y bind bind-utils ##Bind安装包 utils是一个bind测试工具(可选择)
service named start ##开启命令
service named stop ##关闭服务命令
service named restart ##重新启动服务命令
chkconfig named on ##设置开机自启动
在这里插入图片描述

安装成功 我们继续往下走
与其他服务器相比,Bind的配置文件结构要复杂得多,而且在配置文件不正确的时候,Bind也无法运行。我先讲一套最简单的配置文件,使Bind能正常运行起来,并具有初步的域名解析功能。
在这里插入图片描述
我们首先进入主配置文件

[root@Demo ~]# vim /etc/named.conf 
 10 options {
 11         listen-on port 53 { any; };				##开启端口监听  DNS为53号端口
 12         listen-on-v6 port 53 { ::1; };
 13         directory       "/var/named";
 14         dump-file       "/var/named/data/cache_dump.db";
 15         statistics-file "/var/named/data/named_stats.txt";
 16         memstatistics-file "/var/named/data/named_mem_stats.txt";
 17         allow-query     { any; };				##允许所有
 18         recursion yes;	
 19 
 20         dnssec-enable no ;						##可选择yes
 21         dnssec-validation no;					##可选择yes
 22         dnssec-lookaside auto;
 23 
 24         /* Path to ISC DLV key */
 25         bindkeys-file "/etc/named.iscdlv.key";
 26 
 27         managed-keys-directory "/var/named/dynamic";
 28 };
 29 
 30 logging {
 31         channel default_debug {
 32                 file "data/named.run";
 33                 severity dynamic;
 34         };
 35 };
 36 
 37 zone "." IN {									##定义一个名为“.”的区 查询类为IN
 38         type hint;								## 类型为hint
 39         file "named.ca";						##区文件是named.ca
 40 };
 41 
 42 include "/etc/named.rfc1912.zones";				
 ##辅助区域配置文件,除了根域之外,其余所有区域配置都建议在这个配置文件中,主要为了方便管理,不会轻易破坏主配置文件。
 43 include "/etc/named.root.key";
 44 
~                                         

进入文件 创建正反向解析区域

[root@Demo ~]# vim /etc/named.rfc1912.zones 

修改内容如下:

 13 zone "Demo.com" IN {		##定义域名
 14         type master;
 15         file "named.localhost";	##正向解析文件
 16         allow-update { none; };
 17 };

 31 zone "0.168.192.in-addr.arpa" IN {		##定义IP地址段
 32         type master;
 33         file "named.loopback";			##反向解析文件
 34         allow-update { none; };
 35 };

进入正向解析文件

[root@Demo ~]# vim /var/named/named.localhost 

添加需要解析的域名:

  1 $TTL 1D
  2 @       IN SOA  @ rname.invalid. (
  3                                         0       ; serial	
  4                                         1D      ; refresh	
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8         NS      @
  9         A       127.0.0.1
 10         AAAA    ::1
 11 www     A       192.168.0.1
 12 test    A       192.168.0.2
 13 demo    A       192.168.0.3

进入反向解析文件

[root@Demo ~]# vim /var/named/named.loopback 

添加反向解析

  1 $TTL 1D
  2 @       IN SOA  @ rname.invalid. (
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8         NS      @
  9         A       127.0.0.1
 10         AAAA    ::1
 11         PTR     localhost.
 12 1       PTR     www.Demo.com
 13 2       PTR     test.Demo.com
 14 3       PTR     demo.Demo.com

完成重启dns服务

[root@Demo ~]# service named restart
Stopping named:                                            [  OK  ]
Starting named:                                            [  OK  ]
[root@Demo ~]# 

使用nslookup测试 解析成功
测试时要将DNS服务器的ip地址添加到网卡地址中哦

[root@Demo ~]# echo "DNS1=192.168.1.103" >> /etc/sysconfig/network-scripts/ifcfg-eth0 

然后重启网卡服务和DNS服务器

[root@Demo ~]# nslookup 
> www.Demo.com
Server:         192.168.1.103
Address:        192.168.1.103#53

Name:   www.Demo.com
Address: 192.168.0.1
> 192.168.0.2
Server:         192.168.1.103
Address:        192.168.1.103#53

2.0.168.192.in-addr.arpa        name = test.Demo.com.0.168.192.in-addr.arpa.
>

在这里插入图片描述
这样一个简单的DNS服务器就完成了 后面我会在为大家讲包括子域DNS、辅助DNS、缓存DNS还有rndc控制域名服务器等
后面我会再为大家写一篇对DNS主配置文件和关于DNS的配置文件的一些详解。

linux搭建DNS服务器

阅读数 235

没有更多推荐了,返回首页