缓存DNS、Split分离解析、电子邮件通信、Web服务器项目实战
缓存DNS服务器
作用:缓存解析记录,加速域名解析
结构
-
企业内网
计算机1 计算机2 计算机3
交换机A 缓存DNS服务器 路由器A
互联网DNS服务器 web服务器
-
平常的访问
计算机1 输入域名 -> 交换机 -> 路由器 -> 互联网 DNS解析 互联网 -> 路由器 -> 交换机 ->计算机A IP
再通过IP,经过上面的流程访问互联网web服务器,获取网页
-
缓存DNS服务器
计算机1 输入域名 -> 交换机 -> 缓存DNS服务器 DNS解析 缓存DNS服务器 -> 交换机 ->计算机A IP
再通过IP,访问互联网web服务器,获取网页
如果缓存DNS没有域名解析记录,他会去问互联网,然后记录解析结果,用内存记录
配置缓存DNS
/etc/named.conf
设置 forwarders { 公共DNS; }; 转发器
虚拟机A:真正的DNS服务器 虚拟机B:缓存DNS服务器 虚拟机C:作为客户端验证
-
缓存DNS服务器 B 修改主配置文件
options { directory "/var/named"; forwarders { 192.168.4.7; }; };
重启服务即可
Split分离解析
DNS分离解析
当收到客户机的DNS查询请求的时候 能够区分客户机的来源地址 为不同类别的客户机提供不同的解析结果(IP地址)
目的:让客户端访问最近的服务器
BIND的view视图
-
根据源地址集合将客户机分类
不同的客户机获得不同的结果(待遇有差别) 由上到下 依次匹配,匹配即停止 最后一个分类,就是any 全匹配 所有的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 "other" { match-clients { any; }; zone "12306.cn" IN { .....地址库3; }; }; view "分类名称不能为中文" { match-clients { 匹配来源IP地址; }; zone "12306.cn" IN { .....地址库1; }; };
单域名分离解析案例
权威DNS:a.tedu.cn 192.168.4.7
负责区域: tedu.cn A记录分离解析 — 以www.tedu.cn 为例
客户机来自 192.168.4.20、192.168.7.0/24(代表网络) 解析到 192.168.4.100
客户机来自 其他地址 解析到 1.2.3.4
A vim /etc/named.conf options { directory "/var/named"; }; view "one" { match-clients { 192.168.4.20; 192.168.7.0/24; }; zone "tedu.cn" IN { type master; file "tedu.cn.zone"; }; }; view "other" { match-clients { any; }; zone "tedu.cn" IN { type master; file "tedu.cn.other"; }; }; cp -p /var/named/tedu.cn.zone /var/named/tedu.cn.other vim /var/named/tedu.cn.zone tedu.cn. NS a a A 192.168.4.7 www A 192.168.4.100 ftp A 2.2.2.2 tts CNAME ftp * A 3.3.3.3 vim /var/named/tedu.cn.other tedu.cn. NS a a A 192.168.4.7 www A 1.2.3.4 ftp A 2.2.2.2 tts CNAME ftp * A 3.3.3.3 systemctl restart named
多域名分离解析
权威DNS服务器:192.168.4.7 负责区域:tedu.cn 360.com A记录分离解析—以 www.tedu.cn www.360.com 为例
注意: 1、每一个view中的zone个数必须一样 2、每一个view中的zone负责的域名必须一致
acl 地址列表
acl "test" { 192.168.4.207; 192.168.4.1; 192.168.1.1; }; view "test" { match-clients { test; }; zone "tedu.cn" IN { type master; file "tedu.cn.other"; }; };
电子邮件通信
邮件服务器
虚拟机A:构建DNS服务器,添加邮件解析记录
1、修改主配置文件 vim /etc/named.conf
options { directory "/var/named"; }; zone "sina.com" IN { type master; file "sina.com.zone"; };
2、修改地址库文件 cp -p /var/named/named.localhost /var/named/sina.com.zone vim /var/named/sina.com.zone
sina.com. NS a sina.com. MX 10 mail a A 192.168.4.7 mail A 192.168.4.7
3、重启
systemctl restart named
4、添加DNS解析配置
echo 'nameserver 192.168.4.7' > /etc/resolv.conf
5、测试: sina.com 区域的邮件服务器是谁:
-
host -t MX sina.com mail.sina.com
-
nslookup mail.sina.com获得邮件服务器IP
构建邮件服务器
1、安装软件包(默认安装) rpm -q postfix 2、修改配置文件 vim /etc/postfix/main.cf
#myorigin = mydomain #默认补全域名后缀,例如 lisi 会补全 lisi.sina.com - myorigin = sina.com inet_interfaces = localhost 默认监听本地 - inet_interfaces = all mydestination = sina.com # 判断是否为本域邮件
重启服务
systemctl restart postfix
邮件的验证
yum -y install mailx
mail 发信操作
-
发信操作 useradd user1 useradd user2 mail -s “title” -r user1 user2 mail -s “邮件标题” -r 发件人 收件人
然后 输入正文 asadaasd中文也行 最后另起一行输一个 .
-
还可以非交互式发 echo “九阴真经,已练成” | mail -s “title” -r user1 user2
-
收信操作 mail [-u 用户名]
mail -u user2
然后 输入 1 回车就可以看正文
输入 exit 可以退出
Web服务器项目实战
192.168.4.207 192.168.4.10 192.168.4.7(DNS服务器) 192.168.4.208 192.168.4.20 192.168.4.10 (www.163.com,www.qq.com) 192.168.4.20 (www.163.com,www.qq.com)
综合项目实战
- 在web 10 机器上构建web服务,实现基于域名的虚拟web主机,提 www.163.com,www.qq.com 网站服务 - 在web 20 机器上构建web服务,实现基于域名的虚拟web主机,提 www.163.com,www.qq.com 网站服务 - 客户端207访问这两个网站,由web1提供 - 客户端208访问这两个网站,由web2提供 - 在DNS服务器 7 上实现分离解析
手写操作步骤: – 配置selinux 与 防火墙 setenforce 0 或 setenforce permissive 置于宽松模式
firewall-cmd --set-default-zone=trusted - 重新定义网卡规则(非必要) nmcli connection show (一般情况下都是ens33,如果是eth0,可跳过这一步) vim /etc/default/grub GRUB_CMDLINE_LINUX 引号内末尾加上 net.ifnames=0 biosdevname=0 保存 同步引导文件 grub2-mkconfig -o /boot/grub2/grub.cfg reboot
– 设置5台服务器的网络参数(主机名,ip地址,子网掩码,网关,DNS服务)
nmcli device status (应该有eth0) nmcli connection show (应该没有eth0 ens33还存在) nmcli connection delete "ens33" nmcli connection add type ethernet ifname eth0 con-name eth0 nmcli connection up 'eth0' nmcli connection show (应该没有ens33 eth0存在) nmcli connection modify 'eth0' ipv4.method manual ipv4.addresses 192.168.4.10/24 ipv4.gateway 192.168.4.255 connection.autoconnection yes nmcli connection up 'eth0' ifconfig 或者 ip address show
- 在web10上 和 在web20上 rpm -q httpd yum -y install httpd touch /etc/httpd/conf.d/zhu.conf vim /etc/httpd/conf.d/zhu.conf
<VirtualHost *:80> ServerName www.163.com; DocumnetRoot /var/www/www163; </VirtualHost> <VirtualHost *:80> ServerName www.qq.com; DocumnetRoot /var/www/wwwqq; </VirtualHost>
mkdir /var/www/www163 /var/www/wwwqq echo 'Hello 163!' > /var/www/www163/index.html echo 'Hello qq!' > /var/www/wwwqq/index.html systemctl restart httpd
-
在DNS服务器 7 上
rpm -q bind yum -y install bind bind-chroot cp /etc/named.conf /etc/named.bak
vim /etc/named.conf
options { directory "/var/named"; }; view "207" { match-clients { 192.168.4.207; }; zone "163.com" IN { type master; file "163.com.zone7"; }; zone "qq.com" IN { type master; file "qq.com.zone7"; }; }; view "208" { match-clients { 192.168.4.208; }; zone "163.com" IN { type master; file "163.com.zone8"; }; zone "qq.com" IN { type master; file "qq.com.zone8"; }; }; view "other" { match-clients { any; }; zone "163.com" IN { type master; file "163.com.zone8"; }; zone "qq.com" IN { type master; file "qq.com.zone8"; }; };
cp -p /var/named/named.localhost /var/named/163.com.zone7 cp -p /var/named/named.localhost /var/named/163.com.zone8 cp -p /var/named/named.localhost /var/named/qq.com.zone7 cp -p /var/named/named.localhost /var/named/qq.com.zone8
vim /var/named/163.com.zone7
163.com. NS a a A 192.168.4.7 www A 192.168.4.10
vim /var/named/163.com.zone8
163.com. NS a a A 192.168.4.7 www A 192.168.4.20
vim /var/named/qq.com.zone7
qq.com. NS a a A 192.168.4.7 www A 192.168.4.10
vim /var/named/qq.com.zone8
qq.com. NS a a A 192.168.4.7 www A 192.168.4.20
systemctl restart named
-
配置客户机dns echo ‘nameserver 192.168.4.7’ > /etc/resolv.conf
-
验证 curl www.163.com curl www.qq.com
评论