DNS
权威名称服务器:存储并提供某区域(整个DNS域或DNS域的一部分)的实际数据。权威名称服务器 类型包括:
Master:包括原始区域数据。有时称作"主要"名称服务器。
Slave:备份服务器,通过区域传送从Master服务器获得的区域数据的副本。有时称作"次要"名称服务器
非权威/递归名称服务器的类型包括仅缓存名称服务器:仅用于查找,对于非重要>数据之外的任何内容都不具有权威性
DNS查找
客户端上的Stub解析器将查询发送至/etc/reslove.conf的名称服务器nameserver
如果名称服务器对于请求的信息具有权威性,会将权威答案发送至客户端,否则如果名称服务器在其缓存中有请求的信息,则会将非权威答案发送至客户端;
如果缓存区没有该信息,名称服务器将搜索权威名称服务器以查找信息,从根区域开始,按照DNS层次结构向下搜索,直至对于信息
具有权威性的名称服务器,以此为客户端获得答案。
1>高速缓存DNS
named.conf为DNS配置文件
一些重要的opinions指令
listen-on 控制named侦听的ipv4地址
listen-on-v6 控制named侦听的ipv地址
allow-query 控制哪些客户端可以向DNS服务器询问信息
forwarders 包括DNS查询将转发至的名称服务器的列表(而不是直接联系外部名称服务器;在设有防火墙的情况下很有用)
注意:所有这些指令会将大括号中以分号分隔的元素视为地址匹配列表。
1.yum install bind.x86_64 #服务端安装高速缓存服务
2.vim /etc/named.conf #编辑DNS的配置文件
options {
11 listen-on port 53 { any; }; #任意ip4的地址都可以侦听
12 listen-on-v6 port 53 { ::1; };
13 directory "/var/named";
14 dump-file "/var/named/data/cache_dump.db";
15 statistics-file "/var/named/data/named_stats.txt";
16 memstatistics-file "/var/named/data/named_mem_stats.txt";
17 allow-query { any; }; #允许任何用户向DNS-server访问信息(dig www.baidu.com)
18 forwarders {114.114.114.114;}; #内部名称服务器
29 recursion yes;
30
31 dnssec-enable yes;
32 dnssec-validation no;
33 dnssec-lookaside auto;
3.systemctl restart named #重启该服务
4.vim /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=172.25.254.64 #设置网关
NETMASK=255.255.255.0
5.vim /etc/resolv.conf
nameserver=114.114.114.114
dig www.baidu.com
vim /etc/named.conf #打开访问限制,打开dns服务
在客户端
vim /etc/resolve.conf
nameserver=172.25.254.132 #名称服务器
dig www.baidu.com
dig www.qq.com
vim /etc/reslove.conf
客户端访问
2>正向解析:
正向解析:根据域名获取ip
反向解析:根据ip获取域名
1.vim /etc/named.rfc1912.zones
2.cd /var/named/
3.cp -p named.localhost westos.com.zone
4.vim westos.com.zone
$TTL 1D
@#表示westos.com IN SOA dns.westos.com.#dns解析 lala.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.132
hello A 172.25.254.101
5.systemctl restart named
vim /etc/named.rfc1912.zones
vim westos.com.zone
本机访问hello.westos.com
2.1>正向轮循式域名解析
1.vim westos.com.zone
www CNAME node1.westos.com.
node1 A 172.25.254.222
node2 A 172.25.254.111
2.systemctl restart named
3.dig www.westos.com
vim westos.com.zone
dig www.westos.com
3>反向解析
1.cd /var/named/
2.vim /etc/named.rfc1912.zones
49 zone "254.25.172.in-addr.arpa" IN { #反向ip
50 type master;
51 file "westos.com.ptr";
52 allow-update { none; };
53 };
3.ls
4.cp -p named.loopback westos.com.ptr #复制编写内容的模板
5.ls
6.vim westos.com.ptr
$TTL 1D
@ #172.25.254 IN SOA dns.westos.com. root(身份).westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.132
111 PTR www.westos.com.
222 PTR nihao.westos.com
7.systemctl restart named
8.dig -x 172.25.254.111
实验操作如下
vim /etc/named.rfc1912.zones
vim westos.com.ptr
反向解析访问
4>双向域名解析
1 cp -p westos.com.zone westos.com.inter
2 ls
3 vim westos.com.inter
$TTL 1D
@ IN SOA dns.westos.com. lala.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 182.25.254.132
hello A 182.25.254.101
www CNAME node1.westos.com.
node1 A 182.25.254.222
node1 A 182.25.254.111
vim /etc/named.rfc1912.inter #外网访问文件
4 cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
5 vim /etc/named.rfc1912.inter
vim /etc/named.rfc1912.inter
vim /etc/named.rfc1912.zones #本机访问文件
vim /etc/named.rfc1912.zone
6 vim /etc/named.conf #named 配置文件50-58行
在本地访问时是/etc/named.rfc1912.zones中查询的
59 view localnet {
60 match-clients { 172.25.254.132; };
61 zone "." IN{
62 type hint;
63 file "named.ca";
64 };
65 include "/etc/named.rfc1912.zones";
66 };
外网查询时是在/etc/named.rfc1912.inter中查询的
67 view inter {
68 match-clients { any;};
69 zone "." IN{
70 type hint;
71 file "named.ca";
72 };
73 include "/etc/named.rfc1912.inter";
74 };
双向解析主配置文件
实验操作:
132即本机访问
7 systemctl restart named
8 在132的虚拟机访问
dig www.westos.com
外网访问
5>DNS配置更新同步
1.在dns-server上面服务端
vim /etc/named.conf
注释掉所有更改
vim /etc/named.rfc1912.zones
19 zone "westos.com" IN {
20 type master;
21 file "westos.com.zone";
22 allow-update { 172.25.254.232; };#允许同步更新
23 also-notify { 172.25.254.232;}; #并且告知172.25.254.232
24 };
5.当dns-server进行更改的时候
vim /var/named/westos.com.zone
@ IN SOA dns.westos.com. lala.westos.com. (
0 ; serial
在主服务段更改一次,serial 上写一次,这样才会被比较更新到dns-slave上面
vim /etc/named.rfc1912.zones
在dns-slave配置辅助主机上面,安装bind,打开named服务,关闭防火墙
1.hostnamectl set-hostname dns-slave.example.com
2.yum install bind.x86_64
3.systemctl stop firewalld
4.systemctl enable named
5.vim /etc/named.conf
6. vim /etc/named.rfc1912.zones
19 zone "localhost" IN {
20 type master;
21 file "named.localhost";
22 allow-update { none; };
23 };
25 zone "westos.com" IN {
26 type slave;
27 masters {172.25.254.132; };#以132为主机
28 file "slaves/westos.com.zone"; #当132更新时,改机会在slaves目录下生成一个更新后的文件westos.com.zone并同步到该机
29 allow-update { none; };
30 };
7.systemctl restart named
vim /etc/named.conf
vim /etc/named.rfc1912.zones
当132进行更改时vim /var/named/westos.com.zone
232辅助操作
232访问更改后的
6.1>DNS配置更新
1.cd /var/named/
2.cp westos.com.zone /mnt/ -p #复制该文件并同步权限
3.chmod 770 /var/named/ #给/var/named/添加权限
vim /etc/named.rfc1912.zones
在232辅助端上面
nusupdate
> server 172.25.254.132
> update add test.westos.com 86400 A 172.25.254.111 #添加test.westos.com域名和解析到westos.com.zone
> send
> quit
在132主机上面/var/named/生成更新文件
ls #生成westos.com.zone.jnl
dig test.westos.com
rm -f /var/named/westos.com.zone*
systemctl restart named
ls
cat /var/named/westos.com.zone #是被更改的状态
rm -f /var/named/westos.com.zone
cp -p /mnt/westos.com.zone .
在232上面
> server 172.25.254.132
> update delete test.westos.com
> send
> quit
删除test之后
6.2>DNS加密配置更新
1.cd /mnt
2.dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos #加密命令 -a 添加 HMAC-MD5 加密方式 -n 密钥名称
3.cp /etc/rndc.key /etc/westos.key -p #复制密钥模版
4.cat Kwestos.+157+44512.key #查看密码
6.vim /etc/westos.key
key "westos" { #钥匙名称
algorithm hmac-md5;
secret "6SmsuY+T7Ss8np1iGHOjLA=="; #密码
};
7. vim /etc/named.conf
42 include "/etc/westos.key"; #添加加密文件
8.vim /etc/named.rfc1912.zones
19 zone "westos.com" IN {
20 type master;
21 file "westos.com.zone";
22 allow-update { key westos; }; #只允许有钥匙的客户端访问
23 also-notify { 172.25.254.232;};
24 };
9.scp Kwestos.+157+44512.* [email protected]:/mnt/
10.systemctl restart named
加密实验操作
加密后/etc/named.conf
vim /etc/named.rfc1912.zones
在232/mnt/有westos.key上
1.cd /mnt/
2.ls 查看该路径下是否有key
nsupdate -k Kwestos.+157+44512.private
> server 172.25.254.132
> update add hello.westos.com 86400 A 172.25.254.121
> send
> quit
dig hello.westos.com
132主机上会生成/var/named/westos.zones.jrl文件并访问添加lala.westos.com
7>DDNS高速缓存DNS
1.yum install dhcp
2.cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
3.vim /etc/dhcp/dhcpd.conf
# option definitions common to all supported networks...
7 option domain-name "westos.com";
8 option domain-name-servers 172.25.254.132;
9
30 subnet 172.25.254.0 netmask 255.255.255.0 {
31 range 172.25.254.91 172.25.254.100;
32 option routers 172.25.254.132;
33 }
34 key westos {
35 algorithm hmac-md5;
36 secret 6SmsuY+T7Ss8np1iGHOjLA==;#密码
37 };
38
39 zone westos.com. {
40 primary 127.0.0.1;#回环接口
41 key westos;
42 }
4.systemctl restart dhcpd.conf
dhcp 配置文件
实验操作如下
在dhcp客户端
将主机名改为域名为westos.com的名称,ip获取方式为动态获取
1.更改主机名:
hostnamectl set-hostname linux.westos.com
2.在dhcp客户端上设置ifcfg-eth0的配置文件,在拔掉网线的情况
3.systemctl restart network
4.ifconfig
5.dig linux.westos.com
dig 主机名
查看解析出的ip是否随主机动态获取的ip变化而变化
dhcp客户端操作如下:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
ifconfig查看从132上获得的动态ip
当dhcp服务端配置文件改变后并重启了dhcpd服务
vim /etc/dhcp/dhcpd.conf
systemctl restart dhcpd.conf
再次查看动态ip是否更新
dig linux.westos.com