DNS是Domain Name System的英文缩写,被翻译为域名系统,是英特网的一项核心服务,它作为可以将域名和IP相互映射的一个数据库,使用户在访问互联网时只需要记住简单的域名(如www.baidu.com),而不需要记住复杂的被机器直接读取的IP数字串,即DNS的工作就是当用户在输入域名时,帮助用户自动找到该域名对应的IP从而使用户在使用互联网时更加方便。
一、DNS的高速缓存
1、安装DNS 命令 yum install bind(bind是最广泛使用的开源缓存dns服务器)
2、启动DNS服务
3、将DNS加入火墙允许列表
4、更改dns主配置文件/etc/named.conf令其可以为所有的主机进行网络解析服务,完成后重启服务
listen-on port 53 { any; };
allow-query { any; };
forwarders { 172.25.254.250; };
5、客户端加入DNS解析,nameserver=配置好dns的主机
6、在客户端解析域名,我这里dig www.163.com,可以看到其反馈出其ip地址为1113.142.80.177,实现了域名的解析
但我们再一次dig www.163.com时,会发现其时延变为0ms,这便是dns的高速缓存。即再次访问同一个网址,已经缓存过的会高速的显示出来。
二、DNS的正向解析
1、删除主配置文件/etc/named.conf里的forwarders { 172.25.254.250; };那一行
2、vim /etc/named.rfc1912.zones 编辑子配置文件复制模板,改为要维护的域(我这里是westos.com)并命名维护的域的主机的配置文件(westos.com.zone),如下图
3、切换到 /var/named目录下
cp -p named.localhost westos.com.zone复制模板为刚才命名的文件
编辑westos.com.zone,改成如下图
“@”符表示在子配置文件中所设定的那个域名(westos.com),该文件中所有的域名如dns.westos.com的结尾都需要添加一个“.”,否则会被该@符读取
第一行的TTL是一种设定,后面的1D表示该记录文件里面的各项记录的预设TTL值为86400秒,即刚好一天
IN定义出目前的记录类型是属于internet class的
SOA表示目前区域的授权记录开始,其后面的值为区域授权主机和管理信箱
serial表示修改的时间及次数,当自己在修改记录文件时需要更改serial的值,否则修改无法被slave识别;
refresh表示数据多久进行一次更新
retry表示如果slave的对数据更新失败后,多久后进行重试
expire记录逾期时间,即超过该时间slave未与master进行联系,系统会放弃retry并标记该数据标识为过期
minimum最小预设TTL的值,如果在文件开头没有设置TTL的值,将以该处的值为准
这里172.25.254.105表示从105获得解析;172.25.254.111表示把要维护的域www,westos.com解析为172.25.254.111;NS表示域名的名称服务器;A表示名称至ipv4地址。
4、客户端dig www.westos.com查看,可以看到将www.westos.com解析为172.25.254.111
CNAME解析轮询
我们刚刚dig www.163.com可以看到查询结果是先将其CNAME两次再看到其真实ip,怎么做到,如下
1、还是编辑westos.com.zone,这次我们加入CNAME bbs.westos.com.(注意要加. 否则将表示bbs.westos.com.westos.com)
并且dns自带轮询,我们可以加入两个ip地址一会去查看
2、客户端dig www.westos.com 多次观察,速度要慢一点 ,可以看到实现解析轮询
三、反向解析
1、编辑/etc/named.rfc1912.zones 载文件里最后几行,还是复制模版并改成网段和配置文件
2、编辑westos.com.ptr文件,PTR表示ipv4/ipv6地址至名称,为了查看结果时明显,将111 222表示两个不同域名
3、客户端dig -x +地址查看
四、双向解析
1、cd /etc下 cp
cd /var/named/下 cp -p westos.com.zone westos.com.inter
编辑westos.com.inter将里面的172改为192
编辑name .rfc1912.zones.inter 复制上面的模版将里面改为westos.com且指定的file 改为“westos.com.inter”
2、cd /var/named/下 cp -p westos.com.zone westos.com.inter
编辑westos.com.inter将里面的172改为192配置好内网和外网
3、编辑主配置文件 /etc/named.conf,将系统自带的注释掉,编写如下图所示模式:
localnet表示本地,我这里匹配用户只有自己(用ip表示172.25.254.105),指定文件include是上面创建好的内网文件
internet表示外网 匹配用户其他所有(用ip表示一会用客户端测试),指定文件include是上面创建好的外网文件
4、分别在105本身和客户端测试
1)105解析出来是172表示内网
2)除105外所有都是外网解析,用客户端解析查看为外网192
五、解析辅助
这里需要再打开一台虚拟机,重置网络(ip配置为172.25.254.205) ,dns解析(nameserver=172.25.254.205),完成后重启网络;配置好yum源;将其shell名字改为dns-slave,下面再205这台主机上
1、安装bind
2、vim /etc/named.conf //注释掉三行(//表示与其相反),如下图所示
3、vim /etc/namedrfc1912.zones编辑设置与105同步
4、105主机也编辑vim /etc/named.rfc1912.zones加一行并把法file“westos.com.inter”设置同步,并把/etc/named.conf里的本地解析用户ip随便改成一个155,因为要实现一个外网同步,所以改变内网解析ip也可以将其注释掉
5、现在修改105真实主机westos.com.inter里的内容随便更改一个ip记得修改serial那一行,完成后重其服务named,并进行查看;
辅助端也重启服务dig查看可以实现同步
六、DNS远程更新
复制一份inter到/mnt/下一会会用
1、在105中编辑主配置文件/etc/named.conf将自己写的/* */注释并将系统自带的解开注释
2、加权限 chmod g+w /var/named
并打开其他用户可以读写的权限 setsebool -P named_write_master_zones on
3、vim /etc/named.rfc1912.zones将allow-update一行none改为172.25.254.205
4、在205直接测试nsupdate添加hello.westos.com完成后在105重启服务并查看westos.com.inter查看hello.westos.com是否加入成功 ,如下图
5、 载尝试删除update deletehellow.westos.com并查看
七、DNS远程更新加密
(因为用上面那种方法别人改成相同的ip就可以更改你,所以比较危险,所以需要加密)
删除inter和jnl文件,并将/mnt/下的inter用cp -p过来 重启服务named
1、cp -p /etc/rndc.key /etc/westos.key生成westos.key文件
2、dnssec-ketgen -a HMAC-MD5 -b 128 -n HOST westos生成密码和钥匙
(执行后若是卡住,要在主机里打开一个shell随机输入字符即可, -a表示加密模式 -b 表示加密字节 -n Host 表示类型是HOST 名称是westos)
3、编辑/etc/westos.key
4、vim /etc/named.conf编辑主配置文件,加入include "/etc/westos.key";
5、vim /etc/named.rfc1912.zone编辑子配置文件
完成4、5步重启named服务
6、发送密码钥匙给允许远程更新的主机 scp Kwestos.+157+36700.* [email protected]:/mnt/
7、收到私钥后进行测试:
1)加入hello
主机端查看
2)删除hello
主机端查看
八、DHCP对DNS进行动态更新
删除westos.com.inter 和jnl 并把/mnt下的inter cp -p 回来不要重启named
1、主机端安装dhcp cp模版配置文件命令:cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
1)第7行修改为"westos.com"; 第8行修改为主机ip:172.25.254.105 第14行打开注释并改为interim
2)删除27、28行
3)删除35行以后的
4)修改30行以后的并修改为上图内容
完成后重启dhcpd服务
3、在客户端205修改主机名字为hello.westos.com
将其网络模式设置为dhcp并重启网络服务
dig hello.westos.com观测