缓存DNS、Split分离解析、电子邮件通信、Web服务器项目实战

缓存DNS

缓存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

评论