名字解析和DNS的介绍
DNS的作用把平时方便使用创造的域名(www.baidu.com)转化为IP地址,用于方便直接访问网络中的设备。
实现此服务的方法是多样的DNS是其中一种,
DNS(Domain Name System)是应用层的一种协议,基于C/S架构,服务器端口号为:53/UDP 响应端口为53/tcp, 每台DNS服务器都至负责管理一个有限的范围内的主机名和ip的对应关系,
根据解析的方向不同,由域名转化为ip称为正向解析 而由ip地址到域名的解析称为反向解析。
根据在dns服务中所处位置分为:
-
根域
-
一级域名:Top Level Domain: tld
-
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域
-
com, edu, mil, gov, net, org, int,arpa
-
二级域名:magedu.com
-
三级域名:study.magedu.com
-
最多可达到127级域名
实现
本地host文件 记录在本地的 域名与ip的对应文件 比较原始的获取dns服务的方法
DNS 服务器类型
缓存域名服务器 提供域名解析结果的缓存, 目的在于方便多次访问, 提高查询效率
主域名服务器 管理和维护所负责解析的域内解析库的服务器
从域名服务器 从主服务器或从服务器"复制"(区域传输)解析库副本
包扩
序列号:解析库版本号,主服务器解析库变化时,其序列递增
刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
过期时长:从服务器联系不到主服务器时,多久后停止服务
通知机制:主服务器解析库发生变化时,会主动通知从服务器
DNS查询类型及原理
递归查询: 一般客户机和dns服务器之间属于递归查询 即当客户机想dns服务器发送查询请求,得到的关于结果的肯定或否定结果返回给客户机,查询目标不变的情况下秩序发起一次查询。
迭代查询: 一般情况下本地想其他dns查询属于迭代查询对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)
正向解析过程
1.查询本机缓存记录
2.查询本机host文件
3.查询dns域名服务器交给其处理
4.如果服务器为本地域名服务器且恰好由缓存则直接返回结果,没有则进行下一步。
5.询问根服务器,跟服务器指明可能知道结果的一级域服务器,由本机向一级服务器询问
6. 询问一级域名服务器,指明可能知道结果的二级域名服务器,然后他去找二级服务器
7.求助二级服务器,二级域名服务器查询发现有结果,把查询的IP地址返回到本地域名服务器。
8.本地域名服务器将记录缓存,并将域名与ip对应。
114.114.114.114是国内三大运营商通用的dns 8.8.8.8是由google提供的dns
江苏省南京市(中国电信) 首选DNS为:218.2.135.1 备用DNS为:61.147.37.1
正向解析 安装及配置
vim /etc/named.conf
listen-on port 53 { any; }; 允许所有可以监听
allow-query { any; }; 允许响应所有
或者直接注释掉 就默认允许所有
# // listen-on port 53 { 127.0.0.1; };
# // allow-query { localhost; };
vim /etc/named.rfc1912.zones 编写域名
zone "ct.com" {
type master;
file "ct.com.zone"; 文件位置
};
cd /var/named/
cp named.localhost ./ct.com.zone -p
$TTL 1D
@ IN SOA master.ct.com. admin.ct.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 192.168.156.105
www A 192.168.156.105
ftp A 192.168.156.110
启动named服务
host www .ct.com
主从复制
从服务器配置
yum install bind bind-utils.x86_64 -y
vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
vim /etc/named.rfc1912.zones
zone "kgc.com" IN {
type slave; 类型为 从
file "slaves/ct.com.zone"; 文件地址为/var/named
masters { 192.168.91.100; }; 指明主服务器地址为192.168.91.100
重启服务
systemctl start named 重启服务
主服务器配置
vim /etc/named.rfc1912.zones
zone "ct.com" IN { 同样表明类型主或从 指明文件地址 和从服务器地址
type master;
file "ct.com.zone";
allow-transfer { 192.168.91.103; };
重启dns服务
rndc reload 重启dns服务
验证
在从服务器上
dig www.ct.com @192.168.91.101 解析域名为www.ct.com 通过主服务器192.168.91.101