目录
一、DNS域名解析
1.1 概述
DNS解析是把域名指向网站空间IP,通过注册的域名可以方便地访问到网站的一种服务IP是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
1.2 DNS解析分类
DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户的提供正向或反向的地址查询服务,即正向解析与反向地址解析,使用端口号:53
· 正向解析:根据域名查询IP地址,即将指定的域名解析为相对的IP地址。域名正向解析四DNS服务器最基本的功能,也是最常用的功能。
· 反向解析:根据IP地址查域名,即将指定的IP地址解析为相对应的域名。域名的反向解析表示常用,只是在特殊场合下才会用到,如可用于反垃圾邮件的验证。
1.3 DNS系统类型
主域名服务器:
· 特定DNS区域的权威服务器,具有唯一性
· 负责维护该区域内所有域名服务器->IP地址的映射记录
· 需要自行建立所负责区域的地址数据文件
从域名服务器
· 也称为辅助域名服务器,是对主域名服务器的热备份
· 其维护的域名->IP地址记录来源于主域名服务器
· 需要从主域名服务器自动同步区域地址数据库
1.4 DNS解析过程
正向解析过程:
1.先查询本机缓存记录
2.查询hosts文件
3.查询dns域名服务器,交给dns域名服务器处理
4.这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
5.求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
6.求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
7.求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
8.本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
二、正向解析配置
2.1 安装bind软件包
查看是否下载bind包,默认是没有装载的
2.2 关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service 关闭防火墙
[root@localhost ~]# setenforce 0
setenforce是Linux的selinux防火墙配置命令, 执行setenforce 0 表示关闭selinux防火墙
2.3 启动域名服务
[root@localhost ~]# systemctl start named 启动域名服务
2.4 修改配置文件
由于本机作为DNS服务器需要修改本机的网卡配置,DNS修改为本机地址:127.0.0.1
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改网卡配置
DNS1=127.0.0.1 修改本机网卡配置
[root@localhost ~]# systemctl restart network 重启网卡
[root@localhost ~]# cat /etc/resolv.conf 查看是否修改成功
# Generated by NetworkManager
nameserver 127.0.0.1
search localdomain
[root@localhost ~]#
2.5 模拟配置客户机服务器
关闭防火墙配置
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
修改网卡配置,并将DNS设为DNS服务器的IP地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.26.100
此时可以解析域名,重网卡配置
[root@localhost ~]# systemctl restart network
配置DNS服务器
[root@localhost ~]# rpm -qc bind 查看配置文件
/etc/named.conf 修改此文件
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { all; }; 将地址删除修改为all
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 { localhost; };
[root@localhost ~]# rndc reload 重启DNS服务
server reload successful
[root@localhost ~]#
此时客户机还是不能解析,由于权限不够进入配置修该权限
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; 将地址删除修改为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";
allow-query { any; }; 将用户权限设置为any
[root@localhost ~]# rndc reload 重启DNS服务
server reload successful
客户机解析结果,此时成功解析
[root@localhost ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 180.101.49.12
www.a.shifen.com has address 180.101.49.11
修改配置文件并添加域名
[root@localhost ~]# vim /etc/named.rfc1912.zones
添加域名
zone "lpp.com" IN {
type master;
file "lpp.com.zone";
allow-update { none; }; #这里设置为none表示禁止动态更新客户端地址
};
此时需要更改配置文件,使域生效
[root@localhost ~]# cd /var/named/ 切换到此目录
拷贝目录中的模板文件保存
[root@localhost named]# cp -p named.localhost lpp.com.zone ##p、a 都是保存权限的拷贝
$TTL 1D (主路径) (邮件路径)
@ IN SOA master.lpp.com. admin.lpp.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master.lpp.com.
master IN A 192.168.26.100
www A 192.168.26.200
IN MX 10 mail.lpp.com.
mail A 192.168.26.10
@ A 192.168.26.100
重启服务
[root@localhost named]# rndc reload
server reload successful
此时客户机可以访问解析创建的DNS服务
[root@localhost ~]# host www.lpp.com
www.lpp.com has address 192.168.26.200
[root@localhost ~]#
三、反向解析
配置操作
[root@localhost named]# vim /etc/named.rfc1912.zones 添加反向解析域
zone "26.168.192.in-addr.arpa" IN { 修该模板添加反向解析的网段
type master;
file "dff.com.zone"; 添加自定义域名
allow-update { none; };
};
拷贝文件并添加反向解析地址
[root@localhost named]# cp -p lpp.com.zone dff.com.zone 拷贝文件
[root@localhost named]#chmod 640 lpp.com.zone ;chgrp named dff.com.zone 如果没有-p权限就直接赋予权限
修改这个解析域
[root@localhost named]# vim dff.com.zone
$TTL 1D
@ IN SOA master.dff.com. admin.dff.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master.dff.com.
master IN A 192.168.26.100
100 IN PTR www.dff.com
99 IN PTR db.dff.com
重启服务
[root@localhost named]# rndc reload
server reload successful
服务机验证反向解析
[root@localhost ~]# host 192.168.26.100
100.26.168.192.in-addr.arpa domain name pointer www.dff.com.26.168.192.in-addr.arpa.
四、主从复制
关闭主服务器和从服务器防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
在主服务器与从服务器上安装依赖环境
[root@localhost ~]# yum install bind bind-utils.x86_64 -y
在主服务器上开启访问权限
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { 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";
allow-query { any; };
在主服务器添加记录
[root@localhost ~]# vim /etc/named.rfc1912.zones
添加记录
zone "lpp.com" IN {
type master;
file "lpp.com.zone";
allow-update { none; };
};
主服务器 复制模板文件添加主机地址
[root@localhost named]# cp -p named.localhost lpp.com.zone
[root@localhost named]# vim lpp.com.zone
$TTL 1D
@ IN SOA master admin.lpp.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 192.168.26.100
www A 192.168.26.10
[root@localhost named]# systemctl start named 重启服务
从服务器配置
[root@localhost ~]# vim /etc/named.conf 进入修改配置文件
options {
// listen-on port 53 { 127.0.0.1; }; 注释
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 { localhost; }; 注释
[root@localhost ~]# vim /etc/named.rfc1912.zones
添加
zone "lpp.com" IN {
type slave;
file "slaves/lpp.com.zone";
masters{ 192.168.26.100; };
};
[root@localhost ~]# systemctl start named 重启服务
此时可以从服务器查看是否成功
[root@localhost named]# ls /var/named/slaves
[root@localhost named]# ls /var/named/slaves
lpp.com.zone
验证从服务器访问主服务器查看是否成功
[root@localhost named]# dig www.lpp.com @192.168.26.100
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> www.lpp.com @192.168.26.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61559
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.lpp.com. IN A
;; ANSWER SECTION:
www.lpp.com. 86400 IN A 192.168.26.10
;; AUTHORITY SECTION:
lpp.com. 86400 IN NS master.lpp.com.
;; ADDITIONAL SECTION:
master.lpp.com. 86400 IN A 192.168.26.100
;; Query time: 1 msec
;; SERVER: 192.168.26.100#53(192.168.26.100)
;; WHEN: 四 10月 07 16:29:03 CST 2021
;; MSG SIZE rcvd: 93
[root@localhost named]#
五、分离解析
实验环境配置操作
[root@localhost ~]# systemctl stop firewalld.service 关闭防火墙服务
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install bind bind-utils.x86_64 -y 安装所需包
添加一块网卡,将两块网卡都设为仅主机模式
修改ens33 网卡配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=6eaef26a-4a01-40f7-8dce-381dd1cc9821
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.111.1 修改IP与网卡vMnet1网卡一致
NETMASK=255.255.255.0
删除dns与网关
复制相同文件并替换修改添加的网卡配置
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vim ifcfg-ens37
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37 修改网卡名,为当前网卡
DEVICE=ens37
ONBOOT=yes
IPADDR=12.0.0.1
NETMASK=255.255.255.0
[root@localhost network-scripts]# systemctl restart network 重启网卡
[root@localhost network-scripts]# ifconfig 查看网卡
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.111.1 netmask 255.255.255.0 broadcast 192.168.111.255
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 127.0.0.1 netmask 255.255.255.0 broadcast 127.0.0.255
另外开启两台windows10 与 windows7系统配置,将其网卡都设为仅主机模式,关闭防火墙,并修改IP地址,Windows7配置的IP是37网卡的配置地址,windows10 配置的是ens33网卡的配置地址,可以用ping命令查看网络是否相通,此时基本环境搭建完成 。
配置服务端
修改访问权限
[root@localhost network-scripts]# vim /etc/named.conf
options {
// listen-on port 53 { 127.0.0.1; }; 注释
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 { localhost; }; 注释
并删除以下或注释内容:
zone "." IN {
type hint;
file "named.ca";
};
复制模拟修改配置文件并添加解析记录
[root@localhost named]# cp -p named.localhost lpp.com.lan
[root@localhost named]# vim lpp.com.lan
$TTL 1D
@ IN SOA master admin.lpp.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 192.168.111.1
www A 192.168.111.22
~
[root@localhost named]# cp -p lpp.com.lan lpp.com.wan
[root@localhost named]# vim lpp.com.wan
$TTL 1D
@ IN SOA master admin.lpp.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 12.0.0.1
www A 12.0.0.1
[root@localhost network-scripts]# vim /etc/named.rfc1912.zones 添加以下两条网卡记录,删除其他记录
view "lan"{
match-clients { 192.168.111.0/24; }; ens33地址网段
zone "lpp.com" IN {
type master;
file "lpp.com.lan";
};
zone "." IN { !!!注意格式
type hint;
file "named.ca";
};
};
view "wan"{
match-clients { 12.0.0.0/24; }; ens37地址网段
zone "lpp.com" IN {
type master;
file "lpp.com.wan";
};
zone "." IN {
type hint;
file "named.ca";
};
};
[root@localhost named]# systemctl restart named 重启这个服务
此时两台windows客户机验证
windows7
windows10