0 环境介绍
实验主机
主机名 | 解析名称 | 对应IP |
---|---|---|
ns1.lvah.com | A | 172.25.45.1 |
mail.lvah.com | MX | 172.25.45.2 |
www.lvah.com | A | 172.25.45.3 |
www.lvah.com | A | 172.25.45.4 |
ftp.lvah.com | CNAME | 172.25.45.4 |
主机版本
[root@host1 ~]# lsb_release
LSB Version: :core-4.1-amd64:core-4.1-noarch
[root@host1 ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 7.0 (Maipo)
Release: 7.0
Codename: Maipo
配置yum源
- 使用网络yum源
- 本地搭建yum源,参考另外的文档搭建
设置selinux
临时关闭
[root@host1 ~]# setenforce 0
设置成功显示如下
[root@host1 ~]# getenforce
Permissive永久关闭(重启生效)
[root@host1 ~]# vim /etc/sysconfig/selinux
7 SELINUX=disabled
1 缓存DNS服务器的搭建
1.1 bind软件的认识
DNS:
-BIND软件-Berkeley Internet Name Domain
-现由ISC(Internet Systems Consortium)组织维护
1.2 bind软件的安装
[root@host1 ~]# yum list all | grep "^bind"
bind-libs-lite.x86_64 32:9.9.4-14.el7 @anaconda/7.0
bind-license.noarch 32:9.9.4-14.el7 @anaconda/7.0
bind.x86_64 32:9.9.4-14.el7 yumrepo
#默认bind工作在真正的/目录下,但不安全,将named进程运行在假的根目录下。
bind-chroot.x86_64 32:9.9.4-14.el7 yumrepo
bind-dyndb-ldap.x86_64 3.5-4.el7 yumrepo
bind-libs.i686 32:9.9.4-14.el7 yumrepo
bind-libs.x86_64 32:9.9.4-14.el7 yumrepo
bind-libs-lite.i686 32:9.9.4-14.el7 yumrepo
bind-utils.x86_64 32:9.9.4-14.el7 yumrepo
[root@host1 ~]# yum install bind -y
1.3 bind软件生成文件的理解
[root@host1 ~]# rpm -ql bind
**此处只列出部分重要的文件**
/etc/NetworkManager/dispatcher.d/13-named
/etc/logrotate.d/named
/etc/named
/etc/named.conf //**bind进程的工作属性,及对区域的定义**
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf //**rndc的配置信息**
/etc/rndc.key //**rndc:remote domain controller**,实现rndc命令可以远程工作的密钥文件
/etc/sysconfig/named
/etc/rwtab.d/named
/etc/sysconfig/named //**named服务的主配置文件**
/usr/lib/systemd/system/named.service //**named服务的启动脚本**
/usr/sbin/dnssec-keygen
/usr/sbin/named //**named进程的主程序**
/usr/sbin/named-checkconf //**检查named的配置文件是否有语法错误**
/usr/sbin/named-checkzone //**检查named的区域文件是否有语法错误**
/usr/sbin/named-compilezone //**检查named的区域文件编译成其他文件格式的**
/usr/sbin/named-journalprint
/usr/sbin/nsec3hash
/usr/sbin/rndc
/usr/sbin/rndc-confgen //**用于生成/etc/rndc.conf配置文件的**
/usr/share/doc/... //**文档**
/usr/share/man/... //**文档**
/var/log/named.log //**named服务日志文件**
**区域数据文件**默认存在于:/var/named
/var/named
/var/named/data
/var/named/dynamic
/var/named/named.ca //**13个dns服务器的地址**
/var/named/named.empty
/var/named/named.localhost //**本地主机名的正向解析-回环地址**
/var/named/named.loopback //**本地主机名的反向解析**
/var/named/slaves
注意: 如果本地没有13个dns服务器的地址,用下面的命令可以查找:
[root@host1 ~]# dig -t NS .
[root@host1 ~]# dig -t NS . @a.root-servers.net
1.4 named服务监听的协议及端口
53/udp
53/tcp
953/tcp,rndc(remote domain domain controller)
**netstat命令查看named进程监听的端口**
[root@host1 ~]# netstat -antlpe | grep named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 25 240312 2478/named
tcp 0 0 172.25.45.1:53 0.0.0.0:* LISTEN 25 240309 2478/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 25 240307 2478/named
tcp6 0 0 ::1:953 :::* LISTEN 25 240313 2478/named
socket(套接字):IP:PORT,通过该机制让两台主机上的进程相互通信;
1.5 配置/etc/named.conf文件
[root@host1 ~]# vim /etc/named.conf
//**全局段的定义**
1 options{
2 directory "/var/named";
3 };
4
//**根区域的定义**
5 zone "." IN {
6 type hint; //区域类型有master|slave|hint|forward
7 file "named.ca";
8 };
//**主区域正向解析的定义**
9 zone "localhost" IN {
10 type master;
11 file "named.localhost";
12
13 };
14
//**主区域反向解析的定义**
15 zone "0.0.127.in-addr.arpa" IN {
16 type master;
17 file "named.loopback";
1.6 配置文件语法检测
[root@host1 ~]# named-checkconf
[root@host1 ~]# named-checkzone "localhost" /var/named/named.localhost
zone localhost/IN: loaded serial 0
OK
[root@host1 ~]# named-checkzone "0.0.127.in-addr.arpa" /var/named/named.loopback
zone 0.0.127.in-addr.arpa/IN: loaded serial 0
OK
1.7 启动DNS服务并设置开机自启
[root@host1 ~]# systemctl start named
[root@host1 ~]# systemctl enable named
ln -s '/usr/lib/systemd/system/named.service' '/etc/systemd/system/multi-user.target.wants/named.service'
1.8 验证缓存DNS服务器是否成功
- 修改dns为本机ip
[root@host1 ~]# vim /etc/resolv.conf
1 nameserver 172.25.45.1
- dig命令检测
[root@host1 ~]# dig www.westos.com
注意:在连接网络的情况下,如果可以解析成功,则表明高速缓存服务器搭建成功