第一部分:dns 基础理论
1.DNS的作用:将域名解析为IP地址
1.1 正向解析: 根据注册的域名查找其对应的IP地址
1.2 反向解析:根据IP地址查找对应的注册域名,不常用
2.域名结构: 树型结构
3.所有的域名都必须以点结尾: 比如: www.baidu.com.
4.上述例子中最右边的. 表示为根域名 全球ipv4根域名服务器只有13台
5.一级域名:也称为顶级域名:例如: .cn .us .kr .com(表示全球的商业组织) 等
6.二级域名: 例如: .com.cn .net.cn .org.cn(非法盈利组织的域名) 等
7.三级域名: 例如: www.baidu.com 该域名的机构 : 主机头部(www)+注册的域名(baidu.com)
8.主机头部是有自己设定:比如说爱奇艺的会员网址为: vip.iqiyi.com
9.完全合格的域名(FQDN) = 主机头部 + 注册的域名
10.dns端口为53
11.系统服务: named
12.运行时的虚拟根环境 :/var/named/chroot/
13.主配置文件路径: /etc/named.conf //配置本机负责解析的域名
14.地址库文件:/var/named/ //配置域名的解析结果
第二部分:配置基本的DNS服务器 (BIND域名服务)
1.装包配置:
1.1 yum -y install bind-chroot bind //bind- chroot 提供虚拟根支持 (牢笼政策–域名守护进程,作用于监控bind程序,如果检测到bind程序出现异常,会将Bind程序封锁在/var/named/chroot/目录下) bind是域名服务包(域名解析主要的程序)
1.2 vim /etc/named.conf //配置主配置文件
options {
listen-on port 53 { any; }; //监听53端口,服务与所有IP ,默认是any,这条可以删除
directory “/var/named”; //指定地址库文件路径
allow-query { any; }; //允许哪个IP可以查询并进行域名解析,默认为any ,这条可以删除
recursion yes; //开启递归解析的功能.默认为YES开启状态,改为NO则关闭功能
};
zone “tedu.cn” IN { //配置本机负责解析的域名
type master; //常用类型有两个:一个是master主服务器 另一个是slave从服务器
file “tedu.cn.zone”; //指定地址库文件的名字
};
1.3. 建立地址库文件并进行配置:
(1). cp -p named.localhost tedu.cn.zone //named.localhost是自带的模板, cp -p保持权限不变
(2). vim tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum //包含这行以上的内容,是DNS主从服务器的配置
tedu.cn. NS server(为主机名) //NS 表示域名服务器记录
server(为主机名) A 172.25.0.11 //A 表示 地址记录,仅用于正向解析区域 //NS + A 共同称之为DNS的声明记录
www A 对应域名的网址IP
1.4 systemctl restart named //重启服务
1.5 客户端测试: echo nameserver 72.25.0.11 > /etc/resolv.conf //指定DNS服务器IP
nslookup www.tedu.cn //nslookup 用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题
或者: nslookup www.tedu.cn 172.25.0.11 //后面可以直接指定DNS服务器IP
或者:dig www.tedu.cn 172.25.0.11 //dig相对于nslookup功能更加强大
1.6 /etc/hosts : 主机名映射记录 //没有DNS服务器的情况下,可以提供本地域名解析服务
1.7
第三部分:配置多域名的DNS服务器
1.配置主配置文件:
1.1 vim /etc/named.conf //配置主配置文件
options {
listen-on port 53 { any; }; //监听53端口,服务与所有IP ,默认是any,这条可以删除
directory “/var/named”; //指定地址库文件路径
allow-query { any; }; //允许哪个IP可以查询并进行域名解析,默认为any ,这条可以删除
recursion yes; //开启递归解析的功能.默认为YES开启状态,改为NO则关闭功能
};
zone “tedu.cn” IN { //配置本机负责解析的域名
type master; //常用类型有两个:一个是master主服务器 另一个是slave从服务器
file “tedu.cn.zone”; //指定地址库文件的名字
}; 注意:色块中的配置,是第一个域名解析配置
zone “qq.com” IN { //配置本机负责解析的域名
type master; //常用类型有两个:一个是master主服务器 另一个是slave从服务器
file “qq.com.zone”; //指定地址库文件的名字
} 注意:这段是第二个域名解析配置,以此模板可以往后追加多个域名解析配置
1.2 cp -p /var/named/tedu.cn.zone /var/named/qq.com.zone //创建地址库文件(偷个懒,以tedu模板稍加修改)
1.3
vim /var/named/qq.com.zone //配置多域名解析的地址库
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum ==//包含这行以上的内容,是DNS主从服务器的配置==
qq.com. NS server(为主机名) ==//NS 表示域名服务器记录==
server(为主机名) A 172.25.0.11 ==//A 表示 地址记录,仅用于正向解析区域 //NS + A 共同称之为DNS的声明记录==
www A 对应域名的网址IP
* A 对应域名的网址IP ==※号表示任意3级域名,都可以给用户反馈一个IP的解析结果==
1.4 客户端测试: nslookup www.qq.com
第四部分.配置有规律的泛域名解析
比如有50个域名和相对应的IP:
pc1.tedu.cn -------------> 192.168.10.1
pc1.tedu.cn -------------> 192.168.10.2
pc1.tedu.cn -------------> 192.168.10.3
…
pc1.tedu.cn -------------> 192.168.10.50
1.配置地址库文件:
vim /var/named/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum ==//包含这行以上的内容,是DNS主从服务器的配置==
tedu.cn. NS server(为主机名) ==//NS 表示域名服务器记录==
server(为主机名) A 172.25.0.11 ==//A 表示 地址记录,仅用于正向解析区域 //NS + A 共同称之为DNS的声明记录==
www A 对应域名的网址IP
* A 对应域名的网址IP ==※号表示任意3级域名,都可以给用户反馈一个IP的解析结果==
$GENERATE 1-50 pc$ A 192.168.10.$ ==$GENERATE :制造连续的数字
第五部分:DNS资源解析记录有哪些:
1.正向解析记录(A记录)
2.DNS声明解析记录(NS记录)
3.解析记录的别名(CNAME记录)
(子域,父域解析)递归解析:有客户端发出请求,首选DNS服务器接收请求,将解析结果带回的过程
第六部分:DNS查询的工作方式:/DNS域名解析的过程
1.假如想访问一个网站的域名www.pku.edu.cn,客户端先访问本地/etc/hosts,如果本机不能解析,则
会将这个请求发往本机客户机首选的DNS服务器
2.如果客户端首选的DNS服务器可以解析该域名,则直接给客户端返回结果,反之则开始迭代查询
3. 迭代查询:先访问.根域DNS服务器,再访问.cn域DNS服务器,再访问.edu.cn域DNS服务器,最终访问到pku.edu.cn域DNS服务器
4. 将访问结果返回给客户机的首选DNS服务器,并由其记录,再将访问结果返回给客户机
5. 客户机此时可以访问到www.pku.edu.cn域名
第七部分:缓存DNS服务器(假DNS服务器)
1.作用:缓存记录解析结果,加快解析速度
2.配置主配置文件:
vim /etc/named.conf
options {
listen-on port 53 { any; }; //监听53端口,服务与所有IP ,默认是any,这条可以删除
directory "/var/named"; //指定地址库文件路径
allow-query { any; }; //允许哪个IP可以查询并进行域名解析,默认为any ,这条可以删除
forwarders { 真DNS服务器IP; }; //指定DNS服务器,并将求情转发给DNS服务器
};
sysstemctl srestart named //重启服务