理论+实验·DNS域名解析服务
文章目录
DNS系统的作用
正向解析:根据域名查找对应的IP地址===>常用
反向解析:根据IP地址查找对应的域名
DNS系统的分布式数据结构
全球一共13台根域服务器(中国1\欧洲2
http://www.baidu.com.
根 .
顶级域名 com分(类型,区域这两种进行区分)
二级域名 baidu
baidu.com.
主机名(服务器名) www
协议 http:// 80端口
https:// 443端口 SSL 安全套接字层 (里面的内容都是加密的)
极少数情况会有三级域名出现
DNS系统类型
缓存域名服务器
也成为DNS高速缓存服务器
通过向其他域名服务器查询获得域名===>IP地址记录
将域名查询结果存到本地,提高重复查询时的速度
客户机访问某个网站的DNS解析过程
客户机利用电信分配的DNS会找到离客户机最近的位置会有一个DNS缓存服务器
可以查找到DNS缓存里面的域名与ip对应的记录
如果没有对应的记录,DNS缓存服务器会直接去找根域服务器
根域服务器会告诉DNS缓存服务器顶级域名服务器在什么地方
DNS缓存服务器就会去找顶级域名服务器
顶级域名服务器会告诉DNS缓存服务器(如果告诉了二级域在哪里
DNS缓存服务器回去找二级域服务器 {主机A记录域名===>IP}
二级域服务器会告诉DNS缓存服务器
DNS缓存服务器会记录下来
告诉客户机对应的IP
然后客户机就可以去访问对应的网站
网站会将网页推给客户机,下载到客户机的缓存里面
DNS系统类型
主域名服务器
特定DNS区域的权威服务器,具有唯一性
负责维护该区域内所有域名===>IP地址的映射记录
需要自行建立所负责区域的地址数据文件
从域名服务器
也成为辅助域名服务器,是对主域名服务器的热备份
其维护的域名===>IP地址记录来源于主域名服务器
需要从主域名服务器自动同步区域地址数据库
BIND服务
BIND软件安装
BIND(Berkeley Internet Name Daemon)
BIND是应用最广泛的DNS服务程序
官方站点:https://www.isc.org/
host===>本地自测的命令
BIND服务器端程序
主要执行程序
默认监听端口:53
主配置文件
/etc/named.conf
保存DNS解析记录的数据文件位于
/var/named===>随时可更改
BIND服务控制
systemctl [status|stop|restart] named.service
配置文件
1:主配置文件 负责DNS全局功能 例如:日志文件文职,访问权限等
2:区域配置文件 负责构建解析区域 例如:多域名的解析
3:区域数据配置文件 负责管理主机解析记录 例如:解析映射
主配置文件named.conf
全局配置部分
设置DNS服务器的全局参数
包括监听地址和端口、区域数据文件存放的目录等
使用options{…};的配置段
option{
listen-on port 53 { 173.16.16.1; }; ===>监听地址和端口
directory "/var/named"; ===>区域数据文件的默认存放位置
allow-query { 192.168.1.0/24;173.16.16.0/24; }; ===>允许使用本DNS服务的网段
}
区域配置部分
设置本服务器提供域名解析的特定DNS区域
包括域名、服务器角色、数据文件名等
使用zone"区域名" IN{…};的配置段
zone "test.com" IN{
type master; ===>type:区域类型
file "test.com.zone"; ===>file:区域数据文件
allow-transfer { 173.16.16.2; };
};
zone "16.16.173.in-addr.arpa" IN{
type master;
file "173.16.16.arpa"; ===>反向173.16.16.0/24区域 "IN"关键字可省略
};
区域数据配置文件
全局TTL配置项及SOA记录
$TTL(Time To Live,生存时间)
SOA(Start Of Authority,授权信息开始)
分号";"开始的部分表示注释信息
$TTL 86400 ===>有效解析记录的生存周期
@ IN SOA test.com. admin.test.com.( ===>SOA标记、域名、管理邮箱
2011030501 ===>更新序列号,可以是10位以内的整数
3H ===>刷新时间,重新下载地址数据的间隔
15M ===>重试延时,下载失败后的重试间隔
1W ===>失效时间,超过该事件仍无法下载则放弃(从服务器更新参数)
1D ===>无效解析记录的生存周期
)
正向解析记录
NS域名服务器(Name Server)记录
MX邮件交换(Mail Exchange)记录
A地址(Address)记录,指用在正向解析区域中
CNAME别名(Canonical Name)记录
@ IN NS ns1.test.com.
IN MX 10 mail.test.com.
ns1 IN A 58.119.74.203
www IN A 173.16.16.1
mail IN A 173.16.16.4
ftp IN CNAME www
实验·DNS正向解析、邮件交换解析、别名解析、泛域名解析、反向解析
实验环境
CentOS 7.6 一台
需求分析
实现DNS服务器的正向解析、邮件交换解析、别名解析、泛域名解析、反向解析
实验步骤
[root@localhost ~]# yum -y install bind* #安装bind软件包
[root@localhost ~]# vi /etc/named.conf #修改主配置文件
......
listen-on port 53 { any; };
......
allow-query { any; };
......
[root@localhost ~]# vi /etc/named.rfc1912.zones #修改区域配置文件
......
zone "zhaobin.com" IN {
type master;
file "zhaobin.com.local";
allow-update { none; };
};
......
zone "0.0.20.in-addr.arpa" IN {
type master;
file "zhaobin.com.local";
allow-update { none; };
};
......
[root@localhost ~]# cd /var/named/ #进入该目录
[root@localhost named]# cp -p named.localhost zhaobin.com.local #复制文件不更改文件的权限等信息
[root@localhost named]# vi zhaobin.com.local #修改区域数据配置文件
$TTL 1D00
@ IN SOA zhaobin.com. admin.zhaobin.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS zhaobin.com.
A 127.0.0.1
IN MX 5 mail.zhaobin.com.
mail IN A 20.0.0.99
www IN A 20.0.0.88
ftp IN CNAME mail
* IN A 1.1.1.1
66 IN PTR www.zhaobin.com.
[root@localhost named]# echo "nameserver 20.0.0.10" > /etc/resolv.conf #配置dns
[root@localhost named]# systemctl start named #启动服务
[root@localhost named]# setenforce 0 #关闭核心防护
[root@localhost named]# systemctl stop firewalld #关闭防火墙
[root@localhost named]# host www.zhaobin.com #正向解析
www.zhaobin.com has address 20.0.0.88
[root@localhost named]# host ftp.zhaobin.com #别名解析
ftp.zhaobin.com is an alias for mail.zhaobin.com.
mail.zhaobin.com has address 20.0.0.99
[root@localhost named]# host mail.zhaobin.com #邮件交换解析
mail.zhaobin.com has address 20.0.0.99
[root@localhost named]# host aaa.zhaobin.com #泛域名解析
aaa.zhaobin.com has address 1.1.1.1
[root@localhost named]# host 20.0.0.66 #反向解析
66.0.0.20.in-addr.arpa domain name pointer www.zhaobin.com.
实验·DNS主从复制
实验环境
两台CentOS 7.6
需求分析
一台作为主DNS服务器 ===>IP 20.0.0.10
另一台作为备份服务器===>IP20.0.0.20
网关都设为20.0.02
实验环境
主DNS服务器
[root@localhost ~]# yum -y install bind* #安装bind软件包
[root@localhost ~]# vi /etc/named.conf #修改主配置文件
......
listen-on port 53 { any; };
......
allow-query { any; };
......
[root@localhost named]# vi /etc/named.rfc1912.zones #修改区域配置文件
zone "zhaobin.com" IN {
type master;
file "zhaobin.com.master";
allow-transfer { 20.0.0.20; };
};
[root@localhost ~]# cd /var/named/ #进入该目录
[root@localhost named]# vi zhaobin.com.master #修改区域数据配置文件
......
www IN A 20.0.0.88
[root@localhost named]# cp -p named.localhost zhaobin.com.master #保留文件的权限复制
[root@localhost named]# setenforce 0 #关闭核心防护
[root@localhost named]# systemctl stop firewalld #关闭核心防护
[root@localhost named]# systemctl start named #开启服务
[root@localhost named]# ehco "nameserver 20.0.0.2" > /etc/resolv.comf #添加DNS
[root@localhost named]# host www.zhaobin.com #验证解析一下
www.zhaobin.com has address 20.0.0.88
从DNS服务器
[root@localhost ~]# yum -y install bind* #安装bind软件包
[root@localhost ~]# vi /etc/named.conf #修改主配置文件
......
listen-on port 53 { any; };
......
allow-query { any; };
......
[root@localhost named]# vi /etc/named.rfc1912.zones #修改区域配置文件
zone "zhaobin.com" IN {
type slave;
file "slaves/zhaobin.com.master";
masters { 20.0.0.20; };
};
[root@localhost ~]# cd /var/named/slaves #进入该目录
[root@localhost slaves]# cp -p named.localhost zhaobin.com.master #保留文件的权限复制
[root@localhost slaves]# setenforce 0 #关闭核心防护
[root@localhost slaves]# systemctl stop firewalld #关闭核心防护
[root@localhost slaves]# systemctl start named #开启服务
[root@localhost slaves]# ll #可以看到从服务器可以向主DNS服务器同步到信息
总用量 4
-rw-r--r--. 1 named named 237 7月 7 19:19 zhaobin.com.master
实验·DNS分离解析
实验环境
需求分析
内部网络可以访问web服务
外部网络也可以访问web服务
实验步骤===>所有的主机跟服务器都改为仅主机模式
双网卡Linux
[root@localhost ~]# yum -y install bind* ===>安装软件包
[root@localhost ~]# cd /etc/sysconfig/network-scripts/ ===>进入该目录
[root@localhost network-scripts]# ip add===>查看另一张的网卡名
......
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:09:83:a1 brd ff:ff:ff:ff:ff:ff
inet 20.0.0.30/24 brd 20.0.0.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::4abf:3160:f35f:b1ce/64 scope link noprefixroute
valid_lft forever preferred_lft forever
......
5: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:09:83:ab brd ff:ff:ff:ff:ff:ff
inet6 fe80::e71e:2733:a2b1:997a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36 ===>复制一份网卡配置文件
[root@localhost network-scripts]# vi ifcfg-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=b4fbc92e-5728-4f4d-bc3f-a505739f62d1
DEVICE=ens33
ONBOOT=yes
IPADDR=20.0.0.1
PREFIX=24
[root@localhost network-scripts]# vi ifcfg-ens36 ===>修改配置文件
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=b4fbc92e-5728-4f4d-bc3f-a505739f62d1
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.1
PREFIX=24
[root@localhost network-scripts]# systemctl restart network ===>重启网络服务
[root@localhost network-scripts]# vi /etc/named.conf ===>修改主配置文件
......
listen-on port 53 { any; };
......
allow-query { any; };
......
[root@localhost network-scripts]# vi /etc/named.rfc1912.zones ===>修改区域配置文件
view "lan" {
match-clients { 192.168.100.0/24; };
zone "zhaobin.com" IN {
type master;
file "zhaobin.com.lan";
};
zone "." IN { ===>
type hint; ===>
file "named.ca"; ===> 把"/etc/named.conf"里面的这几行删除
}; ===>
};
view "wan" {
match-clients { 20.0.0.0/24; };
zone "zhaobin.com" IN {
type master;
file "zhaobin.com.wan";
};
};
[root@localhost network-scripts]# cd /var/named/ ===>进入该目录
[root@localhost named]# cp -p named.localhost zhaobin.com.lan ===>保留属性复制
[root@localhost named]# cp -p named.localhost zhaobin.com.wan ===>保留属性复制
[root@localhost named]# vi zhaobin.com.lan ===>修改区域数据配置文件
......
A 192.168.100.1
www IN A 192.168.100.88
[root@localhost named]# vi zhaobin.com.wan ===>修改区域数据配置文件
......
A 20.0.0.1
......
www IN A 20.0.0.1
[root@localhost named]# systemctl start named ===>启动服务
[root@localhost named]# setenforce 0 ===>关闭核心防护
[root@localhost named]# systemctl stop firewalld ===>关闭防火墙
[root@localhost ~]# vi /etc/sysctl.conf ===>修改配置文件
net.ipv4.ip_forward=1
[root@localhost ~]# sysctl -p ===>使配置文件立即生效
net.ipv4.ip_forward = 1
[root@localhost named]# echo "nameserver 192.168.100.1" > /etc/resolv.conf ===>配置DNS
[root@localhost named]# echo "nameserver 20.0.0.1" >> /etc/resolv.conf ===>配置DNS
内部网络Linux
[root@localhost ~]# vi /ETC/network-scripts/ifcfg-ens36 ===>修改配置文件
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=b4fbc92e-5728-4f4d-bc3f-a505739f62d1
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@localhost ~]# systemctl restart network ===>重启网卡
外部网络Win10
web服务
[root@localhost ~]# yum -y install httpd===>安装软件包
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-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=b4fbc92e-5728-4f4d-bc3f-a505739f62d1
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.88
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@localhost ~]# systemctl restart network ===>重启网卡
实验结果
可以浏览到内部网络的web服务