1.DNS工作原理
-
DNS服务器的功能
– 正向解析:根据注册的域名查找其对应的IP地址
– 反向解析:根据IP地址查找对应的注册域名,不常用 -
DNS服务器的分类: 一级DNS服务器 二级DNS服务器 三级DNS服务器
-
所有的域名都要以点结尾
根域名: .
一级域名: .cn .us .tw .hk .jp .kr …
二级域名: .com.cn .net.cn .org.cn …
三级域名: nb.com.cn haha.com.cn xixi.com.cn hehe.com.cn -
完全合格的主机名(FQDN): 主机头部+注册域名
Full Qualified Domain Name,完全合格主机名
2.BIND域名服务
• BIND(Berkeley Internet Name Daemon)
– 伯克利 Internet 域名服务
– 官方站点:https://www.isc.org/
bind #域名服务包
bind-chroot #提供虚拟根支持,牢笼政策
– 系统服务:named
– 默认端口:TCP/UDP 53
– 运行时的虚拟根环境:/var/named/chroot/
• 主配置文件:/etc/named.conf
#设置本DNS服务器负责解析的域名
• 地址库文件:/var/named/
#主机名与IP地址的对应关系
3.配置DNS服务
1)安装软件包
yum -y install bind-chroot bind
2)修改主配置文件
cp /etc/named.conf /etc/named.bak #备份原文件
vim /etc/named.conf
options {
directory "/var/named"; #指定地址库文件存放的路径
};
zone "tedu.cn" IN { #指定本机负责的域名
type master; #指定本机为主DNS服务器
file "tedu.cn.zone"; #指定地址库文件名称
};
3)建立地址库文件
- DNS服务器bind程序会以named用户的身份进行运行,必须保证named用户有读取权限,所有的域名都必须以点作为结尾,如果不以点作为结尾,那么自动补全本地址库负责的域名
cd /var/named/
cp -p named.localhost tedu.cn.zone #-p:权限不变进行复制
vim tedu.cn.zone
tedu.cn. NS svr7 #声明DNS服务器的主机名
svr7 A 192.168.4.7 #声明DNS服务器的IP地址
www A 1.1.1.1 #域名解析记录
ftp A 2.2.2.2 #域名解析记录
4)重启named服务
systemctl restart named
systemctl enable named
4.服务端
1)指定DNS服务器地址
echo 'nameserver 192.168.4.7' >> /etc/resolv.conf
2)验证域名解析
nslookup www.tedu.cn
#主机名映射文件:/etc/hosts 直接为本机提供域名解析 最高优先级
5.特殊解析
1)DNS轮询
• 基于DNS的站点负载均衡
– 一个域名 —> 多个不同IP地址
– 每个IP提供镜像服务内容
2)泛域名解析
vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
svr7 A 192.168.4.7
* A 1.2.3.4
3)解析记录的别名
tedu.cn. NS svr7
svr7 A 192.168.4.7
ftp A 2.2.2.2
tts CNAME ftp
6.DNS服务器资源解析记录有哪些类型?
NS:声明DNS服务器解析记录
A:正向地址解析记录
CNAME:解析记录的别名
反向
7.子域授权
声明子域的DNS服务器
vim /var/named/qq.com.zone
qq.com. NS svr7
bj.qq.com. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
8.递归解析
- 客户端发送请求给主DNS服务器,主DNS服务与其他DNS服务交流,最终将解析结果带回来的过程
options {
directory "/var/named";
recursion no; #关闭递归解析
};
9.迭代解析
- 客户端发送请求给主DNS服务器,主DNS服务告知下一个服务器IP地址
10.缓存DNS
需要服务器可以访问公共DNS
vim /etc/named.conf
options {
forwarders { 202.106.0.20; }; #注意空格
};
11.主从DNS服务器
1)主服务器
a.修改主配置文件,授权从服务器的IP地址(允许谁可以备份我的数据)
vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.4.207; };
};
b.修改地址库文件,声明从服务器的存在
vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
tedu.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
c.重启
2)从服务器
vim /etc/named.conf
zone "tedu.cn" IN {
type slave; #类型为从服务器
file "/var/named/slaves/tedu.cn.slave"; #同步的数据,存放路径 存放路径要求named用户有写入权限
masters { 192.168.4.7; }; #主DNS服务器为192.168.4.7
};
3)主从的数据同步
2019111901 ; serial #数据版本号,由10个数字组成,越大越新
1D ; refresh #主从同步时间的间隔
1H ; retry #失效后主从同步时间的间隔
1W ; expire #失效时间
3H ) ; minimum #失败记录记忆的时间
要使更新数据同步:版本号增加
12.Split分离解析
1)作用:针对不同的客户机就近提供服务器
• 当收到客户机的DNS查询请求的时候
– 能够区分客户机的来源地址
– 为不同类别的客户机提供不同的解析结果(IP地址)
2)BIND的view视图
• 根据源地址集合将客户机分类
– 不同客户机获得不同结果(待遇有差别)
– 分类要合理,每一个客户端都要找到自己的类别
– 分类匹配原则:由上到下进行匹配,匹配及停止
3)配置 vim /etc/named.conf
view "名字" {
match-clients { 192.168.4.207; };
zone "tedu.cn" IN {
type master;
file "地址库2";
}; };
view "other" { #any为其他,来源ip不满足以上view时,使用此解析
match-clients { any; };
zone "tedu.cn" IN {
type master;
file "地址库2";
}; };
多区域的分离解析:
- 每一个view中,zone的个数必须一致
- 每一个view中,zone负责的域名必须一致
4)acl地址列表,类似于变量作用
- 为大批量的客户机地址建立列表
- 调用时指定列表名即可
acl "test" { 192.168.4.207; 192.168.4.100; 192.168.4.200; 192.168.7.0/24; };
#写入option内,'test'为名字