DNS(Centos)
配置 DNS
一、简介
把域名翻译成IP地址的软件称为域名系统,即 DNS
默认端口号:53
默认配置文件路径:
主要配置文件(定义 bind 服务程序的运行): /etc/named.conf
区域配置文件(保存域名和IP地址对应关系的所在位置): /etc/named.rfc1912.zones
数据文件目录: /var/named
DNS域名解析的配置文件(系统自带): /etc/resolv.conf
# resolv.conf 参数详解
nameserver # 定义 DNS 服务器的 IP 地址(查询时按照 namserver 在文件中的顺序进行)
domain # 定义本地域名
search # 定义域名的搜索列表(当查询的域名没找到时,则从该参数声明的域中按前后顺序查找)
sortlist # 对返回的域名进行排序
二、实例
环境:
centos 7,IP:10.1.82.232
1、安装相关包
# 安装 dns 相关包(bind:DNS 服务程序,bind-utils:提供 DNS 工具包(域名解析和DNS调试))
yum -y install bind bind-utils
2、编辑主要配置文件
vim /etc/named.conf # 编辑 named.conf
将 listen-on port 53 { 127.0.0.1; }; 跟 allow-query { localhost; };
改为 listen-on port 53 { any; }; 和 allow-query { any; }; 即可
named.conf 配置文件详解
# named.conf 配置文件详解
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
options {
listen-on port 53 { any; }; # 允许所有 IP 监听本机 53 端口(即所有用户能与本机的 DNS 进行通信)
listen-on-v6 port 53 { ::1; }; # IPV6 监听地址
directory "/var/named"; # 服务器的工作目录
dump-file "/var/named/data/cache_dump.db"; # 当执行 rndc dumpdb 时服务器 dump 文件的路径
statistics-file "/var/named/data/named_stats.txt"; # 当服务器接收到 rndc stats 命令时,追加统计数据的文件路径
memstatistics-file "/var/named/data/named_mem_stats.txt"; # 当退出服务器时,会将服务器的统计信息写道文件中
allow-query { any; }; # 允许所有 IP 进行 DNS 查询
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes; # 允许进行递归搜索
dnssec-enable yes; # 开启 DNSSEC 开关
dnssec-validation yes; # 开启 DNSSEC 确认开关
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key"; # 加密用的 key
managed-keys-directory "/var/named/dynamic"; # 管理密钥的路径
pid-file "/run/named/named.pid"; # 服务器记录进程 ID 的文件路径
session-keyfile "/run/named/session.key"; # 会话密钥文件
};
logging { # 定义 bing 服务的日志
channel default_debug { # 日志输出方式
file "data/named.run"; # 输出到指定文件
severity dynamic; # 按照服务器当前的 debug 级别记录日志
};
};
zone "." IN { # 定义域区(一个 zone 关键字定义一个域区)
type hint; # 定义类型(master:主域名服务器,slave:辅助域名服务器,hint:互联网中根域名服务器)
file "named.ca"; # 指定存放 DNS 记录文件的文件名(默认路径在 /var/named 下)
};
# 包含区域配置文件,用于设置正反向区域(也可在当前文件中配置正反向区域)
include "/etc/named.rfc1912.zones"; # 如果把该行注释则 named.rfc1912.zones 文件内的配置无效
include "/etc/named.root.key"; # 根区域的 key 文件(与事务签名相关)
3、编辑区域配置文件
vim /etc/named.rfc1912.zones # 编辑区域文件
在文件末尾添加正反向区域
zone "test.com" IN { # 定义正向域区(一个 zone 关键字定义一个域区)
type master; # 定义类型(master:主域名服务器,slave:辅助域名服务器,hint:互联网中根域名服务器)
file "test.com.zone"; # 指定存放正向区域记录文件的文件名(默认路径在 /var/named 下)
allow-update { none; }; # 设置允许从何处动态更新 DNS记录 的客户端地址(做主从服务器时需用到,做主从时需把从处的 none 更改为主服务器的地址)
};
# 注:此处 IP 需反过来输入,IP 最后一位不需要(如:10.1.82.232,即:82.1.10)
zone "82.1.10.in-addr.arpa" IN { # 定义反向域区(一个 zone 关键字定义一个域区)
type master; # 定义类型(master:主域名服务器,slave:辅助域名服务器,hint:互联网中根域名服务器)
file "10.1.82.zone"; # 指定存放正向区域记录文件的文件名(默认路径在 /var/named 下)
allow-update { none; }; # 设置允许从何处动态更新 DNS记录 的客户端地址(做主从服务器时需用到,做主从时需把从处的 none 更改为主服务器的地址)
};
4、配置正向区域
# 复制 named.localhost 文件及其属性并改名为 test.com.zone 放置在原位置
cp -p /var/named/named.localhost /var/named/test.com.zone
# 配置正向区域文件
$TTL 1D
@ IN SOA @ test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
# 必须有一行不加前缀的(如没有不加前缀的这一行,则会报错)
A 10.1.82.232 # 域名指向的 IP
www A 10.1.82.232 # 域名前缀跟指向的 IP
AAAA ::1
5、配置反向区域
# 复制 named.loopback 文件及其属性并改名为 10.1.82.zone 放置在原位置
cp -p /var/named/named.loopback /var/named/10.1.82.zone
# 配置反向区域文件
$TTL 1D
@ IN SOA @ test.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
# 必须有一行不加前缀的(如没有不加前缀的这一行,则会报错)
A 10.1.82.232 # 域名指向的 IP
www A 10.1.82.232 # 域名前缀跟指向的 IP
AAAA ::1
232 PTR www.test.com. # 完整的域名跟对应的 IP 后缀(域名后面的点必须有)
6、设置 DNS 解析
vim /etc/resolv.conf # 编辑 DNS 域名解析配置文件
nameserver 10.1.82.232 # 在 resolv.conf 文件末尾添加该行
systemctl restart named 配置完后需使用该命令重启服务
配置完后使用 nslookup dig 等工具进行测试即可
配置主从 DNS
一、简介
环境:
centos 7(主),IP:10.1.82.232
centos 7(从),IP:10.1.82.235
二、实例
主服务器的配置文件照上正常配置即可
从服务器只需在区域配置文件末尾中添加如下配置即可
zone "test.com" IN { # 定义正向域区(一个 zone 关键字定义一个域区)
type slave; # 定义类型(master:主域名服务器,slave:辅助域名服务器,hint:互联网中根域名服务器)
masters { 10.1.82.232; }; # 设置主服务器的 IP
file "slaves/test.com.zone"; # 设置主服务器正向区域的文件名
allow-update { 10.1.82.232; }; # 设置主服务器的 IP(即允许从该地址获取动态更新 DNS 记录)
};
zone "82.1.10.in-addr.arpa" IN { # 定义反向域区(一个 zone 关键字定义一个域区)
type slave; # 定义类型(master:主域名服务器,slave:辅助域名服务器,hint:互联网中根域名服务器)
masters { 10.1.82.232; }; # 设置主服务器的 IP
file "slaves/10.1.82.zone"; # 设置主服务器反向区域的文件名
allow-update { 10.1.82.232; }; # 设置主服务器的 IP(即允许从该地址获取动态更新 DNS 记录)
};
systemctl restart named 配置完后需使用该命令重启服务
配置完后使用 nslookup dig 等工具进行测试即可

浙公网安备 33010602011771号