1.DNS介绍
1.1域名介绍
讲DNS之前,我们先来了解一下域名。域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。具有独一无二,不可重复的特性。
1.2DNS介绍
域名系统(Domain Name System,缩写:DNS)是互联网的一项服务。域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。我们可以把DNS服务器理解为翻译官。
2.域名解析过程
- 客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步
- 客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,否则进行下一步。
- 将请求转发给指向的DNS服务器。
- 查看域名是否本地解析,是则本地解析返回,否则进行下一步。
- 本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。
- 向全球13个根域服务器发起DNS请求,根域返回com域的地址列表。
- 使用某一个com域的IP地址,发起DNS请求,com域返回lyw域服务器地址列表。
- 使用某一个lyw域IP地址,发起DNS请求,lyw域返回www.lyw.com主机的IP地址,本地DNS服务收到后,返回给客户机,并在本地DNS服务器保存一份。
递归查询:
客户机向指定的DNS服务器发起请求,指定DNS服务器返回给客户机确定值
迭代查询:
指定DNS服务器向根服务器发起请求,根服务器返回近似的值给指定DNS服务器
3.DNS软件信息
软件名称:
bind
服务名称:
named
软件端口:
UDP 53 数据通信(域名解析)
TCP 53 数据同步(主从同步)
配置文件:
主配置文件:/etc/named.conf(服务器运行参数)
区域配置文件:/etc/named.rfc1912.zones(服务器解析的区域配置,正反向区域定义信息)
数据配置文件:/var/named/xx.xx(主机名和IP地址的对应解析关系,及主从同步信息)
记录类型:
A: 地址记录,用来指定域名的IPv4地址的记录
CNAME: 将域名指向另一个域名,再由另一个域名提供ip地址,就需要添加CNAME记录
TXT: 可填写任何东西,长度限制255。绝大多数的TXT记录是用来做SPF的(反垃圾邮件)
NS: 域名服务器记录,如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录。
AAAA: 地址记录,用来指定域名的IPv6地址的记录
MX3: 邮件交换记录,如果需要设置邮箱,让邮箱能收到邮件,就需要添加MX记录。
4.DNS服务搭建
注意:先关闭服务器和客户机上的防火墙和SELinux
4.1 软件安装
yum -y install bind
4.2 配置主配置文件(/etc/named.conf)
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
4.3 配置区域文件(/etc/named.rfc1912.zones)
注:先对区域文件进行备份,删除多余的模板,只留下一个正向和一个反向(反向修改时,网络位的反写格式,如192.168.142.2-->142.168.192.)
vim /etc/named.rfc1912.zones
zone "lyw.com" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "241.168.192.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
4.4 配置数据文件/var/named/
正向解析
vim named.localhost
$TTL 1D
@ IN SOA lyw.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.lyw.com.
www A 192.168.241.3
dns1 A 192.168.241.30
dns2 A 192.168.241.40
反向解析
vim named.loopback
$TTL 1D
@ IN SOA lyw.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.lyw.com.
3 PTR www.lyw.com.
50 PTR dns3.lyw.com.
60 PTR dns4.lyw.com.
4.5 重启DNS服务
systemctl restart named
4.6 客户端测试
在网卡配置文件中添加DNS服务器的地址,然后用nslookup测试
5.主从DNS服务器
作用:1.备份主服务器数据 2.减轻主服务器的压力
5.1搭建主DNS服务器
步骤参考第四节(配置文件略有不同)
区域文件配置如下(/etc/named.rfc1912.zones)
配置数据文件/var/named/ 配置如下
5.2搭建从DNS服务器
步骤参考第四节(配置文件略有不同)
区域文件配置如下(/etc/named.rfc1912.zones)
5.3客户端测试
在网卡配置文件中添加从DNS服务器的地址,然后用nslookup测试
6.缓存服务器
作用:加快解析速度,提高工作效率
6.1安装软件
yum -y install dnsmasq
6.2修改/etc/dnsmasq.conf
添加以下内容
domain=域名 #需要解析的域名
server=ip #主DNS服务器IP
cache-size=10000 #声明缓存条数
systemctl restart dnsmasq
6.3客户端测试
在测试机上填写DNS缓存服务器的ip地址然后测试
7.智能DNS(分离解析)
原理:DNS分离解析即将相同域名解析为不同的IP地址。现实网络中一些网站为了让用户有更好的体验效果解析速度更快,就把来自不同运营商、地域的用户解析到相对应的服务器这样就大大提升了访问速度。
7.1服务器准备(双网卡)
# 开启路由转发
vim /usr/lib/sysctl.d/50-default.conf
net.ipv4.ip_forward=1
# 验证开启成功
grep ip_forward /usr/lib/sysctl.d/50-default.conf
reboot
软件安装
yum -y install bind
7.2修改配置文件
vim /etc/named.conf
view lan{
match-clients{192.168.241.0/24;};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/lan.zones";
};
view wan{
match-clinets{any;};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/wan.zones";
};
#include "/etc/named.rfc1912.zones"; # 注释掉默认的区域配置文件
复制区域文件并修改
cp -a /etc/named.rfc1912.zones /etc/lan.zones
cp -a /etc/named.rfc1912.zones /etc/wan.zones
vim /etc/lan.zones
zone "lyw.com" IN {
type master;
file "lan.localhost";
allow-update { any; };
};
zone "241.168.192.in-addr.arpa" IN {
type master;
file "lan.localhost";
allow-update { any; };
};
vim /etc/wan.zones
zone "lyw.com" IN {
type master;
file "wan.localhost";
allow-update { any; };
};
zone "201.168.192.in-addr.arpa" IN {
type master;
file "wan.localhost";
allow-update { any; };
};
复制数据文件并修改
cd /var/named
cp -a named.localhost wan.localhost
cp -a named.localhost lan.localhost
vim /var/named/wan.localhost
$TTL 1D
@ IN SOA lyw.com. rname.invalid. (
202309211 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.lyw.com.
NS www2.lyw.com.
www A 192.168.201.3
www2 A 192.168.201.4
dns1 A 192.168.201.30
dns2 A 192.168.201.40
vim /var/named/lan.localhost
$TTL 1D
@ IN SOA lyw.com. rname.invalid. (
202309211 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.lyw.com.
NS www2.lyw.com.
www A 192.168.241.3
www2 A 192.168.241.4
dns1 A 192.168.241.30
dns2 A 192.168.241.40
#重启服务
systemctl restart named