-
DNS介绍
-
DNS是一个域名系统,分布式数据库,存的是域名和IP,可以通过域名找到对应的IP,也就找到了对应ip的主机
-
DNS协议运行在UDP协议上,使用53端口
-
应用场景:需要域名解析的地方
-
-
DNS部署
-
yum -y install bind bind-chroot
-
bind DNS主程序包
-
bind-chroot DNS安全包,改变默认的DNS目录,运行在监牢模式下
-
-
不使用chroot模式启动DNS
-
systemctl enable named
-
systemctl start named
-
-
使用chroot模式启动DNS
-
-p 代表权限也一起复制
-
cp -p /etc/named.conf /var/named/chroot/etc/ DNS配置文件复制
-
cp -p /var/named/named.* /var/named/chroot/var/named/ 数据库复制
-
named-checkconf /var/named/chroot/etc/named.conf 检查配置文件是否正确
-
systemctl enable named-chroot.service
-
systemctl start named-chroot
-
-
-
配置文件
-
options {
listen-on port 53 { 192.168.254.129; };#监听地址
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; }; #服务对象改为any
recursion yes; #开启递归查询
dnssec-enable yes; # 开启安全机制
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.root.key"; # 使用公钥私钥实现安全
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
#正向解析配置文件
zone "pymaster.com" IN {
type master; #类型
file "pymaster.com.zone";# 数据库文件路径
};
#反向解析配置文件,网段倒着写
zone "154.168.192.in_addr.arpa" IN {
type master; #类型
file "192.168.245.arpa";# 数据库文件路径
};
-
正向解析数据库文件
-
切换到chroot/var/named/目录 ,辅助正向解析文件,重命名为名称有有意义的数据库文件,就用域名好了
-
cp named.localhost pymaster.com.zone
-
chgrp named pymaster.com.zone # 修改目录掌控权限用户组
-
vim pymaster.com.zone
-
$TTL 1D # 缓存周期一天
pymaster.com. IN SOA ns1.pymaster.com. rname.invalid. (
# 指定对那个域进行解析 # 域名服务器
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.pymaster.com. # 指向域名解析服务器
ns1 A 192.168.254.129 # 可以理解为自解析
www A 192.168.254.251 #A代表正向,PTR代表反向
news CNAME www # CNAME 别名
# MX 域名是邮件服务器域名
-
检查数据库文件
-
named-checkzone pymaster.com /var/named/chroot/var/named/pymaster.com.zone
-
-
检查配置文件
-
named-checkconf /var/named/chroot/etc/named.conf
-
-
systemctl enable named-chroot.service
-
systemctl start named-chroot
-
lsof -i:53 查看端口服务开启了没
-
-
-
反向解析数据库文件
-
cp named.loopback 192.168.254.arpa
-
chgrp named 192.168.254.arpa
-
打开文件
-
$TTL 1D
254.168.192.in-addr.arpa. IN SOA ns1.pymaster.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.pymaster.com.
251 PTR www.pymaster.com. # 此处由于版本问题,不能只写www,正向解析可以
-
-
-
最后做测试
-
vim /etc/reslov.conf
-
nameserver 192.168.254.129 将当前服务器作为dns服务器
-
host www.pymaster.com 简单
-
nslookup www.pymaster.com 交互式
-
djg www.pymaster.com 详细
-
-
-
DNS服务器容灾
-
DNS单点故障
-
解决方法:使用多台DNS服务器,实现主从同步
-
主配置文件不会同步,区域数据库文件会同步
-
备用服务器按关闭防火墙,安装bind 和bind-chroot
-
复制主服务器的主配文件
-
scp root@192.168.254.129:/var/named/chroot/etc/named.conf /var/named/chroot/etc/
-
修改权限目录为named且修改文件
-
masterfile-format text; # 全局设置设置获取的区域数据库文件文件不加密
};
zone "." IN {
type hint;
file "named.ca";
};
zone "pymaster.com" IN {
type slave;
file "pymaster.com.zone";
masters { 192.168.254.129; } ; # 这样会从主服务器中获取区域数据库文件
};
zone "254.168.192.in-addr.arpa" IN {
type slave;
file "192.168.254.arpa";
masters { 192.168.254.129; };
}; -
启动服务后备用服务器会从主服务器拷贝区域数据库文件
-
将服务器本身作为dns服务器用以测试
-
-
-
做主从同步
-
当主数据库更新后,备用数据库怎么做数据同步呢
- 配置文件中的1D ; refresh 就是设定多久从主服务器刷新一次区域数据库文件,这里是1天,
-
-
-
-
智能解析
-
-
实现方法
-
先创建IP库对请求解析的主机IP做地域匹配,然后找到对应视图view,使用对应视图的对应区域数据库文件做DNS解析,这样查询量就会小一点,提高效率
-
acl sh{
192.168.254.127;
};
# ip库
acl bj{
192.168.254.128;
};
# 此时192.168.254.129不在bj,也不再在sh,所以进行查询时结果是pymaster.com.zone.ot区域数据库文件中的解析记录,此处结果是3.3.3.3,数值纯为模拟
#北京地域IP视图
view beijing{
match-clients { bj; };
# 对应的区域数据库文件
zone "." IN {
type hint;
file "named.ca";
};
zone "pymaster.com" IN {
type master;
file "pymaster.com.zone.bj";
};
};
#上海地域IP视图
view shanghai{
match-clients { sh; };
zone "." IN {
type hint;
file "named.ca";
};
zone "pymaster.com" IN {
type master;
file "pymaster.com.zone.sh";
};
};
view qita{
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
zone "pymaster.com" IN {
type master;
file "pymaster.com.zone.ot";
};
};
-
-
-
-