DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
每个IP地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台IP设备的IP地址,只要记住相对直观有意义的主机名就行了。这就是DNS协议的功能。
1、技术角度看
DNS解析是互联网绝大多数应用的实际寻址方式; 域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网应用和协议。
2、资源角度看
域名是互联网上的身份标识,是不可重复的唯一标识资源; 互联网的全球化使得域名成为标识一国主权的国家战略资源。
本实验在desktop中进行
1.首先配置真机
systemctl start firewalld 开启火墙
systemctl status firewalld 查看火墙状态
firewall-cmd --add-masquerade 开启
firewall-cmd --list-all 查看
连上网络ping www.baidu.com 成功
编辑vim /etc/resolv.conf 将文件中的域名解析服务器全部屏蔽,将虚拟机172.25.254.103作为域名服务器添加进去
在desktop主机内
2.编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0配置网络
写入内容
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=172.25.254.103
NETMASK=255.255.255.0
GATEWAY=172.25.254.3
DNS1=114.114.114.114
systemctl restart network 重新启动网络
route -n 查看网关
虚拟机 ping 114.114.114.114 成功
首先添加光驱,加入7.0镜像,将镜像挂载到/mnt
编辑cd /etc/yum.repos.d
vim yum.repo
写入
[rhel7.0]
name=rhel7.0
baseurl=file:///mnt
gpgcheck=0
4.关闭虚拟机火墙
第一步:在虚拟机desktop上安装bind.x86_64软件,开启named服务
yum install bind.x86_64 -y
systemctl start named
编辑vim /etc/named.conf文件
systemctl restart named 重新启动服务
测试:
在desktop中测试 dig www.baidu.com
编辑vim /etc/named.rfc1912.zones文件
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
};
进入cd /var/named/目录
cp -p named.localhost westos.com.zone
编辑vim westos.com.zone文件
注意:
TTL 1D 数据可以被客户端缓存一天
@ 所维护的域的域名
serial 刷新时间
expire 过期时间
minimum 在最小数据访问时间
systemctl restart named 重新启动服务
测试:dig www.westos.com
编辑vim /etc/resolv.conf文件
写入
# Generated by NetworkManager
nameserver 172.25.254.103
进入cd /var/named/
编辑vim westos.com.zone文件
重新启动服务 systemctl restart named
cat /var/named/westos.com.zone 查看
发送邮件并测试:
mail [email protected]
Subject: test
hahahahaha
.
EOT
dig -t mx westos.com
编辑vim /etc/resolv.conf文件
写入nameserver 172.25.254.103
编辑 vim /etc/named.rfc1912.zones文件
在文件最后写入
zone "254.25.172.in-addr.arpa" IN {
type master;
file "172.25.254.ptr";
allow-update { none; };
};
进入cd /var/named/目录
cp -p named.loopback 172.25.254.ptr
编辑vim 172.25.254.ptr文件
cat /var/named/172.25.254.ptr 查看
systemctl restart named 重新启动服务
测试:
dig -x 172.25.254.111
1.开启两个虚拟机 desktop和server配置网络
配置desktop 给它添加双ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR0=172.25.254.103
NETMASK0=255.255.255.0
IPADDR1=1.1.1.103
NETMASK1=255.255.255.0
重新启动网络服务systemctl restart network
查看ip执行 ip addr show eth0
配置server
编辑 vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=1.1.1.203
NETMASK=255.255.255.0
重新启动网络服务systemctl restart network
编辑 vim /etc/resolv.conf文件
写入 nameserver 1.1.1.103
测试一下 :dig www.westos.com 解析到 172.25.254 网段
进入cd /var/named/目录
cp -p westos.com.zone westos.com.inter
编辑vim westos.com.inter文件
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
2.编辑vim /etc/named.rfc1912.inter
zone "westos.com" IN {
type master;
改 file "westos.com.inter";
allow-update { none; };
};
删除掉之前的反向解析
3.编辑/etc/named.conf文件,使不同的网段指向不同的/etc/named.rfc1912.zones/inter的指向
编辑vim /etc/named.conf文件
注释掉之前的重新写入
/*
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
*/
写入新的
view localnet {
match-clients { 1.1.1.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inter";
};
view internet {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
include "/etc/named.root.key";
systemctl restart named 重新启动服务
4.在真机中切换超级用户
编辑vim /etc/resolv.conf文件
写入 nameserver 172.25.254.103
5.分别在真机和server上进行测试dig www.westos.com
真机测试dig www.westos.com
server 中测
两台主机进行desktop为主DNS,server为辅助DNS
首先在server中
编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0文件配置网络
DEVICE=eth0
BOOTPROTO=none
IPADDR=172.25.254.203
NETMASK=255.255.255.0
systemctl restart network重新启动服务
mount /dev/sr0 /mnt 挂载镜像
df 查看
进入cd /etc/yum.repos.d/目录
编辑vim yum.repo
[rhel7.0]
name=rhel7.0
baseurl=file:///mnt
gpgcheck=0
yum install bind -y 安装
systemctl stop firewalld 关闭火墙
systemctl start named 启动服务
编辑vim /etc/resolv.conf文件
写入nameserver 172.25.254.203
编辑vim /etc/named.rfc1912.zones文件
zone "westos.com" IN {
type slave;
masters { 172.25.254.103; };
file "slaves/westos.com.zone";
allow-update { none; };
};
systemctl restart named 重新启动服务
ls -l /var/named/ 查看
进入cd /var/named/slaves/目录
dig www.westos.com 测试
配置desktop
编辑 vim /etc/resolv.conf文件
写入nameserver 172.25.254.103
编辑 vim /etc/named.conf 文件删除掉上次实验写入的,清空环境
编辑 vim /etc/named.rfc1912.zones文件
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
allow-transfer { 172.25.254.203; };
also-notify { 172.25.254.203; };
};
systemctl restart named 重新启动服务
进入cd /var/named/目录
编辑vim westos.com.zone文件 当改变域名解析不改变serial值时看是否会同步
systemctl restart named 重新启动服务
在辅助DNS测试看是否同步(server)
dig www.westos.com 没有同步
编辑vim westos.com.zone文件 当改变域名解析改变serial值时看是否会同步
systemctl restart named 重新启动服务
再次在辅助DNS测试看是否同步(server)
dig www.westos.com 同步成功
首先在主DNS中(desktop)进行配置
mkdir /westos 新建目录
进入cd /var/named/目录
cp -p westos.com.zone /westos/ 拷贝westos.com.zone到/westos中
第一步:设置DNS服务端,允许客户端主机修改westos.com.zone
修改/etc/named.rfc1912.zones
编辑vim /etc/named.rfc1912.zones文件
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { 172.25.254.203; };
allow-transfer { 172.25.254.203; };
also-notify { 172.25.254.203; };
};
systemctl restart named 重新启动服务
第二步,更改/var/named权限,否则会出现serverfull的错误
chmod 770 /var/named/ 修改权限
第三步,当执行getenforce命令 显示 Disabled,不用处理。
当执行getenforce命令 显示 Enforcing,
需要编辑 getsebool -a | grep named
编辑 setsebool - P named_write_master_zones on
第四步,在server中进行远程更新
nsupdate
> server 172.25.254.103
> update add test.westos.com 86400 A 172.25.254.90
> send
> quit
更新成功并退出
在desktop中执行
systemctl restart named 重新启动服务
编辑vim westos.com.zone文件查看是否更新
在desktop中测试(域名添加是否成功)
dig test.westos.com 远程更新成功
首先在主DNS(desktop)中进行配置
首先实验环境得配置好
进入cd /var/named/目录
[root@localhost named]# rm -fr westos.com.zone westos.com.zone.jnl
[root@localhost named]# cp -p /westos/westos.com.zone .
1.生成key
[root@localhost westos]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westoskey 生成密钥
2.编辑加密文件
[root@localhost westos]# cp -p /etc/rndc.key /etc/westos.key
编辑vim /etc/westos.key 文件
key "westoskey" { 密钥名称
algorithm hmac-md5;
secret "密钥";
};
编辑vim /etc/named.conf文件
include "/etc/westos.key";
编辑 vim /etc/named.rfc1912.zones文件
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { key westoskey; };
allow-transfer { 172.25.254.203; };
also-notify { 172.25.254.203; };
};
systemctl restart named 重新启动服务
4.给客户端分发密钥
[root@localhost westos]# scp Kwestoskey.+157+49253.* [email protected]:/westos/
在server主机中
进入 cd /westos/目录查看
测试 远程更新 成功并退出
[root@server westos]# nsupdate -k Kwestoskey.+157+49253.private
> server 172.25.254.103
> update delete test.westos.com
> send
> quit
进入主DNS (desktop)中
systemctl restart named 重新启动网络
远程更新成功,test 被删除
该实验在上个实验基础上进行
1.首先配置客户端(server)
设置客户端主机名称为game.westos.com
设置主机的网络为dhcp
2.配置dhcp服务在desktop主机配置
option domain-name "westos.com" 域名
option domain-name-server 172.25.254.103 ip
systemctl restart dhcpd 重新启动服务
systemctl status dhcpd 查看服务状态
在server主机中重新启动网络测试
systemctl restart network 重新启动网络
3.配置dns的主配置文件,配置dns的的key更新
配置dhcp.conf文件
dns的更新方式设定
dns的key更新
dns的域更新
测试:在客户端(server)dig game.westos.com成功