一、环境的准备
1.将虚拟机A与虚拟机B两台虚拟机还原快照,开机利用root进行登录
昨日习题:
案例1:为虚拟机A 配置以下虚拟Web主机
- 实现三个网站的部署
- 实现客户端访问server0.example.com网页内容为 大圣归来
- 实现客户端访问www0.example.com网页内容为 大圣又归来
- 实现客户端访问webapp0.example.com网页内容为 大圣累了
虚拟机A:
[root@A ~]# firewall-cmd --set-default-zone=trusted
[root@A ~]# setenforce 0
[root@A ~]# yum -y install httpd
[root@A ~]# mkdir /var/www/nsd01
[root@A ~]# mkdir /var/www/nsd02
[root@A ~]# mkdir /var/www/nsd03
[root@A ~]# echo ‘大圣归来’ > /var/www/nsd01/index.html
[root@A ~]# echo ‘大圣又归来’ > /var/www/nsd02/index.html
[root@A ~]# echo ‘大圣累了’ > /var/www/nsd03/index.html
[root@A ~]# vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot /var/www/nsd01
<VirtualHost *:80>
ServerName www0.example.com
DocumentRoot /var/www/nsd02
<VirtualHost *:80>
ServerName webapp0.example.com
DocumentRoot /var/www/nsd03
[root@A ~]# systemctl restart httpd
虚拟机B:测试
[root@B ~]# vim /etc/hosts
192.168.4.7 server0.example.com www0.example.com webapp0.example.com
[root@B ~]# curl server0.example.com
[root@B ~]# curl www0.example.com
[root@B ~]# curl webapp0.example.com
案例2:为虚拟机A 配置Web访问控制
在 Web 网站 http://server0.example.com 的 DocumentRoot 目录下创建一个名为 private 的子目录,要求如下:
1)在server0.example.com的DocumentRoot目录下,private的子目录里书写网页文件index.html内容为 大圣偷偷归来
2)此页面只能在本机浏览,但是从其他系统不能访问这个目录的内容
虚拟机A:
[root@A ~]# mkdir /var/www/nsd01/private
[root@A ~]# echo ‘大圣偷偷归来’ > /var/www/nsd01/private/index.html
[root@A ~]# vim /etc/httpd/conf.d/myacl.conf
<Directory /var/www/nsd01/private>
Require ip 192.168.4.7
[root@A ~]# systemctl restart httpd
[root@A ~]# vim /etc/hosts
192.168.4.7 server0.example.com
[root@A ~]# curl server0.example.com/private/ #以/结尾
大圣偷偷归来
虚拟机B:
[root@B ~]# curl server0.example.com/private/ #以/结尾
Forbidden
You don't have permission to access /private/ on this server.
[root@B ~]#案例3:为虚拟机A 使用自定Web根目录
调整 Web 站点 http://www0.example.com 的网页目录,要求如下:
1)新建目录 /webroot,作为此站点新的网页目录
2)确保站点 http://www0.example.com 仍然可访问
虚拟机A:
[root@A ~]# vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot /var/www/nsd01
<VirtualHost *:80>
ServerName www0.example.com
DocumentRoot /webroot
<VirtualHost *:80>
ServerName webapp0.example.com
DocumentRoot /var/www/nsd03
[root@A ~]# mkdir /webroot
[root@A ~]# echo ‘wo shi webroot’ > /webroot/index.html
[root@A ~]# vim /etc/httpd/conf.d/myacl.conf
<Directory /var/www/nsd01/private>
Require ip 192.168.4.7
<Directory /webroot>
Require all granted
[root@A ~]# systemctl restart httpd
虚拟机B:
[root@B ~]# curl www0.example.com
wo shi webroot
[root@B ~]#
案例4:为虚拟机A 部署站点
为站点 webapp0.example.com 进行配置,要求如下:
1)此虚拟主机侦听在端口8909
2)从浏览器访问 http://webapp0.example.com:8909
虚拟机A:
[root@A ~]# vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot /var/www/nsd01
<VirtualHost *:80>
ServerName www0.example.com
DocumentRoot /webroot
Listen 8909
<VirtualHost *:8909>
ServerName webapp0.example.com
DocumentRoot /var/www/nsd03
[root@A ~]# systemctl restart httpd
虚拟机B:
[root@B ~]# curl webapp0.example.com:8909
大圣累了
案例5:普通NFS共享的实现
1.在虚拟机A上配置NFS服务,只读的方式共享目录 /public
2.在虚拟机B上访问NFS共享目录
a)将虚拟机A 的 /public 挂到本地 /mnt/nfsmount
b)这些文件系统在系统启动时自动挂载
虚拟机A:
[root@A ~]# yum -y install nfs-utils
[root@A ~]# mkdir /public
[root@A ~]# touch /public/1.txt
[root@A ~]# ls /public/
[root@A ~]# vim /etc/exports
/public *(ro)
[root@A ~]# systemctl restart rpcbind #先重启
[root@A ~]# systemctl restart nfs-server #后重启
虚拟机B:
[root@B ~]# mkdir /mnt/nfsmount
[root@B ~]# vim /etc/fstab
192.168.4.7:/public /mnt/nfsmount nfs defaults,_netdev 0 0
[root@B ~]# mount -a
[root@B ~]# df -h | tail -1
192.168.4.7:/public 17G 3.5G 14G 21% /mnt/nfsmount
[root@B ~]#
###################################################################################
二 、环境准备
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:操作同上
###################################################################################
三 、构建NFS服务
案例:普通NFS共享的实现
1.在虚拟机A上配置NFS服务,只读的方式共享目录 /public
2.在虚拟机B上访问NFS共享目录
a)将虚拟机A 的 /public 挂到本地 /mnt/nfsmount
b)这些文件系统在系统启动时自动挂载
虚拟机A:
1.创建共享目录
[root@A ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.54.el7.x86_64
[root@A ~]# yum -y install nfs-utils
[root@A ~]# mkdir /public
[root@A ~]# touch /public/1.txt
[root@A ~]# ls /public/
2.书写配置文件
[root@A ~]# vim /etc/exports
/public *(ro)
3.重启服务
[root@A ~]# systemctl restart rpcbind
[root@A ~]# systemctl restart nfs-server
虚拟机B:
[root@B ~]# mkdir /mnt/nfsmount
[root@B ~]# vim /etc/fstab
192.168.4.7:/public /mnt/nfsmount nfs defaults,_netdev 0 0
[root@B ~]# mount -a
[root@B ~]# df -h | tail -1
###################################################################################
四 、专为客户端挂载设计,触发挂载
•由 autofs 服务提供的“按需访问”机制
–只要访问挂载点,就会触发响应,自动挂载指定设备
–闲置超过时限(默认5分钟)后,会自动卸载
虚拟机B
1.安装软件包
[root@B ~]# yum -y install autofs
2.重启服务
[root@B ~]# systemctl restart autofs #重启服务
[root@B ~]# systemctl enable autofs #设置开启自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/autofs.service to /usr/lib/systemd/system/autofs.service.
[root@B ~]# systemctl status autofs #查看服务的状态
•主配置文件 /etc/auto.master
–监控点目录 挂载配置文件的路径
•挂载配置文件,比如 /etc/auto.misc
–触发点子目录 -挂载参数 :设备名
虚拟机B:实现在/nsd2002目录,触发挂载/dev/cdrom设备,触发挂载到/nsd2002/test
1.修改主配置文件
[root@B ~]# yum -y install autofs
[root@B ~]# mkdir /nsd2002
[root@B ~]# vim /etc/auto.master #添加配置
/nsd2002 /opt/dc.txt
监控点目录 挂载配置文件的路径
2.建立挂载配置文件
[root@B ~]# cp /etc/auto.misc /opt/dc.txt
[root@B ~]# vim /opt/dc.txt #只保留一行
test -fstype=iso9660 :/dev/cdrom
触发点子目录 -挂载参数 :设备名
3.重启服务
[root@B ~]# systemctl restart autofs
[root@B ~]# ls /nsd2002/test
[root@B ~]# df -ah
autofs和NFS进阶
案例:普通NFS共享的实现
1.在虚拟机A上配置NFS服务,只读的方式共享目录 /public
2.在虚拟机B上,以触发式挂载虚拟机A的共享目录 /public,监控目录为/myauto,挂载点为/myauto/nfs
虚拟机A:
1.创建共享目录
[root@A ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.54.el7.x86_64
[root@A ~]# yum -y install nfs-utils
[root@A ~]# mkdir /public
[root@A ~]# touch /public/1.txt
[root@A ~]# ls /public/
2.书写配置文件
[root@A ~]# vim /etc/exports
/public *(ro)
3.重启服务
[root@A ~]# systemctl restart rpcbind
[root@A ~]# systemctl restart nfs-server
虚拟机B:
[root@B ~]# mkdir /myauto
[root@B ~]# vim /etc/auto.master #添加配置
/myauto /etc/nsd.conf
[root@B ~]# cp /etc/auto.misc /etc/nsd.conf
[root@B ~]# vim /etc/nsd.conf #只保留一行内容
nfs -fstype=nfs 192.168.4.7:/public
[root@B ~]# systemctl restart autofs
[root@B ~]# ls /myauto/
[root@B ~]# ls /myauto/nfs
1.txt
[root@B ~]# df -ah
###################################################################################
五、DNS域名解析系统:将域名解析为对应IP地址
•为什么需要DNS系统
–www.baidu.com 与 119.75.217.56,哪个更好记?
–互联网中的114查号台/导航员
•DNS服务器的功能
–正向解析:根据注册的域名查找其对应的IP地址
–反向解析:根据IP地址查找对应的注册域名,不常用
DNS服务器的分类:
一级DNS服务器、二级DNS服务器、三级DNS服务器、根域名DNS服务器
域名体系结构:树型结构
完整合格域名:最后都要以点作为结尾
www.qq.com.
根域名
•Full Qualified Domain Name(FQDN),完全合格主机名
– 站点名.域名后缀
– 站点名. … … .二级域.一级域
•常见的顶级/一级域名
–国家/地区域:.cn、.us、.kr、.hk、.tw、… …
–组织域:.com、.net、.edu、.org、.gov、.mil、… …
•BIND服务器端程序
–主要执行程序:/usr/sbin/named----》systemd----》systemctl
–系统服务:named
–默认端口:DNS协议 53
–运行时的虚拟根环境:/var/named/chroot/
•主配置文件:/etc/named.conf #设置DNS服务器负责解析的域名 tedu.cn
•地址库文件:/var/named/ #完整主机名与IP地址对应关系 www.tedu.cn —>1.1.1.1
虚拟机A:
1.安装软件包
[root@A~]# yum -y install bind-chroot bind
[root@A~]# rpm -qa bind*
bind-9.9.4-29.el7.x86_64 //域名服务包
bind-chroot-9.9.4-29.el7.x86_64 //提供虚拟根支持,牢笼政策
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.建立地址库文件
注意事项:
1)保证named用户对于地址库文件有读取权限
2)所有的域名都必须以点作为结尾,如果不以点作为结尾,则默认补全本地址库文件负责的域名
[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 named]# ls -l named.localhost
[root@A /]# vim /var/named/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 ~]# 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 /]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@A /]# nslookup www.tedu.cn
###################################################################################
六、多区域的DNS服务器
虚拟机A:
1.修改主配置文件
[root@A /]# vim /etc/named.conf
options {
directory “/var/named”;
};
zone “tedu.cn” IN {
type master;
file “tedu.cn.zone”;
};
zone “360.com” IN {
type master;
file “360.com.zone”;
};
2.建立地址库文件
[root@A /]# cd /var/named/
[root@A named]# cp -p named.localhost 360.com.zone
[root@A named]# vim 360.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
360.com. NS a
a A 192.168.4.7
www A 3.3.3.3
[root@A named]# systemctl restart named
虚拟机B:
[root@B ~]# nslookup www.360.com
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: www.360.com
Address: 3.3.3.3
###################################################################################
七、DNS的特殊的解析记录
1.DNS的轮询
•基于DNS的站点负载均衡
–一个域名 —> 多个不同IP地址
–每个IP提供镜像服务内容
[root@A /]# vim /var/named/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
www A 192.168.4.150
www A 192.168.4.200
ftp A 2.2.2.2
[root@A /]# systemctl restart named
2.DNS的泛域名解析
虚拟机A:
[root@A /]# vim /var/named/tedu.cn.zone
tedu.cn. NS a
a A 192.168.4.7
www A 192.168.4.11
www A 192.168.4.12
www A 192.168.4.13
ftp A 2.2.2.2
-
A 1.2.3.4
[root@A /]# systemctl restart named
虚拟机B:
[root@B ~]# nslookup wwwww.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
Name: wwwww.tedu.cn
Address: 1.2.3.4
[root@B ~]#
3.解析记录的别名
虚拟机A:
[root@A /]# vim /var/named/tedu.cn.zone
tedu.cn. NS a
a A 192.168.4.7
www A 192.168.4.11
www A 192.168.4.12
www A 192.168.4.13
ftp A 2.2.2.2
-
A 1.2.3.4
tts CNAME ftp #tts的解析结果与ftp的解析结果一致
[root@A /]# systemctl restart named
虚拟机B:
[root@B ~]# nslookup tts.tedu.cn
Server: 192.168.4.7
Address: 192.168.4.7#53
tts.tedu.cn canonical name = ftp.tedu.cn.
Name: ftp.tedu.cn
Address: 2.2.2.2
总结:DNS服务器资源解析记录的类型都有哪些?
NS解析记录:声明DNS服务器的解析记录
A解析记录:正向解析记录
CNAME:解析记录的别名