centos
安装
yum install -y bind bind-utils(客户端工具包)
正向解析配置
主配置文件
cat /etc/named.conf
#将花括号里的默认内容改为 any
options {
listen-on port 53 { any; }; #监听53端口,服务器上的所有IP均可提供服务
......
allow-query { any; }; #允许使用本dns服务的网段,any代表所有
---------------------------------
#来到文件最后,复制上面根域的配置
zone "abc.com" IN { #不要带上子域名(如:www)
type master; #区域类型修改为master
file "abc.com.zone"; #不写绝对路径,默认在/var/named/下
};
#注意分号;结尾
补充:配置DNS使用192.168.1.20的IP地址,并让DNS能够解析整个互联网。
listen-on port 53 { 192.168.1.20; }; forwarders { 8.8.8.8; }; forward only;
区域数据配置文件(正向解析)
cp -p named.localhost abc.com.zone
#注意:一定要把模板文件的属性也复制上,因为所属组是named
[root@localhost named]# cat named.localhost #模板文件
$TTL 1D
@ IN SOA @ rname.invalid. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
------------------------------------------------
cat /var/named/abc.com.zone #直接在文件最后面添加即可
$TTL 1D
@ IN SOA @ rname.invalid. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www A 192.168.10.100
#注意:www是子域名
A 记录用于将 域名解析为对应的 IPv4 地址,AAAA是 IPv6 记录。
启动服务
systemctl restart named
关于服务启动失败的解决办法:使用语法检查
named-checkconf #检查主配置文件,默认为 /etc/named.conf
named-checkzone abc.com /var/named/abc.com.zone #检查区域数据配置文件
测试
需要在网卡配置文件中补充 DNS 配置(DNS1=x.x.x.x) 或者直接在 /etc/resolve.conf 文件里指定DNS服务器的 IP。
>>> nslookup 域名
[root@liuwei2 named]# nslookup www.abc.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: www1.abc.com
Address: 192.168.10.100
/var/named/ 目录下的文件分析
>>> named.localhost正向解析模板文件,named.loopback反向解析模板文件, named.ca根域,全球共有13台根域服务器
另一种做法:
cat /etc/named.conf #主配置文件
#前面同上
#到文件最后面,不添加zone配置,注意这个配置,意思是引入named.rfc1912.zones文件,以扩展DNS区域的配置。
include "/etc/named.rfc1912.zones";
#如果不想用这个预配置模板文件,可以自己指定一个文件,然后复制模板文件过去即可
cat /etc/named.rfc1912.zones #区域配置文件
zone "abc.com" IN {
type master;
file "abc.com.zone";
allow-update { none; };
};
cat /var/named/abc.com.zone #区域数据配置文件,同上
$TTL 1D
@ IN SOA @ rname.invalid. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
www A 192.168.10.100
反向解析配置
主配置文件
可以同第一种做法,直接在主配置文件里操作;
但是建议同另一种做法来做,因为反解析的配置模板不在主配置文件里,
所以直接在区域配置文件(named.rfc1912.zones)里进行操作会更方便。
区域配置文件
cat /etc/named.rfc1912.zones
zone "10.168.192.in-addr.arpa" IN { #网段(倒着写)
type master;
file "abc.com.zone1";
allow-update { none; };
};
区域数据配置文件
cp -p named.loopback abc.com.zone1
cat /var/named/named.loopback #反解析模板
$TTL 1D
@ IN SOA @ rname.invalid. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost. #PTR为反向指针
-------------------------------------
cat /var/named/abc.com.zone1
$TTL 1D
@ IN SOA @ rname.invalid. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
100 PTR www.abc.com #注意
#100为192.168.10网段的具体IP
PTR 表示 dns类型为 反解析
如果在区域配置文件里写的是 具体 IP,那么该文件就不需要写最后一段的IP,即直接把 100删掉,其它不变。
检验
补充一个邮件解析
......
www A 192.168.100.10
www MX 10 mail.lcm.edu.cn
@ MX 10 mail.lcm.edu.cn
@是指当前域名(配置文件里的)
MX是指邮件交换记录(Mail Exchange)
10是这个 MX 记录的优先级(小的优先)
mail.lcm.edu.cn:是指邮件服务器。
这个记录告诉 DNS 服务器将发往
lcm.edu.cn
域名的邮件流量路由到名为mail.lcm.edu.cn
的邮件服务器上,优先级为 10。如果要为特定的子域名(比如
www
)设置不同的邮件服务器来处理邮件,你需要创建子域名的 MX 记录。即第二条配置。
nslookup
> set type=MX (设置DNS查询类型)[NS为Name Server,A为Address Record,PTR为Pointer,MX为Mail Exchange,AAAA是IPv6]
> lcm.edu.cn (当前域名)
Server: 192.168.100.10
Address: 192.168.100.10#53
lcm.edu.cn mail exchanger = 10 mail.lcm.edu.cn.lcm.edu.cn.
ubuntu
主配置文件
cat /etc/bind/named.conf
include "/etc/bind/named.conf.options"; #全局配置,不用改
include "/etc/bind/named.conf.local"; #区域配置,添加自定义的DNS区域
include "/etc/bind/named.conf.default-zones"; #这个文件定义了一些默认的 DNS 区域,比如根 DNS 服务器。不用管
include 指令: 引入了其他配置文件。
cat /etc/bind/named.conf.local
//include "/etc/bind/zones.rfc1918";
#这个文件又引入了zones.rfc1918文件,所以可以直接到zones.rfc1918文件里添加自定义的DNS区域配置,正反解的模板都有
#注意:得先取消注释,把 "//" 删除
区域配置
vim /etc/bind/zones.rfc1918
#正解
zone "abc.com" { type master; file "/etc/bind/zones/abc.com.zone"; };
#反解
zone "20.1.1.10.in-adddr.arpa" { type master; file "/etc/bind/zones/abc.com.zones"; };
db.local 是 正解模板,db.empty 是反解模板
区域数据配置文件
mkdir /etc/bind/zones
cp -p /etc/bind/db.local /etc/bind/zones/abc.com.zone
cp -p /etc/bind/db.empty /etc/bind/zones/abc.com.zones
-------------------------------------
cat /etc/bind/zones/abc.com.zone
......
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
www IN A 10.1.1.20
--------------------------------------
cat /etc/bind/zones/abc.com.zones
......
@ IN NS localhost.
IN PTR www.abc.com #注意PTR
#因为在区域配置写了完整的IP,所以这里不用写
cp -a:递归复制并保持文件属性
cp -p:保持文件属性
乱码解决
按 F12,然后把乱码删除,粘贴上原本的内容;
或者
#ubuntu
/etc/apache2/conf-available/charset.conf
AddDefaultCharset UTF-8 #取消注释
最简做法(必看/速成)
看完以上的内容后,接下来分享一个更简便的做法。
/etc/named.conf
#将正反解析配置在同一个文件内
zone "lcm.edu.cn" IN {
type master;
file "1.zone";
};
zone "10.100.168.192.in-addr.arpa" IN {
type master;
file "1.zone";
/var/named/1.zone
www A 192.168.100.10
@ MX 10 mail.con.cn
PTR www.lcm.edu.cn
www MX 10 mail.con.cn
@ 代表当前域名即 lcm.edu.cn
DNS 查询类型:
- A 为正向解析,域名解析为对应的 IPv4 地址
- PTR 为反向解析, IP 地址解析为对应的域名
- MX 为查询特定域名的邮件交换记录