文章目录
一、DNS概念1. 什么是DNS2. DNS的正向解析3. DNS的反向解析4. DNS的结构1)根域名(.)2)一级域名3)二级域名 5. DNS工作原理6. dig工具 二、DNS服务器的搭建1. DNS服务器软件介绍(Bind)2. 环境准备3. 安装DNS软件 三、 DNS正向解析配置1)对配置文件进行备份2)修改named.conf主配置文件3)修改子配置文件4)定义正向解析5)编辑test.hhy.zone文件,定义域名的指向6)检查named.conf与zones文件7)启动DNS服务(named) 1. Web服务搭建2. 测试DNS服务器的正向解析1)添加DNS服务器2)使用nslookup检测正向解析是否生效3)使用elinks命令行浏览器或curl来实现访问 三、DNS反向解析1)开启网络的访问控制权限2)在zones文件中定义zone文件3)复制named.loopback文件4)编辑192.168.44.zone文件5)检查配置文件和测试 四、多域DNS服务器搭建1. 修改named.conf配置文件2. 添加域3. 创建配置文件4. 编写配置文件5. 检测配置文件6. 连接测试 五、NTP服务器搭建1. 环境准备2. 更改配置文件3. 关闭防火墙和SELInux3. 启动ntpd服务 六、DNS主从部署1. 思路2. 环境准备3. 更改主DNS服务器配置4. 从服务器配置5. 测试一、DNS概念
1. 什么是DNS
DNS(domain name system ) 域名管理系统
域名:
由特定的格式组成,用来表示互联网中某一台计算机或者计算机组的名称,能够使人更方便的访问互联网,而不用记住能够被机器直接读取的IP地址。
计算机到IP地址,互联网中的计算机都是通过IP地址进行互相访问的,但是由于ip地址太过复制不方便记忆。就用域名来代替IP实现计算机的访问。
从域名经过DNS服务器的转换变成IP地址
2. DNS的正向解析
域名的正向解析:将域名转换为ip地址
将主机域名转换为对应的IP 地址,以便网络程序能够通过主机域名访问到对应的服务器主机
3. DNS的反向解析
域名的反向解析:将IP转换为对应的域名
将主机的IP地址转换为对应的域名,以便网络(服务)程序能够通过IP地址查询到主机的域名
4. DNS的结构
域名:
DNS结构:.
=> 从右向左解析
1)根域名(.)
在整个DNS系统的最上方一定是.
(小数点)这个DNS服务器称为root,就叫根域根域:全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。2)一级域名
.com
: 商业公司
.net
:互联网公司
.edu
:教育(中小学、高中、大学…)
.gov
:政府
.io
:存储设备,redis
.cn
:中国域名(国家域)
3)二级域名
说法不一样,有些可能说是一级域名也有的说,才是二级域名
.
.
5. DNS工作原理
6. dig工具
dig工具可以用来查看dns的解析过程
安装命令:yum install bind-utils -y
追踪DNS的解析过程:dig +trace [域名]
[root@samba ~]# dig -trace ;; Warning, ignoring invalid type race; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> -trace ;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21383;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0;; QUESTION SECTION:;.INA;; ANSWER SECTION:.564INCNAMEwww..www..149INA183.232.231.174 #ip1www..149INA183.232.231.172 #ip2;; Query time: 9 msec;; SERVER: 8.8.8.8#53(8.8.8.8) #DNS服务器;; WHEN: Mon Jul 18 21:27:36 CST ;; MSG SIZE rcvd: 90[root@samba ~]#
正向解析:dig [域名]
反向解析:dig -x [ip]
二、DNS服务器的搭建
1. DNS服务器软件介绍(Bind)
DNS 的域名解析都是udp/53
, 主从之间的**数据传输默认使用tcp/53
DNS服务器端软件:
Bind
是一款开放源码的DNS服务器软件,Bind由美国加州大学Berkeley(伯克利)分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件,支持各种unix平台和windows平台。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。
2. 环境准备
三台LInux主机
关闭防火墙和SELinux
命令:systemctl stop firewalld
systemctl disable firewalld
关闭SELinux
命令:setenforce 0
修改vim /etc/selinux/config
SELINUX=disabled
3. 安装DNS软件
在dns机器上:yum install bind -y
查看软件是否安装成功
[root@dns ~]# rpm -q bindbind-9.11.4-26.P2.el7_9.9.x86_64
查看已经安装的软件的文件列表
命令:rpm -ql bind
# rpm -ql bind# 日志轮转文件/etc/logrotate.d/named# 配置文件目录/etc/named# 主配置文件/etc/named.conf# zone文件,定义域/etc/named.rfc1912.zones# 服务管理脚本/usr/lib/systemd/system/named.service# 二进制程序文件/usr/sbin/named# 检测配置文件/usr/sbin/named-checkconf# 检测域文件/usr/sbin/named-checkzone# 根域服务器/var/named/named.ca# 正向解析区域文件模板/var/named/named.localhost# 反向解析区域文件模板/var/named/named.loopback# dns服务器下载文件的默认路径/var/named/slaves# 进程pid/var/rum/named
三、 DNS正向解析配置
/etc/named.conf
主要配置访问权限控制(哪些IP或哪些主机可以访问DNS服务器)-/etc/named.rfc1912.zones
主要定义域名如何解析(正向解析),解析到具体哪个IP地址
1)对配置文件进行备份
为了防止配置文件被改坏,我们先对named.conf
以及named.rfc1912.zones
配置文件进行备份。
[root@dns etc]# cp /etc/named.conf /etc/named.conf.bak[root@dns etc]# cp /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
2)修改named.conf主配置文件
修改配置文件:vim /etc/named.conf
修改第13行和21行,添加any;
# 定义监听端口、监听方式、允许查询来源options {// 定义监听方式 any代表全网监听listen-on port 53 { 127.0.0.1;any; };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";recursing-file "/var/named/data/named.recursing";secroots-file "/var/named/data/named.secroots";// 允许任何人来查询allow-query{ localhost;any; };
3)修改子配置文件
子配置文件named.rfc1912.zones
定义DNS服务器管理哪些领域
zones子配置文件(域名应该指向哪个IP地址)
命令:vim /etc/named.rfc1912.zones
在文件末尾添加
# 正向 ,表示这个域名从.zone这个配置文件中获取ipzone "" IN {type master;file ".zone";allow-update { none; };};
在vim 中
:13, 17 co 42,
表示把13到17行复制到42行以后
4)定义正向解析
在/var/named
目录创建test.hhy.zone文件定义正向解析
[root@dns etc]# cd /var/named/[root@dns named]# cp -p named.localhost .zone
-p
表示保留文件的原有属性
5)编辑test.hhy.zone文件,定义域名的指向
vim test.hhy.zone
在最后一行添加:www A web主机ip
zone文件的格式说明
zone文件详解# $TTL 缓存的生存周期# @ = zonename = test.hhy 当前域# IN 互联网# SOA 开始授权# NS dns服务端nameserver# A ipv4 正向# AAAA IPV6# CNAME 别名# MX 邮件交互记录 5 数字代表优先级 数字越小优先级越高# 0 ; serial 更新序列号# 1D; refresh 更新间隔(从服务器下载数据)# 1H; retry失败重试# 1W; expire 区域文件的过期时间# 3H ) ; minimum 缓存的最小生存周期# D Day(天)、H Hour(时)、W Week(周)
6)检查named.conf与zones文件
命令:named-checkconf /etc/named.conf
named-checkconf /etc/named.rfc1912.zones
只有没有错误提示就说明没问题
检查test.hhy.zone
文件
注意:named-checkzone
格式要求写两遍文件
[root@dns named]# cd /var/named/[root@dns named]# named-checkzone test.hhy.zone test.hhy.zone zone test.hhy.zone/IN: loaded serial 0OK
7)启动DNS服务(named)
命令:systemctl restart named
通过命令:ss -tnlp | grep named
可以看到named
服务器的端口号为53
1. Web服务搭建
在Web服务器上安装httpd
并启动服务
命令:yum -y install httpd
启动服务:systemctl start httpd
[root@web html]# touch /var/www/html/index.html[root@web html]# echo "<h1>DNS测试</h1>" >> /var/www/html/index.html
2. 测试DNS服务器的正向解析
1)添加DNS服务器
临时添加
命令:echo 'nameserver 192.168.44.151' > /etc/resolv.conf
永久添加
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS=192.168.44.151
2)使用nslookup检测正向解析是否生效
安装:yum install bind-utils -y
测试
[root@client ~]# clear[root@client ~]# nslookup Server:192.168.44.151Address:192.168.44.151#53Name:Address: 192.168.44.152
3)使用elinks命令行浏览器或curl来实现访问
安装:yum install elinks -y
输入:elinks
输入配置文件里的域名
就会出现web服务器/var/www/html/index.html
的信息
或者直接使用cutl命令
curl
三、DNS反向解析
示例:把web服务器192.168.44.152
这个IP地址通过DNS服务器指向域名
在DNS服务器上:
1)开启网络的访问控制权限
vim /etc/named.conf
2)在zones文件中定义zone文件
命令:vim /etc/named.rfc1912.zones
注意:这里是把web主机的ip192.168.44.152
反过来写的,且没有写最后一个主机号位置
这个ip通过192.168.44.zone
这个配置文件来获取域名
zone "44.168.192.in-addr.arpa" IN {type master;file "192.168.44.zone";allow-update { none; };};
3)复制named.loopback文件
cd /var/named进入到DNS zone配置文件目录,复制named.loopback文件
[root@dns named]# cd /var/named/[root@dns named]# cp -p named.loopback 192.168.44.zone
4)编辑192.168.44.zone文件
vim 192.168.44.zone
$TTL 1D@ IN SOA @ rname.invalid. (0 ; serial1D; refresh1H; retry1W; expire3H ) ; minimumNS@A 127.0.0.1AAAA ::1PTRlocalhost.# 增加一条反向解析:把192.168.44.152通过PTR解析成152PTR
PTR:反向解析
5)检查配置文件和测试
在DNS服务器上测试
[root@dns named]# named-checkconf /etc/named.conf[root@dns named]# named-checkconf /etc/named.rfc1912.zones[root@dns named]# cd /var/named[root@dns named]# named-checkzone 192.168.44.zone 192.168.44.zonezone 192.168.44.zone/IN: loaded serial 0OK[root@dns named]#
再重启named
服务
命令:systemctl restart named
接着在client主机上测试
# 将dns服务器的ip设置为测试机的DSN[root@client ~]# echo 'nameserver 192.168.44.151' > /etc/resolv.conf[root@client ~]# nslookup 192.168.44.152152.44.168.192.in-addr.arpaname = .44.168.192.in-addr.arpa.[root@client ~]#
四、多域DNS服务器搭建
需求:搭建一个DNS服务器,可以同时解析和
也就是无论是通过还是
来访问,都是访问到
192.168.44.152
这台Web主机
1. 修改named.conf配置文件
在dns服务器上修改
vim /etc/named.rfc1912.zones
修改配置文件来设置网络访问权限
zone "44.168.192.in-addr.arpa" IN {type master;file "192.168.44.zone";allow-update { none; };};
2. 添加域
vim /etc/named.rfc1912.zones
添加testdns
和testlinux
域
zone "" IN {type master;file ".zone";allow-update { none; };};zone "" IN {type master;file ".zone";allow-update { none; };};
3. 创建配置文件
进入/var/named目录,复制named.localhost
就是创建testdns
和testlinux
这两个域的配置文件
[root@dns ~]# cd /var/named/[root@dns named]# cp -P named.localhost .zone[root@dns named]# cp -P named.localhost .zone
4. 编写配置文件
编写.zone和.zone这两个配置文件
vim /var/named/.zone
在配置文件的末尾添加
wwwA 192.168.44.152
vim /var/named/.zone
bbsA 192.168.44.152
5. 检测配置文件
检测配置文件
# named-checkconf /etc/named.conf# named-checkconf /etc/named.rfc1912.zones# cd /var/named# named-checkzone .zone .zone # named-checkzone .zone .zone
重启named
服务
命令:systemctl restart named
6. 连接测试
在测试机clinet上测试
在cd /etc/sysconfig/network-scripts/
修改对应网卡的DNS为
我们测试的额DNS服务器的IP192.168.44.151
通过命令进行正向解析
测试
[root@client ~]# nslookup Server:192.168.44.151Address:192.168.44.151#53Name:Address: 192.168.44.152
测试
[root@client ~]# nslookup Server:192.168.44.151Address:192.168.44.151#53Name:Address: 192.168.44.152
五、NTP服务器搭建
虽然通过ntpdate .cn
虽然以上方式,可以实现对时间的校对!但是由于需要连接外网,其同步需要消耗一定的时间,那有没有更好的解决办法呢?
1. 环境准备
一台NTP时间服务器
安装ntp服务软件
yum install ntp -y
2. 更改配置文件
更改配置文件,开启ntp服务
vim /etc/ntp.conf
13 restrict 127.0.0.114 restrict ::1# 在15行手动添加192.168.44.0网段,表示范围为192.168.44.1 ~ 192.168.44.25415 restrict 192.168.44.0 mask 255.255.255.0
3. 关闭防火墙和SELInux
[root@ntp ~]# setenforce 0[root@ntp ~]# systemctl stop firewalld
3. 启动ntpd服务
同步网络时间命令:ntpdate .cn
启动服务:systemctl restart ntpd
到此NTP时间服务器配置完毕,以后所有的计算机都可以直接使用ntpdate同步此NTP服务器
通过命令:ntpdate 192.168.44.153
命令+ntp主机ip就可以在内网同步ntpdate时间了
[root@web ~]# date -s 2002-03-04Mon Mar 4 00:00:00 CST 2002[root@web ~]# date -s 08:30Mon Mar 4 08:30:00 CST 2002[root@web ~]# dateMon Mar 4 08:30:05 CST 2002[root@web ~]# ntpdate 192.168.44.15320 Jul 10:03:55 ntpdate[7338]: step time server 192.168.44.153 offset 643080786.390525 sec[root@web ~]# dateWed Jul 20 10:04:05 CST [root@web ~]#
除此以外,我们还可以使用计划任务,定期进行时间的同步(针对所有的客户端)
命令:crontab -e
# 表示每2两小时从 192.168.44.153 这台ntp服务器同步一次时间*/2 * * * * /usr/sbin/ntpdate 192.168.44.153 &>/dev/null
六、DNS主从部署
1. 思路
主从部署的核心思路:
master和slave的系统时间保持一致slave服务器上安装相应的软件(系统版本、软件版本保持一致)根据需求修改相应的配置文件(master和slave都应该去修改)主从同步的核心是slave同步master上的区域文件(zone文件)
2. 环境准备
准备一台服务器
配置静态ip+关闭防火墙和SELInux
3. 更改主DNS服务器配置
更改主dns服务器,允许其他的从服务器下载同步资源
vim /etc/named.conf
在第15添加一行allow-transfer {192.168.44.160; }
运行从服务器IP地址过来同步资源
12 options {13 listen-on port 53 { 127.0.0.1;any; };14 listen-on-v6 port 53 { ::1; };15 allow-transfer {192.168.44.160; };16 directory "/var/named";17 dump-file "/var/named/data/cache_dump.db";18 statistics-file "/var/named/data/named_stats.txt";19 memstatistics-file "/var/named/data/named_mem_stats.txt";20 recursing-file "/var/named/data/named.recursing";21 secroots-file "/var/named/data/named.secroots";22 allow-query{ localhost;any; };
重启服务:systemctl restart named
4. 从服务器配置
安装DNS软件:yum -y install bind
修改配置文件:
12 options {13 listen-on port 53 { 127.0.0.1;any; };14 listen-on-v6 port 53 { ::1; };15 directory "/var/named";16 dump-file "/var/named/data/cache_dump.db";17 statistics-file "/var/named/data/named_stats.txt";18 memstatistics-file "/var/named/data/named_mem_stats.txt";19 recursing-file "/var/named/data/named.recursing";20 secroots-file "/var/named/data/named.secroots";21 allow-query{ localhost;any; };
修改:vim /etc/named.rfc1912.zones
在43到53行添加下面的配置文件
43 zone "" IN {44 type slave;45 file "slaves/";46 masters { 192.168.44.151; };47 };48 49 zone "" IN {50 type slave;51 file "slaves/";52 masters { 192.168.44.151; };53 };
5. 测试
检测配置文件是否有问题
命令:named-checkconf /etc/named.rfc1912.zones
重启服务:systemctl restart named
在Client客户端,把Slave从服务器的IP设置为DNS
vim /etc/sysconfig/network-scripts/ifcfg-ens33
重启网卡systemctl restart network
测试域名
[root@client ~]# nslookup Server:192.168.44.160Address:192.168.44.160#53Name:Address: 192.168.44.152[root@client ~]# nslookup Server:192.168.44.160Address:192.168.44.160#53Name:Address: 192.168.44.152[root@client ~]#