dns基础工作原理
bind Berkerley Information Name Domain
DNS Domain Name Server
TCP/UDP 53
UDP 53 无连接协议,域名解析
TCP 53 面向连接协议,区域传送
历史IANA
统一名字,自己hosts中维护(%windows%/system32/etc/hosts, /etc/hosts)
统一维护,定时任务计划
统一查询,glibc共享库作为客户端基于UDP协议解析域名
hash
数值分布式
域名分布式:授权方式,将部分功能分别放在独立的主机,数据同步(一致性、可用性、容错性)
查询
迭代查询:多次查询,返回参考结果
递归查询:一次查询,返回最终结果
解析区域
正向解析:FQDN-->IP
反向解析区域:IP-->FQDN
答案
肯定: 解析成功
否定:解析没有结果
权威:由域所负责的DNS服务器所返回的结果
非权威:
主从DNS区别
关联:保证DNS服务器“可靠性”
主:管理员维护
从:由SOA内部特性决定如何同步/传送/复制
SOA内部特性
serial 序列号:区域解析库的版本号
refresh 刷新
retry 重试: 小于刷新时长
expire 过期时长:重试多久就不再重试,从DNS放弃角色
否定答案的TTL
宏定义
$TTL:肯定答案的缓存时长
$ORIGIN:区域(正、反)名
BIND是DNS协议的软件实现
区域解析库:由众多Resource Record组成
资源记录的类型:PTR, A, NS, SOA, AAAA, MX
轮循:同主机名,对应多个不同的IP
子域授权:在上级域的DNS服务器的区域解析库中添加glue record[胶水]记录即可
DNS工作模式
运营商缓存DNS
本地缓存DNS
DNS缓存服务器
1、配置YUM源
2、安装程序包:
3、安装后的相关文件
3、配置
1)备份配置文件
# cp -v /etc/named.conf{,.bak}
2)配置结果
**//allow-query { localhost; }; 表示 allow-query { any; };
3)测试配置文件是否正确
# named-checkconf
4)启动服务
# service named start # ss -tunlp | fgrep :53 <TCP/UDP:53 和 TCP:953端口>
5)测试
1、查看提供的测试工具 # rpm -q -l bind-utils 2、尝试用本地的缓存DNS服务器,迭代解析请求 # dig -t A www.baidu.com @192.168.1.100
DNS正反解析
正向解析
1)配置为缓存DNS服务器
2)添加zone配置: /etc/named.rfc1912.zones
# vim + /etc/named.rfc1912.zones
3)测试语法
# named-checkconf
4)编辑区域解析库
1、进入解析库的目录 # cd /var/named 2、查看文件 # ls 3、编辑解析库的文件
5)测试语法
# named-checkzone "magedu.com" /var/named/magedu.com.zone
6)修改权限
named进程的属主是named,对magedu.com.zone文件的权限和属组需要悠 # chmod 640 magedu.com.zone # chown :named magedu.com.zone
7)重载配置文件
# rndc reload # service named reload
9)显示输出信息
# rndc status
10)测试解析
测试解析的命令: host, dig, nslookup
host命令
使用示例
# dig -t SOA magedu.com @192.168.1.100 # dig -t NS magedu.com @192.168.1.100 # dig -t MX magedu.com @192.168.1.100 # dig -t A www.magedu.com @192.168.1.100
dig命令
使用示例
# host -t SOA magedu.com 192.168.1.100 # host -t NS magedu.com 192.168.1.100 # host -t MX magedu.com 192.168.1.100 # host -t A www.magedu.com 192.168.1.100
nslookup命令
使用示例
# nslookup www.magedu.com 192.168.1.100
反向解析
1)保证正向测试正常
2)添加zone配置: /etc/named.rfc1912.zones
# vim + /etc/named.rfc1912.zones
3)测试语法
# named-checkconf
4)反向区域解析库的配置
1、基于正向,修改出反向 # cp magedu.com.zone 192.168.1.1.zone
5)权限
# chmod 640 192.168.1.100.zone # chown .named 192.168.1.100.zone
6)语法
# named-checkzone "1.168.192.in-addr.arpa" 192.168.1.1.zone
7)重载
# service named reload # rndc reload
8)状态
# rndc status
9)测试
# dig -x 192.168.1.100 @192.168.1.100 # host -t PTR 192.168.1.100 192.168.1.100
DNS主从同步
配置从DNS服务器
1、时间同步
# cp -v /etc/ntp.conf{,.bak}
# service ntpd start
在从DNS服务器上同步时间<等10min> # ntpdate 192.168.1.100
2、从bind的版本>=主bind版本
3、从dns位于一个独立的主机
4、ns记录和nsip指向的是同一个主机,从dns服务器
5、从dns服务器区域解析库的位置
6、从dns被允许从主dns作区域传送(allow-transfer { DNS_SLAVE_IP; };
正向同步
1)配置缓存名称服务器
# cp -v /etc/named.conf{,.bak}
# service named start # ss -tunlp | grep 53
2)配置/etc/named.rfc1912.zones文件
3)测试
# named-checkconf
4)重载
# service named reload # rndc reload
5)查看文件
反向同步
2)配置/etc/named.rfc1912.zones文件
3)测试
4)重载
5)查看文件
尝试修改主DNS服务器,测试是否能主从同步
正向
# rndc reload
反向
# rndc reload