1、DNS软件 bind
DNS服务器软件:bind,powerdns,dnsmasq,unbound,coredns
1.1、BIND(Berkeley Internet Name Domain)相关程序包
- bind:服务器
- bind-utils: 客户端
- bind-libs:相关库,依赖关系自动安装
- bind-chroot: 安全包,将dns相关文件放至 /var/named/chroot/
# 安装bind软件
[root@centos79-base01 ~]# yum install -y bind bind-utils
1.2、BIND包相关文件
- BIND主程序:/usr/sbin/named
- 服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service
- 主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
- 管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp
- 解析库文件:/var/named/ZONE_NAME.ZONE
- 注意:
- 一台物理服务器可同时为多个区域提供解析
- 必须要有根区域文件;named.ca
- 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库
1.3、主配置文件
- 全局配置:options {};
- 日志子系统配置:logging {};
- 区域定义:本机能够为哪些zone进行解析,就要定义哪些zone
- zone “ZONE_NAME” IN {};
- 注意:
- 任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上
- 缓存名称服务器的配置:监听外部地址即可
- dnssec: 建议关闭dnssec,设为no
2、部署正向主DNS服务器
2.1、实现目的
搭建DNS正向主服务器,实现web服务器基于FQDN的访问
2.2、部署环境
DNS服务端:192.168.1.12
DNS客户端:192.168.1.11
web服务器:192.168.1.10
2.3、配置准备
关闭SELinux
关闭防火墙
时间同步
2.4、部署DNS服务器
# 服务端配置
# 在DNS服务端安装bind
[root@dnsserver ~]# yum install -y bind bind-utils
# 修改bind 配置文件
[root@dnsserver ~]# vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
[root@dnsserver ~]# vim /etc/named.rfc1912.zones
#加上下面内容
zone "test.com" IN {
type master;
file "test.com.zone";
};
[root@dnsserver ~]# cp -p /var/named/named.localhost /var/named/test.com.zone
[root@dnsserver ~]# vim /var/named/test.com.zone
$TTL 1D
@ IN SOA master admin.test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 127.0.0.1
www A 192.168.1.10
# 检查配置文件和数据库文件格式
[root@dnsserver ~]# named-checkconf
[root@dnsserver ~]# named-checkzone test.com /var/named/test.com.zone
zone test.com/IN: loaded serial 0
OK
# 第一次启动服务并设置开机自启
[root@dnsserver ~]# systemctl enable --now named.service
# 非第一次启动服务
[root@dnsserver ~]# rndc reload
server reload successful
# 客户端配置
# 修改DNS
[root@client01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1="192.168.1.12"
[root@client01 ~]# systemctl restart network
[root@client01 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.12
# 测试DNS是否成功解析
[root@client01 ~]# curl http://192.168.1.10/index.html
hello
[root@client01 ~]# curl http://www.test.com/index.html
hello
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END