简介
DNS(Domain Name System)是互联网上的一项服务,它作为将域名和IP地址相互映射的一个分 布式数据库,能够使人更方便的访问互联网。
DNS使用的是53端口,
通常DNS是以UDP这个较快速的数据传输协议来查询的,但是没有查询到完整的信息时,就会再次 以TCP这个协议来重新查询所以启动DNS时,会同时启动TCP以及UDP的port53。
因特网的域名结构
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连 接在
因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。“域” (domain)是名字空间中一个可被管理的划分
国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域 名又常记为ccTLD(country code top-level domains,cc表示国家代码contry-code)。
通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营 利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因 此称为反向域名。
域名服务器的类型划分
DNS域名解析的过程
]# nslookup
> set type=ns
> .
Non-authoritative answer:
. nameserver = b.root-servers.net.
*** ***
> set type=a
> b.root-servers.net.
Non-authoritative answer:
Name: b.root-servers.net
Address: 170.247.170.2
> server 198.97.190.53
> set type=ns
> com.
Authoritative answers can be found from:
com nameserver = a.gtld-servers.net.
*** ***
a.gtld-servers.net internet address = 192.5.6.30
> server 192.33.14.30
Default server: 192.33.14.30
Address: 192.33.14.30#53
> set type=ns
> bilibili.com.
> server 1.12.0.17
> set type=a
> www.bilibili.com
www.bilibili.com canonical name = a.w.bilicdn1.com.
> a.w.bilicdn1.com.
DNS服务器配置
关于服务端
软件安装包 | bind |
服务名称 | named |
主配置文件 | /etc/named.conf |
数据目录 | /var/named |
端口 | tcp/53 udp/53 |
dns服务的安装与启用
安装
dnf install bind -y
启用
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
开放服务
vim /etc/named.conf
listen-on port 53 { any; } ##在本地所有网络接口上开启53端口
allow-query { any; }; ##允许查询A记录的客户端列表
dnssec-validation no; ##禁用dns检测使dns能够缓存外部信息到本纪
systemctl restart named
DNS企业级高级配置
高速缓存dns
高速缓存dns是一个非权威的dns,在dns服务器中本身并没有数据
当客户需要解析域名时首先查询缓存中是否有数据,如果没有就会从指定的dns服务器中缓存
高速缓存dns可以大大节省内网在做地址解析上所需要花费的时间
高速缓存配置参数
vim /etc/named.conf
forwarders { 114.114.114.114; };
systemctl restart named
DNS的正向解析
作用:当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供A记录
客户提供域名,dns服务器负责把域名解析成对应IP
实施方法
1.编写zones文件设定要维护的域
vim /etc/named.rfc1912.zone
zone "easylee.org" IN { ##维护的域名
type master; ##当前服务器位主dns
file "easylee.org.zone"; ##域名A记录文件
allow-update { none; }; ##允许更新主机列表
};
2.根据zones文件中的指定生成A记录文件
cd /var/named/
cp -p named.localhost westos.com.zone
$TTL 1D ##TIME-TOLIVE(dns地址保存时间长度默认是“S”)
@
IN SOA dns.easylee.org. root.easylee.org. ( ##SOA授权起始
(Start of Authority)
##负责管理管理员邮
箱,NS服务器名称等7个信息
0 ; serial #域名版本序列号
1D ; refresh #刷新时间(辅助dns)
1H ; retry #重试时间(辅助dns)
1W ; expire #过期时间
3H ) ; minimum #A记录最短有效期,如
果$TTL被设定那么一设定值为准
NS dns.easylee.org. #nameserver 域名
dns A 172.25.254.100 #nameserver A记录
www CNAME node.a.easylee.org. #Canonical Name
(规范名称,A记录别名)
node.a A 172.25.254.101 #A记录
node.a A 172.25.254.102
easylee.org. MX 1 172.25.254.111. #邮件解析记录
注意
当更改完毕DNS服务的配置文件后一定要重启服务后更改内容才能生效
重启服务的命令为: systemctl restart namd
如果重启服务失败基本可以确定为配置文件的内容更改的有问题可以使用的查看命令为: journalctl -xeu named.service
3.测试实验结果
dig -t A www.easylee.org @172.25.254.100 ##查询A记录
dig -t mx easylee.org @172.25.254.100 ##查询MX记录
注意:在查询结果时会有几种反馈值
状态码 | 状态码含义 |
---|---|
NOERROR | 查询成功 |
REFUSED | 查询被拒绝 |
SERVFAIL | 查询失败 |
NXDOMAIN | 查询无此结果 |
DNS的反向解析
作用:当客户设定当前dns服务器为dns解析服务器时,正向解析即为客户提供PRT记录
客户提供域名,dns服务器负责把域名解析成对应IP
实施方法
1.编写zones文件设定要维护的域
]# vim /etc/named.rfc1912.zones
...
zone "254.25.172.in-addr.arpa" IN {
type master;
file "172.25.254.ptr";
allow-update { none; };
};
...
2.根据zones文件中的指定生成A记录文件
]# cd /var/named/
]# cp -p named.loopback 172.25.254.ptr
]# vim 172.25.254.ptr
$TTL 1D
@ IN SOA dns.easylee.org. root.easylee.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.easylee.org.
dns A 172.25.254.100
111 PTR bbs.easylee.org.
注意: 注意配置完成后需要重启named服务,否则不生效!!
3.测试实验结果
]# dig -x 172.25.254.111 @172.25.254.100
DNS多向解析方案
在企业中服务器不可能在同一个网段,不同网段的服务器是不是需要用多台dns来满足服务器需求? 根据这一企业需求我们可以在DNS中通过访问设置,让不同网段的服务器都解析到自己网段的相应地址,这就是DNS多项解析
配置实验环境
在当前网卡中添加所需网段IP
]# ip addr add 192.168.0.100/24 dev ens160
注意
在添加完毕这个IP后ens160这块网卡上就有两个IP
172.25.254.100
192.168.0.100
我们用这两个不同网段的IP来模拟多网段
当前用ip addr 命令添加的IP是临时添加,当网卡被刷新后该IP失效
实施方法
1.注释在主配置文件中默认的zone语句块
/*
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
*/
注意:在DNS配置语法中/*表示注释开始*/表示注释结束
2.添加view语句块来限制访问数据走向
view net-172 {
match-clients { 172.25.254.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
view net-192 {
match-clients { 192.168.0.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc192.zones";
};
注意
view中的match-clients是用来匹配访问来源的
匹配访问来源可以填写多个,每个之间用空格分隔
3.生成并配置zones文件
]# cp -p /etc/named.rfc1912.zones /etc/named.rfc192.zones
]# vim /etc/named.rfc192.zones
zone "easylee.org" IN {
type master;
file "easylee-192.org.zone";
allow-update { none; };
};
4.生成并配置A记录文件
]# cp -p /var/named/easylee.org.zone /var/named/easylee-192.org.zone
]# vim /var/named/easylee-192.org.zone
$TTL 1D
@ IN SOA dns.easylee.org. root.easylee.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.easylee.org.
dns A 192.168.0.100
www CNAME node.a.easylee.org.
node.a A 192.168.0.101
node.a A 192.168.0.102
easylee.org. MX 5 192.168.0.111.
注意:修改完毕配置文件后一定要重启服务
主从DNS服务器
为了提高域名服务器的可靠性,DNS域名服务器都把数据复制到几个域名服务器来保存,其中的一个就 是主DNS服务器(Master name server),负责解析至少一个域。其他的是辅助(从)DNS服务器 (Slave name server):负责解析至少一个域,是主DNS服务器的辅助。当主域名服务器出故障时,辅 助域名服务器可以保证DNS的查询工作不会中断。主域名服务器定期把数据复制到辅助域名服务器中, 而更改数据只能在主域名服务器中进行。这样就保证了数据的一致性
1.配置实验环境
新建一台主机作为辅助DNS主机,并配置好网络和软件仓库
在新建主机中安装DNS服务并保证服务可以被访问
2.对辅助DNS进行配置
修改zones文件设定要做主从的域
]# vim /etc/named.rfc1912.zones
zone "easylee.org" IN {
type slave;
masters { 172.25.254.100; };
file "slaves/easylee.org.zone";
// allow-update { none; };
};
3.启动服务并测试
]# systemctl enable --now named
]# dig -t A www.easylee.org @172.25.254.200
注意:以上操作除了测试命令外都在辅助dns中进行,在实验进行时一定要分清楚那个是主dns那个是辅助dns
4.解决数据时时同步问题
主从dns经过上述设定后存在数据同步延迟,在主dns中更改数据后要等到下个同步周期的时间到来才能 进行同步
下面我们就来解决下数据同步的延迟问题
1.在主dns中设置数据更改后主动通知对象
]# vim /etc/named.rfc1912.zones
zone "easylee.org" IN {
type master;
file "easylee.org.zone";
allow-update { none; };
also-notify { 172.25.254.200; };
};
2.更改A记录文件测试结果
]# vim /var/named/easylee.org.zone
$TTL 1D
@ IN SOA dns.easylee.org. root.easylee.org. (
2023032901 ; serial #更改A记录后一
定要更新serial值
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.easylee.org.
dns A 172.25.254.100
www CNAME node.a.easylee.org.
node.a A 172.25.254.200
node.a A 172.25.254.202
easylee.org. MX 5 172.25.254.111.
注意:serial值必须是增量更改,其最大位数为10位,在企业中一般会用这个数字来记录更改时间
3.测试数据同步性
]# dig -t A www.easylee.org @172.25.254.100
]# dig -t A www.easylee.org @172.25.254.200