一、环境准备
1.还原快照,开启虚拟机A与虚拟机B,以root用户登录
二 、环境设置
1.防火墙设置:
虚拟机A
[root@A ~]# firewall-cmd --set-default-zone=trusted
[root@A ~]# firewall-cmd --get-default-zone
虚拟机B
[root@B ~]# firewall-cmd --set-default-zone=trusted
[root@B ~]# firewall-cmd --get-default-zone
2.设置SELinux运行模式为宽松
虚拟机A:
[root@A ~]# getenforce
Enforcing
[root@A ~]# setenforce 0 #设置当前系统SELinux为宽松
[root@A ~]# getenforce #查看当前系统SELinux运行模式
Permissive
[root@A ~]# vim /etc/selinux/config
SELINUX=permissive
虚拟机B:操作同上
二、构建DNS服务器
虚拟机A:
1.安装软件包
[root@A~]# yum -y install bind-chroot bind
2.修改主配置文件
[root@A ~]# cp /etc/named.conf /etc/named.bak
[root@A ~]# vim /etc/named.conf
options {
directory “/var/named”; #指定地址库文件存放的路径
};
zone “tedu.cn” IN { #指定本机负责解析的域名
type master; #指定本机为权威主DNS服务器
file “tedu.cn.zone”; #指定地址库文件名称
};
3.建立地址库文件
[root@A ~]# cd /var/named/
[root@A named]# cp -p named.localhost tedu.cn.zone #-p保持权限不变进行复制
[root@A named]# ls -l tedu.cn.zone
[root@A /]# vim /var/nam ed/tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS a #声明DNS服务器叫a
a A 192.168.4.7 #声明a的IP地址是192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
[root@A named]# systemctl restart named
[root@A named]# systemctl status named
虚拟机B:
1.指定DNS服务器位置
[root@B ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
2.测试域名解析
[root@B ~]# rpm -ql bind-utils
[root@B ~]# nslookup www.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 1.1.1.1
虚拟机A:测试
[root@A /]# rpm -ql bind-utils
[root@A /]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@A /]# nslookup www.tedu.cn
##################################################
三、DNS子域授权
父域:tedu.cn
子域:bj.tedu.cn
虚拟机B:构建DNS服务器负责解析bj.tedu.cn
1.安装软件包
[root@B ~]# yum -y install bind bind-chroot
2.修改配置文件
[root@B ~]# cp /etc/named.conf /etc/named.bak
[root@B ~]# vim /etc/named.conf
options {
directory “/var/named”;
};
zone “bj.tedu.cn” IN {
type master;
file “bj.tedu.cn.zone”;
};
3.建立地址库文件
[root@B ~]# cd /var/named/
[root@B named]# cp -p named.localhost bj.tedu.cn.zone
[root@B named]# vim bj.tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
bj.tedu.cn. NS b
b A 192.168.4.207
www A 3.3.3.3
[root@B /]# systemctl restart named
虚拟机A:配置子域授权,让虚拟机A知道虚拟机B的存在,并且知晓虚拟机B负责的域名
1.修改地址库文件
[root@A /]# vim /var/named/tedu.cn.zone #NS记录必须在所有A记录的上边
tedu.cn. NS a
bj.tedu.cn. NS b
a A 192.168.4.7
b A 192.168.4.207
www A 1.1.1.1
ftp A 2.2.2.2
[root@A /]# systemctl restart named
虚拟机B测试:
[root@B /]# nslookup www.bj.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Non-authoritative answer: #非权威的解析
Name: www.bj.tedu.cn
Address: 3.3.3.3
递归解析:客户端将解析请求给首选DNS服务器,首选DNS服务器与其他DNS服务器交互,最终将解析结果带回来的过程
虚拟机A:关闭递归解析
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
recursion no; #禁止递归解析
};
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
[root@A /]# systemctl restart named
迭代解析:客户端将解析请求给首选DNS服务器,首选DNS服务器告知下一个DNS服务器地址
总结:
客户端将解析请求给首选DNS服务器,首选DNS服务器开始递归解析,然后在与根域名服务器依次进行迭代查询,最终将解析结果带回来
##################################################################
四、DNS的主从架构
作用:提高可靠性,从服务器备份主服务器数据(主要备份的数据为地址库文件)
虚拟机A配置新的域名解析
虚拟机A:
1.安装软件包
[root@A~]# yum -y install bind-chroot bind
2.修改主配置文件
[root@A ~]# vim /etc/named.conf
options {
directory “/var/named”; #指定地址库文件存放的路径
};
zone “tedu.cn” IN { #指定本机负责解析的域名
type master; #指定本机为权威主DNS服务器
file “tedu.cn.zone”; #指定地址库文件名称
};
zone “360.com” IN { #指定本机负责解析的域名
type master; #指定本机为权威主DNS服务器
file “360.com.zone”; #指定地址库文件名称
};
3.建立地址库文件
[root@A ~]# cd /var/named/
[root@A named]# cp -p named.localhost 360.com.zone #-p保持权限不变进行复制
[root@A named]# ls -l 360.com.zone
[root@A /]# vim /var/named/360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a #声明DNS服务器叫a
a A 192.168.4.7 #声明a的IP地址是192.168.4.7
www A 4.4.4.4
[root@A named]# systemctl restart named
[root@A named]# systemctl status named
虚拟机B:
1.指定DNS服务器位置
[root@B ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
2.测试域名解析
[root@B ~]# rpm -ql bind-utils
[root@B ~]# nslookup www.360.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.360.com
Address: 4.4.4
虚拟机A配置主从
1.授权从服务器的IP地址 参考:man named.conf
[root@A named]# vim /etc/named.conf
options {
directory “/var/named”;
allow-transfer { 192.168.4.207; }; #指定从服务器192.168.4.207可以传输数据
};
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
zone “360.com” IN {
type master;
file “360.com.zone”;
};
2.从DNS服务器的声明
[root@A /]# vim /var/named/360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
360.com. NS b
a A 192.168.4.7
b A 192.168.4.207
www A 4.4.4.4
[root@A /]# systemctl restart named
虚拟机B配置从服务器
1.安装软件包
[root@B /]# yum -y install bind bind-chroot
2.修改主配置文件
[root@B /]# cp /etc/named.conf /etc/named.bak
[root@B /]# vim /etc/named.conf
options {
directory “/var/named”;
};
zone “360.com” IN {
type slave; #类型为从服务器
file “/var/named/slaves/360.com.slave”; #保证named用户拥有写入权限
masters { 192.168.4.7; }; #指定主DNS服务器IP地址
};
[root@B /]# ls /var/named/slaves/
[root@B /]# systemctl restart named
[root@B /]# ls /var/named/slaves/
主从DNS服务器同步数据
虚拟机A:
[root@A /]# vim /var/named/360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
360.com. NS b
a A 192.168.4.7
b A 192.168.4.207
www A 5.5.5.5
[root@A /]# systemctl restart named
虚拟机B:测试
[root@B /]# nslookup www.360.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.360.com
Address: 5.5.5.5
[root@B /]# nslookup www.360.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53
Name: www.360.com
Address: 4.4.4.4
[root@B /]#
虚拟机A修改数据的版本号
2020031601 ; serial #数据的版本号,由10个数字组成,越大版本,数据越新
1D ; refresh #主从DNS服务器之间同步数据默认为1天
1H ; retry #重试的时间间隔 1个小时
1W ; expire #失效的时间 1周
3H ) ; minimum #失败的记录,记忆时间 3个小时
[root@A /]# vim /var/named/360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
2020031603 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
360.com. NS b
a A 192.168.4.7
b A 192.168.4.207
www A 7.7.7.7
[root@A /]# systemctl restart named
虚拟机B:测试
[root@B /]# nslookup www.360.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.360.com
Address: 7.7.7.7
[root@B /]# nslookup www.360.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53
Name: www.360.com
Address: 7.7.7.7
[root@B /]#
##################################################################
五、缓存DNS服务器
作用:缓存解析记录,加速域名解析
虚拟机A:真正的DNS服务器
虚拟机B:缓存DNS服务器
虚拟机C:作为客户端验证
虚拟机B:配置缓存DNS服务器
[root@B /]# vim /etc/named.conf
options {
directory “/var/named”;
forwarders { 192.168.4.7; }; #转发给192.168.4.7
};
[root@B /]# systemctl restart named
虚拟机B:测试
[root@B /]# nslookup www.tedu.cn 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53
Non-authoritative answer:
Name: www.tedu.cn
Address: 1.1.1.1
##################################################################
六、DNS服务器的分离解析
•当收到客户机的DNS查询请求的时候
–能够区分客户机的来源地址
–为不同类别的客户机提供不同的解析结果(IP地址)
–让客户端访问最近的服务器
牛老师(北京南站)—达外酒店-----》高德地图-----》北京南大街107号
王老师(北京西站)—达外酒店-----》高德地图-----》北京西大街38号
BIND的view视图
•根据源地址集合将客户机分类
–不同客户机获得不同结果(待遇有差别)
–由上到下依次进行匹配,匹配及停止
–分类要合理,每一个客户端都要找到自己的分类
–所有的zone都必须在view中
view “haha” { #分类的名称
match-clients { 192.168.4.100 }; #匹配客户端来源地址
zone “12306.cn” IN {
…… 地址库1;
};
};
view “xixi” { #分类的名称
match-clients { 192.168.4.200; }; #匹配客户端来源地址
zone “12306.cn” IN {
…… 地址库2;
};
};
view “hehe” { #分类的名称
match-clients { any; }; #匹配客户端来源地址
zone “12306.cn” IN {
…… 地址库3;
};
};
•环境及需求
–权威DNS:a.tedu.cn 192.168.4.7
–负责区域:tedu.cn
–A记录分离解析 —— 以 www.tedu.cn 为例
虚拟机A:
1.修改主配置文件
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
};
view “haha” {
match-clients { 192.168.4.207; 192.168.7.0/24; };
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
};
view “xixi” {
match-clients { any; };
zone “tedu.cn” IN {
type master;
file “tedu.cn.other”;
};
};
2.建立相应的地址文件
[root@A /]# cd /var/named/
[root@A named]# vim tedu.cn.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS a
a A 192.168.4.7
www A 192.168.4.100
[root@A named]# cp -p tedu.cn.zone tedu.cn.other
[root@A named]# vim tedu.cn.other
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
tedu.cn. NS a
a A 192.168.4.7
www A 1.2.3.4
3.重启服务
[root@A /]# systemctl restart named
虚拟机A:测试
[root@A /]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 1.2.3.4
虚拟机B:测试
[root@B /]# nslookup www.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.tedu.cn
Address: 192.168.4.100
•多域名的分离解析
–权威DNS: 192.168.4.7
–负责区域:tedu.cn 360.com
–A记录分离解析 —— 以 www.tedu.cn与www.360.com为例
客户端为192.168.4.207或192.168.7.0/24解析www.tedu.cn----->192.168.4.100
客户端为其他地址 解析www.tedu.cn----->1.2.3.4
客户端为192.168.4.207或192.168.7.0/24解析www.360.com----->192.168.4.200
客户端为其他地址 解析www.360.com----->10.20.30.40
注意事项:
1.每一个view中,zone个数要一致
2.每一个view中,zone负责的域名要一致
虚拟机A:
1.修改主配置文件
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
};
view “haha” {
match-clients { 192.168.4.207; 192.168.7.0/24; };
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
zone “360.com” IN {
type master;
file “360.com.zone”;
};
};
view “xixi” {
match-clients { any; };
zone “tedu.cn” IN {
type master;
file “tedu.cn.other”;
};
zone “360.com” IN {
type master;
file “360.com.other”;
};
};
2.建立地址库文件
[root@A /]# cd /var/named/
[root@A named]# vim 360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
2020031603 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
a A 192.168.4.7
www A 192.168.4.200
[root@A named]# cp -p 360.com.zone 360.com.other
[root@A named]# vim 360.com.other
$TTL 1D
@ IN SOA @ rname.invalid. (
2020031603 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
a A 192.168.4.7
www A 10.20.30.40
[root@A named]# systemctl restart named
虚拟机A:测试
[root@A named]# nslookup www.360.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.360.com
Address: 10.20.30.40
虚拟机B:测试
[root@B /]# nslookup www.360.com 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.360.com
Address: 192.168.4.200
acl地址列表(了解内容)
•为大批量的客户机地址建立列表
[root@A named]# vim /etc/named.conf
acl “test” { 192.168.4.207; 192.168.7.0/24; 192.168.8.0/24; 192.168.9.0/24; 192.168.10.0/24; };
view “haha” {
match-clients { test; };
…
##################################################################
七、邮件服务器
•电子邮件服务器的基本功能
–为用户提供电子邮箱存储空间(用户名@邮件域名)
–处理用户发出的邮件 —— 传递给收件服务器
–处理用户收到的邮件 —— 投递到邮箱
虚拟机A:构建DNS服务器,添加邮件解析记录
1.修改主配置文件
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
};
zone “sina.com” IN {
type master;
file “sina.com.zone”;
};
2.建立地址库文件
[root@A /]# cd /var/named/
[root@A named]# cp -p named.localhost sina.com.zone
[root@A named]# vim sina.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
sina.com. NS a
sina.com. MX 10 mail #声明邮件交换记录,sina.com区域邮件服务器为mail.sina.com,优先级为10
a A 192.168.4.7
mail A 192.168.4.7
[root@A named]# systemctl restart named
虚拟机A:测试
[root@A /]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@A /]# cat /etc/resolv.conf
nameserver 192.168.4.7
[root@A /]# host -t MX sina.com #测试邮件交换记录,sina.com区域邮件服务器是谁
sina.com mail is handled by 10 mail.sina.com.
[root@A /]# nslookup mail.sina.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: mail.sina.com
Address: 192.168.4.7
虚拟机A:构建邮件服务器
1.安装软件包
[root@A /]# rpm -q postfix
postfix-2.10.1-6.el7.x86_64
2.修改主配置文件
[root@A /]# vim /etc/postfix/main.cf
末行模式开启行号功能 :set nu
99 myorigin = sina.com #默认补全域名后缀,例子: 发件人书写lisi 默认补全[email protected]
116 inet_interfaces = all #监听本机的所有网卡
164 mydestination = sina.com #判断是否为本域邮件依据 ,如果收件人 [email protected]
3.重启服务
[root@A /]# systemctl restart postfix
4.邮件的收发测试:
[root@localhost ~]# yum -y install mailx #安装mail命令
•mail 发信操作
–mail -s ‘邮件标题’ -r 发件人 收件人
[root@A /]# useradd yg
[root@A /]# useradd xln
[root@A /]# mail -s ‘hahaxixi’ -r yg xln
葵花宝典,已练成~
. #输入一个 . 结束提交
EOT
[root@A /]# echo ‘九阴真经,已练成~’ | mail -s ‘hehelele’ -r yg xln #非交互式发邮件
•mail 收信操作
–mail [-u 用户名]
[root@A /]# mail -u xln #以root身份查看用户xln的邮件
Heirloom Mail version 12.5 7/5/10. Type ? for help.
“/var/mail/xln”: 1 message 1 new
N 1 [email protected] Tue Mar 17 01:41 18/520 “hahaxixi”
& 1 #输入邮件的编号,回车
& exit
##################################################################
要求:
1.在Web1机器上构建Web服务,实现基于域名的虚拟Web主机,提供www.163.com与www.qq.com两个网站
2.在Web2机器上构建Web服务,实现基于域名的虚拟Web主机,提供www.163.com与www.qq.com两个网站
3.客户端192.168.4.207访问www.163.com与www.qq.com两个网站,有Web1服务器提供
4.客户端192.168.4.208访问www.163.com与www.qq.com两个网站,有Web2服务器提供
5.在192.168.4.7上实现DNS分离解析
晚上实验练习(去除子域授权实验)