DNS
DNS是互联网中将域名转化为对应ip地址的分布式命名系统。
域名的组成
根域名 test 主机+根域
一级域名(顶级域名) test.com 主机+一级域+根域
二级域名
三级域名
域名的结构
以www.baidu.com.为例
. 代表根域大家都有所以根域就省略了
.com 一级域名
.baidu 二级域名
www 主机名
域名解析
根域名解析服务器只能解析主机名+根域 的域名 根域服务中存储了自己的子域服务器的信息
根域无法解析,会透露一个信息给你,让你去问一级域中的com域名解析服务器
根域名解析服务器只能解析主机名+根域 的域名 根域服务中存储了自己的子域服务器的信息
以www.baidu.com为例
1.先去看hosts文件中是否有www.baidu.com的地址,如果有直接访问
2.如果没有向本地DNS服务器发起递归查询,等待反馈结果
3.本地DNS服务器先检查服务器的本地缓存,如果有历史记录,直接反馈IP地址,如果没有发起迭代查询
4.根域无法解析,会透露一个信息给你,让你去问一级域中的com域名解析服务器
5.一级域无法解析www.baidu.com,会透露一个信息给你,让你去找二级域
6.以此类推,最后有一台权威服务器会告诉你具体的IP地址,然后反馈给用户
递归:一次询问就有结果
迭代:需要多次询问
bind
bind是DNS服务器软件
- bind:服务器
- bind-libs:相关库
- bind-utils: 客户端
- bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
安装包名:bind
程序名字:named
配置文件:
/etc/named.conf:主配置文件
/etc/named.rfc1912.zones:区域配置文件 你想解析的域名要在这个文件中指明
数据库配置文件/var/named/* 指明了域名与ip地址的一一对应关系
bash
[root@localhost ~]# yum install bind bind-utlis -y #安装bind
[root@localhost ~]# rpm -qc bind #查看bind所有配置文件
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; #将这里修改成any 或者注释掉
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 或者注释掉
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "lzj.com" IN {
type master;
file "lzj.com.zone";
};
[root@localhost named]# cp -a named.localhost lzj.com.zone
cp:是否覆盖"lzj.com.zone"? y
[root@localhost named]# vim lzj.com.zone
$TTL 1D #默认的生存时间 1天
@ IN SOA master.lzj.com. admin.lzj.com (
0 ; serial #数据库的版本
1D ; refresh #刷新时间,隔多久会同步
1H ; retry #失败重试时间
1W ; expire #过期时间,一直无法拉取这个时间后过期
3H ) ; minimum
NS master
master A 192.168.118.20
mail A 192.168.118.110
www A 192.168.118.119
[root@localhost named]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #编辑网卡配置
#DNS1=218.2.135.1
DNS1=192.168.118.20
[root@localhost named]# systemctl restart network #重启网络服务
[root@localhost named]# systemctl start named
[root@localhost named]# host mail.lzj.com
mail.lzj.com has address 192.168.118.110