部署DNS服务

DNS 域名系统 DNS协议运行在UDP协议之上 使用53号端口

1.1域名空间


在DNS 域名空间中,根域只有一个,它没有上级域,以圆点“ . ”表示。全世界的理地址和 DNS 域名空间都是由位于美国的 Inter NICCniemet Network Infornatfion Center,因特网信息管理中心)负责管理或授权管理的。目前全世界有13合根域服务器,其中1合主根限务器,其余12台力辅助根服务器。这些根域服务器位于美围,并由 InterNiC管理。
在根域服务器中并没有保存全世界的因特网网址,仅保存着顶级域的 “DNS" 服务器一
"IP地址”的对应数据。
2. 顶级域(Top-Level Domain, TLD)
顶级域是由 InterNIC统一管理的。在FQDN中,顶级域位于最右边,包括3种类型:
即“国家和地区顶级域”“通用顶级域”和“新增通用顶级域”。国家顶级域名如 CN(中国)、us(美国)、JP(日本)、CA(加拿大)等。通用顶级域名如 com(公司企业)、net(网络服务机构)、ong(非盈利性组织)、edu(教育机构)、gov(政府部门)、mil(军事部门)等。
3. 各级子域(Sub Domain)
在 DNS 域名空间中,除了根域和顶级域之外,其他域都称为子域。百度的域名空间如图12-1所示。其中,根域(root)是:“TLD 顶级域名(top-level domain)是com,SLD二级域名

 1.2DNS服务类型

DNS 服务器能够响应来自客户端的域名解析申请,通过查找本服务器中域名数据库,或到其他DNS 服务器中进行查找,给客户端返回查询的结果。在DNS服务器中还有一个為迷续存。能盤把解析的结果级存下来,从而加快后续的造找速度。
域名服务器一般分为3类:主域名服务器、辅助域名服务器和 Cache-only域名服务器。
1. 主域名服务器(Master)
每个区域有唯一的主域名服务器。在主域名服务器中包含有某个区域的区域数据文件,文件中包含了区域的所有资源记录。主域名服务器中的区域教据文件是由管理员负责创建并维护的,经过恰当的配置主域名服务器的区域数据文件可以传送到辅助域名服务器。
配置主域名服务器需要一整套配置文件,包括主配置文件(named.conf)、正向区域解析文件、反向区域解析文件、根区域文件(namned.ca) 和回送文件(named.local)。
2. 辅助域名服务器(Slave)
辅助域名解析是十分重要的 Internet 构成组件,负责一个域名的域名服务器可以只有个主域名服务器,但是了加强服务的可靠性,通常会为一个区域规划多台域名服务器。
这些域名服务器既可以都是主域名服务器,也可以只有一台是主域名服务器,其他的都是辅助域名服务器。
辅助域名服务器中也有区域数据文件,也能够响应来自用户的域名解析请求,但是辅助域名服务器中不需要由管理员手工创建区域数据文件。辅助域名服务器的区域数据文件从主域名服务器中复制过来的。域名服务器之间的区域数据文件复制使用的端口是 TCP5号。使用辅助域名服务器,可以提高域名服务的可靠性,降低维护工作量。
一般建立辅助服务器有以下两个优点:
(1)冗余:当主域名服务器出现故障时,辅助域名服务器可以承担起服务的功能。为达到最大限度的容错,主域名服务器与作为备份的辅助域名服务器要做到尽可能的独立。
(2) 减负:当网络较大且服务较繁忙时,可以用辅助域名服务器来减轻主域名服务器的负担。
3. Cache-only 域名服务器
Cache-only域名服务器可运行域名服务器软件,但它本身并不管理任何区域,而且不包含任何活跃的数据库文件。一个Cache-only 域名服务器开始时没有任何关于 DNS 域结构的信息,必须依赖于其他域名服务器来得到这方面的信息。每次 Cache-only 服务器就将咳信息存储到它的名字缓存CNamne Cache)中。当另外的请求需要得到这方面的信息时,该Cache-only 服务器就直接从高速缓存中取出答案并予返回。经过一段时间后该 Cache-only服务器就包含了大部分常见的请求信息。

1.3项目实施

1.3.1安装DNS服务

1.3.1.1 BIND 简介


目前 Internet 上绝大多数的 DNS 服务器主机都是使用BIND 来进行域名解析的。BIND是 Berkeley Internet Name Domain Service 的简写,是美国加利福尼亚大学伯克利分校开发的一个域名服务器软件包,Linux使用这个软件包来提供域名服务。BIND 的服务端软件是被称作 named 的守护进程。
(1) BIND 的服务端软件是被称 named 的守护进程,其主要功能如下:
• 若查询的主机名与本地区域信息中相应的资源记录匹配,则使
部署 DNS 服务
用该信息来解析主机名,并客户机做出应答(UDP: 53)。
> 若本地区域信息中没有要查询的主机名,默认会以递归方式查询其他DNS服务器并将其响应结果缓存于本地。
• 执行“区传输(zone ransfer)”,在服务器之间复制 zone 数据(TCP: 53)。
(2) 解析器库程序,联系 DNS服务器实现域名解析。
(3) DNS 常用的命令行工具有 nlookup、host 和 dig。


1.3.1.2  chroot 功能


chroot 是 Change Root 的缩写,可以将文件系统中某个特定的子目录作为进程的虚拟根目录,即改变进程所引用的“/”根目录位置。chroot 对进程可以使用的系统资源、用户权限和所在目录进行严格控制,程序只在这个虚拟的根目录及其子目录具有权限,一旦离开该目录就没有任何权限。
DNS 服务器主要是用于域名解析,需要面对来自网络各个位置的大量访问,并且一般不限制来访者的IP。因此,存在的安全隐患和被攻击的可能性相当大,使用chroot 功能也就特别有意义。即使某些用户突破了BIND 账号,也只能访问/arnamed/chroot,能把对系统的攻击伤害降到最小。chroot 的安装包名为 bind-chroor*.cpm。

1.3.2安装BIND软件包

yum install bind*
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
软件包 32:bind-export-libs-9.11.4-26.P2.el7.x86_64 已安装并且是最新版本
软件包 32:bind-libs-9.11.4-26.P2.el7.x86_64 已安装并且是最新版本
软件包 32:bind-9.11.4-26.P2.el7.x86_64 已安装并且是最新版本
软件包 32:bind-utils-9.11.4-26.P2.el7.x86_64 已安装并且是最新版本
软件包 32:bind-license-9.11.4-26.P2.el7.noarch 已安装并且是最新版本
软件包 32:bind-libs-lite-9.11.4-26.P2.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 bind-chroot.x86_64.32.9.11.4-26.P2.el7 将被 安装
---> 软件包 bind-dyndb-ldap.x86_64.0.11.1-7.el7 将被 安装
---> 软件包 bind-pkcs11.x86_64.32.9.11.4-26.P2.el7 将被 安装
---> 软件包 bind-pkcs11-libs.x86_64.32.9.11.4-26.P2.el7 将被 安装
---> 软件包 bind-pkcs11-utils.x86_64.32.9.11.4-26.P2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

======================================================================
 Package             架构     版本                   源          大小
======================================================================
正在安装:
 bind-chroot         x86_64   32:9.11.4-26.P2.el7    localyum    92 k
 bind-dyndb-ldap     x86_64   11.1-7.el7             localyum   121 k
 bind-pkcs11         x86_64   32:9.11.4-26.P2.el7    localyum   361 k
 bind-pkcs11-libs    x86_64   32:9.11.4-26.P2.el7    localyum   1.1 M
 bind-pkcs11-utils   x86_64   32:9.11.4-26.P2.el7    localyum   208 k

事务概要
======================================================================
安装  5 软件包

总下载量:1.8 M
安装大小:4.3 M
Is this ok [y/d/N]: y
Downloading packages:
----------------------------------------------------------------------
总计                                     159 MB/s | 1.8 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 32:bind-pkcs11-libs-9.11.4-26.P2.el7.x86_64       1/5 
  正在安装    : 32:bind-pkcs11-utils-9.11.4-26.P2.el7.x86_64      2/5 
  正在安装    : 32:bind-pkcs11-9.11.4-26.P2.el7.x86_64            3/5 
  正在安装    : bind-dyndb-ldap-11.1-7.el7.x86_64                 4/5 
  正在安装    : 32:bind-chroot-9.11.4-26.P2.el7.x86_64            5/5 
  验证中      : 32:bind-pkcs11-utils-9.11.4-26.P2.el7.x86_64      1/5 
  验证中      : 32:bind-pkcs11-libs-9.11.4-26.P2.el7.x86_64       2/5 
  验证中      : bind-dyndb-ldap-11.1-7.el7.x86_64                 3/5 
  验证中      : 32:bind-pkcs11-9.11.4-26.P2.el7.x86_64            4/5 
  验证中      : 32:bind-chroot-9.11.4-26.P2.el7.x86_64            5/5 

已安装:
  bind-chroot.x86_64 32:9.11.4-26.P2.el7                              
  bind-dyndb-ldap.x86_64 0:11.1-7.el7                                 
  bind-pkcs11.x86_64 32:9.11.4-26.P2.el7                              
  bind-pkcs11-libs.x86_64 32:9.11.4-26.P2.el7                         
  bind-pkcs11-utils.x86_64 32:9.11.4-26.P2.el7                        

完毕!
 

1.3.3进行其他准备工作 

配置DNS服务器IP地址172.20.xx.xx,关闭防火墙,设置系统安全机制为Permissive,并生效.

[root@yllyxs ~]# vi /etc/sysconfig/network
network          network-scripts/ 
[root@yllyxs ~]# vi /etc/sysconfig/network
network          network-scripts/ 
[root@yllyxs ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@yllyxs ~]# ifcfg ens33
Forwarding is ON or its state is unknown (6). OK, No RDISC.
Missing IP address argument.
[root@yllyxs ~]# ifc
ifcfg     ifconfig  
[root@yllyxs ~]# ifc
ifcfg     ifconfig  
[root@yllyxs ~]# ifc
ifcfg     ifconfig  
[root@yllyxs ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.221.19  netmask 255.255.255.0  broadcast 172.20.221.255
        inet6 fe80::fffb:1cb3:6e4f:3121  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:95:f4:d5  txqueuelen 1000  (Ethernet)
        RX packets 436  bytes 43076 (42.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 593  bytes 58545 (57.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 106  bytes 9346 (9.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 106  bytes 9346 (9.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:44:ab:ab  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@yllyxs ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.221.19  netmask 255.255.255.0  broadcast 172.20.221.255
        inet6 fe80::fffb:1cb3:6e4f:3121  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:95:f4:d5  txqueuelen 1000  (Ethernet)
        RX packets 440  bytes 43316 (42.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 594  bytes 58605 (57.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@yllyxs ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.221.19  netmask 255.255.255.0  broadcast 172.20.221.255
        inet6 fe80::fffb:1cb3:6e4f:3121  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:95:f4:d5  txqueuelen 1000  (Ethernet)
        RX packets 452  bytes 44036 (43.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 594  bytes 58605 (57.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@yllyxs ~]# systemctl stop firewalld.service 
[root@yllyxs ~]# systemctl stop firewalld
[root@yllyxs ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
[root@yllyxs ~]# vi /etc/selinux/config
[root@yllyxs ~]# 
[root@yllyxs ~]# setenforce 0
[root@yllyxs ~]# geten
getenforce  getent      
[root@yllyxs ~]# geten
getenforce  getent      
[root@yllyxs ~]# geten
getenforce  getent      
[root@yllyxs ~]# getenforce 
Permissive


1.4.1启动DNS服务

[root@yllyxs www]# systemctl start named
[root@yllyxs www]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: active (running) since 六 2024-06-29 14:59:32 CST; 2min 58s ago
  Process: 8373 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 8370 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
 Main PID: 8376 (named)
    Tasks: 5
   CGroup: /system.slice/named.service
           └─8376 /usr/sbin/named -u named -c /etc/named.conf

6月 29 14:59:32 yllyxs named[8376]: network unreachable resolving...3
6月 29 14:59:32 yllyxs named[8376]: network unreachable resolving...3
6月 29 14:59:32 yllyxs named[8376]: network unreachable resolving...3
6月 29 14:59:32 yllyxs named[8376]: network unreachable resolving...3
6月 29 14:59:32 yllyxs named[8376]: network unreachable resolving...3
6月 29 14:59:32 yllyxs named[8376]: network unreachable resolving...3
6月 29 14:59:32 yllyxs named[8376]: network unreachable resolving...3
6月 29 14:59:32 yllyxs named[8376]: network unreachable resolving...3
6月 29 14:59:42 yllyxs named[8376]: managed-keys-zone: Unable to ...t
6月 29 14:59:42 yllyxs named[8376]: resolver priming query complete
Hint: Some lines were ellipsized, use -l to show in full.
 

1.4.2DNS服务器配置文件

安装 DNS 服务器后,虽然可以启动 DNS 服务,但它起不能正常工作,还必须编写
DNS 的配置文件,在 Red Hat Enterprise Linux7.6 中 DNS 的配置文件有全局配置文件、主配置文件和正、反向解析区域配置文件。
1. DNS 全局配置文件 named.conf
正常情况下,DNS 全局配置文件 /etc/named.conf,但是安装了 chroot 之后全局配置文件为 /var/named/chroot/etc/ named.conf。

1.4.3主配置文件

配置文件 named.rfc1912.zones
正常情况下,DNS 主配置文件为/etc/named.rfc1912.zones,但是安装了 chroot 之后,主配置文件为 var/named/chroot/named.rfc1912.zones。

主配置文件通过 zone定义了当前 BIND 可管辖的所有区域。在BIND 中的区域会根据DNS 服务器的类型划分为以下几种:
1.master:主要区域,拥有该区域数据文件,并对此区域提供管理数据。
② slave:辅助区域,拥有主要区域数据文件的完全只读副本,辅助区域从主要区域同步所有区域数据,同步过程被称为区域传输。
stub:存根区城,与辅助区域类似,但是 stub区域只复制主要区域的 NS记录及
NS记录对应的A记录。
④ forward:转发区域,用于转发DNS 客户端的递归查询。
⑤ hint:当BIND 启动时使用 hint 区域中的信息来查找根域名服务器,并找到最近的根域名服务器列表。如果没有,服务器应使用编译时默认的根服务器信息。

1.1.4区域配置文件

1)正向区域 named.localhost


正向区域解析文件 /var/named/chroot/var/named/ named.localhost,买怀工作中可以将此文件复制为正向区域解析文件。复制时一定要加-a(或-p),如果配置文件的拥有组不是named 时,BIND服务是无法运行的。

2) 反向区域 named.loopback


反向区域解析文件/var/named/chroot/var/named/ named.loopback,实际工作中可以将此文件复制为反向区域解析文件,复制时一定要加-a(或-p),如果配置文件的拥有组不是named 时,BIND 服务是无法运行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值