centos/ubuntu下DNS服务器的完整搭建

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 为查询特定域名的邮件交换记录
  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nhcjttt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值