如何使用主机名完成BIND9 DNS服务器配置?

我需要有关如何生成此类服务器配置的完整分步指南。

谁能帮我?

在ubuntu服务器12中完成DNS服务器。

首先将服务器的IP地址从DHCP更改为STATIC,以便使用以下命令

sudo nano /etc/network/interfaces 

并添加:

 auto eth0 iface eth0 inet static address 192.168.1.5 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1 # dns-nameservers 

重新启动网络守护进程

 sudo /etc/init.d/networking restart 

在Linux Ubuntu中配置DNS服务器之前,您必须先创建域名,然后才能继续。 首先,您将检查您的hostname命令

 sudo nano /etc/hostname nefitari 

(这是我的Ubuntu服务器主机名你的可能会有所不同。你可以根据需要改变它)

现在在主机名之后,您必须为您的服务器创建域名。 比如servername.domain.com更好的做法是,每当你配置服务器供家庭使用时,不要使用.com但.hom或.net或任何你喜欢的。 给出以下命令

  sudo nano /etc/hosts 

如果它没有它添加:

  127.0.0.1 localhost 192.168.1.5 nefitari.autun.hom nefitari 

在我的文件中127.0.0.1是针对localhost的,我已经更改了第二个IP地址127.0.1.1,我的服务器IP是192.168.1.5现在我输入我的域名,首先是我的主机名nefitari然后是我的域名autun.hom然后是别名nefitari 。 您可以选择自己的,hostname.abc.net或hostname.home.lan等,但请记住更改为此文件需要重新启动服务器然后登录。 必须重启

现在安装BIND9

  sudo apt-get install bind9 

安装后,只需逐步配置以下文件

  • Named.conf.options
  • Named.conf.local
  • 在/etc/resolv.conf

现在配置文件named.conf.options此文件用于DNS IP这意味着您的服务器必须连接到外部的某些DNS。 当您从ISP购买域名时,他们通常会为您提供自己的DNS IP。 您可以使用谷歌左右的开放DNS IP。 在我的情况下,我使用自己的ISP DNS IP。

  sudo nano /etc/bind/named.conf.options forwarders { # Give here your ISP DNS IP's 192.168.1.1; # gateway or router 182.176.39.23; 182.176.18.13; 68.87.76.178; }; 

***保存文件并使用控制x退出***按y并覆盖该文件

现在编辑named.conf.local文件这是我们定义前向区域和反向区域的文件。 这意味着当我们输入域名时,它会将其转换为IP地址,当我们输入IP地址时,它只会将其转换为名称。

 sudo nano /etc/bind/named.conf.local 

将会呈现:

 # Our forward zone zone "autun.hom" { type master; file "/etc/bind/zones/db.autun.hom"; }; # Our reverse Zone # Server IP 192.168.1.5 zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/zones/db.192"; }; 

***保存文件并使用控制x退出***按y并覆盖该文件

现在我们将在zones文件夹中创建这两个数据库文件db.autun.homdb.192

首先在/ etc / bind /中创建目录区域

  sudo mkdir /etc/bind/zones 

在制作文件之前,请告诉我我有不同的设备

设备IP

  • 服务器本身 192.168.1.5
  • 网关 192.168.1.1
  • Win7pc 192.168.1.50

现在在zones目录中,我们将首先创建两个文件db.autun.hom 。 我只是将已经存在于/ etc / bind文件夹中的db.local复制到zone文件夹,方法是将其名称更改为db.autun.hom 。 我将这些IP放在我的db.autun.hom文件中。 开始吧

 sudo cp /etc/bind/db.local /etc/bind/zones/db.autun.hom 

现在使用以下命令编辑文件

 sudo nano /etc/bind/zones/db.autun.hom ; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA nefitari.autun.hom. webuser.autun.hom. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; autun.hom. IN NS nefitari.autun.hom. autun.hom. IN A 192.168.1.5 ;@ IN A 127.0.0.1 ;@ IN AAAA ::1 nefitari IN A 192.168.1.5 gateway IN A 192.168.1.1 win7pc IN A 192.168.1.50 www IN CNAME autun.hom. 

保存并退出

  • Webuser.autun.hom。 是将访问名称服务器的电子邮件。 您可以编写任何名称而不是webuser,如admin,root或host master等。
  • Autun.hom。 是我的NS意味着名称服务器
  • Autun.hom 。改为IP 192.168.1.5
  • @ IN A 127.0.0.1和AAAA :: 1可以注释掉你不应该需要它因为db.local已经存在于/ etc / bind中它只是该文件的副本。 所以不需要你可以删除它
  • Nefitari更改为IP 192.168.1.5
  • IP 192.168.1.1的网关
  • Win7pc您可以将您的Windows PC或Linux客户端命名为任何名称,但请记住该客户端的IP必须正确插入文件中。 在我的情况下,我给了Windows PC 192.168.1.50的IP
  • 最后,我使用CNAME表示规范名称它只是nefitari的别名。 意味着您可以通过输入www.autun.hom而不是nefitari.autun.hom来访问您的服务器。 您可以省略或评论它。 这取决于你。

现在创建反向查找区域文件

 sudo cp /etc/bind/db.127 /etc/bind/zones/db.192 

现在使用以下命令编辑文件

 sudo nano /etc/bind/zones/db.192 ; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA nefitari.autun.hom. webuser.autun.hom. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; IN NS nefitari. 1 IN PTR gateway.autun.hom. 5 IN PTR nefitari.autun.hom. 50 IN PTR win7pc.autun.hom. 

保存并退出

现在,当您完成区域文件后,您必须通过输入以下命令检查前面区域文件是否正常工作

 named-checkzone autun.hom /etc/bind/zones/db.autun.hom zone autun.hom /IN: loaded serial 2 Ok 

现在检查反向区域文件

 named-checkzone autun.hom /etc/bind/zones/db.192 zone autun.hom /IN: loaded serial 2 Ok 

如果你的named-checkzone的输出与上面相同,那么它工作正常,否则你在文件中犯了一些错误。

现在编辑resolv.conf文件

 sudo nano /etc/resolv.conf nameserver 192.168.1.5 domain autun.hom search autun.hom 

在resolv.conf文件中输入以下行并保存

重新启动绑定

 sudo /etc/init.d/bind9 restart 

绑定开始后,检查日志文件中的设置

 tail -f /var/log/syslog 

它必须在日志中没有任何错误

检查前进区域

 host –l autun.hom 

输出应该是这样的

  autun.hom name server nefitari.autun.hom. autun.hom has address 192.168.1.5 gateway.autun.hom has address 192.168.1.1 nefitari.autun.hom has address 192.168.1.5 win7pc.autun.hom has address 192.168.1.50 

现在使用NSLOOKUP

 nslookup autun.hom 

OUTPUT

 Server: 192.168.1.5 Address: 192.168.1.5#53 Name: autun.hom Address: 192.168.1.5 

使用DIG

  dig gateway.autun.hom ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35612 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;gateway.autun.hom IN A ;; ANSWER SECTION: gateway.autun.hom 604800 IN A 192.168.1.1 ;; AUTHORITY SECTION: Autun.hom. 604800 IN NS nefitari.autun.hom. ;; ADDITIONAL SECTION: Nefitari.autun.hom. 604800 IN A 192.168.1.5 ;; Query time: 12 msec ;; SERVER: 192.168.1.5#53(192.168.1.5) ;; WHEN: Thu Aug 8 01:56:25 2013 ;; MSG SIZE rcvd: 90 

输出应与上面类似,检查状态:NOERROR表示它正在解析检查ANSWER SECTION: gateway.autun.hom被解析为192.168.1.1

检查反向区域

  host 192.168.1.1 

产量

  1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom 

如果它给你一个如下错误

  host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN) 

这意味着您在反向区域中的/etc/bind/named.conf.local文件中出现了一些错误如果您的服务器IP是192.168.1.5,则您的反向区域看起来像这样

 zone "**1.168.192**.in-addr.arpa" { correct ip reversing }; 

有时人们在颠倒ip时犯了错误(仅举例)

 zone "**0.168.192**.in-addr.arpa" { incorrect ip reversing }; 

使用NSLOOKUP

 nslookup 192.168.1.1 Server: 192.168.1.5 Address: 192.168.1.5#53 1.1.168.192.in-addr.arpa name=gateway.autun.hom 

如果您得到NXDOMAIN或SERVFAIL错误,则表示您的某个区域文件无法正常工作

现在你可以ping ubuntu.com或者第一次挖ubuntu.com来解析你的名字ubuntu.com但是当你第二次运行它时需要花费1,2或3秒通常形成1到10毫米秒是正常的,这意味着您的DNS正常工作

配置客户端

窗边

  • 开放的网络连接
  • 选择更改适配器设置
  • 选择属性
  • 选择互联网协议版本IPv4

在这里给出IP地址(在我的情况下,它是192.168.1.50你还记得win7pc)

  • IP地址 192.168.1.50
  • 子网掩码 255.255.255.0
  • 默认网关 192.168.1.1
  • 主DNS 192.168.1.5(我的新BIND DNS服务器ip)
  • 在同一窗口中选择Advance
  • 选择DNS选项卡
  • 在此处的文本框中键入此连接的DNS后缀:autun.hom
  • 点击确定
  • 退出时单击validation设置
  • 点击确定

并且你完成它打开CMD

 ping gateway 

它必须给你一些回复

同样

 ping 192.168.1.1 or 5 

它必须给你一些回复

测试您的服务器到外面的世界

现在你可以ping ubuntu.com或者第一次挖掘ubuntu.com来解析你的名字ubuntu.com,但是当你第二次运行它时,它需要1到10毫秒的时间,正常时间和这意味着您的DNS正常工作配置客户端

窗边

打开网络连接选择更改适配器设置选择属性选择Internet协议版本IPv4

在这里给出IP地址(在我的情况下,它是192.168.1.50你还记得win7pc)

IP地址 192.168.1.50

子网掩码 255.255.255.0

默认网关 192.168.1.1

主DNS 192.168.1.5(我的新BIND DNS服务器ip)

选择高级 (在同一窗口中)

选择DNS选项卡

在此处的文本框中键入此连接的DNS后缀:autun.hom

点击确定

退出时单击validation设置

点击确定

并且你完成它打开CMD

码:

  ping gateway 

它必须给你一些回复

同样

码:

  ping 192.168.1.1 or 5 

它必须给你一些回复,你可以使用NSLOOKUP 代码:

  nslookup gateway 

LINUX客户端

码:

  sudo nano /etc/network/interfaces 

键入以下行

码:

  auto eth0 iface eth0 inet dhcp 

现在重启Network Deamons

码:

  sudo /etc/init.d/networking restart 

强制客户端更新IP命令

码:

  sudo dhclient -r 

现在获得新的IP:

码:

  sudo dhclient 

如果您在网络上运行DHCP服务器,请在dhcpd.conf文件中输入域名和名称服务器; 例如,我有DNS服务器名为nefitari.autun.hom,IP地址是192.168.1.5,如下

码:

  option domain-name "nefitari.autun.hom"; option domain-name-server 192.168.1.5; 

资源

答案只是对上述精彩描述的补充。

疑难解答

对许多人来说要非常小心。 在配置文件中,每个都很重要。 单个缺失’。’ 可以阻止DNS服务器工作。 您不应指望明确的错误消息。

我学会了使用更有说服力的序列号的良好做法。 每次修改设置时增加序列号非常重要,例如添加新条目。 如果未递增,则辅助DNS将无法同步新设置。 建议的格式为YYYYMMDDss ,其中ss是“旧”序列号。 因此,在递增时,您应该将ss增加+1 并将日期设置为当前日期。 我发现这对设置故障排除很有帮助。 在syslog中,您可以清楚地看到所用文件的日期和序列。

在Ubuntu 16.04中,不推荐更改resolv.conf。 正如jdthood在他的评论中写道,用以下过程替换步骤: – 更改/ etc / default / bind9:新的将如下所示:

  # run resolvconf? RESOLVCONF=yes # startup options for the server OPTIONS="-u bind" # use this when you have trouble with IPV6 #OPTIONS="-u bind -4" 

请参阅针对IPV6问题的非补丁评论。

  • 将/etc/resolv.conf的符号链接放入/run/resolvconf/resolv.conf

      cd /etc sudo ln -s /etc/resolv.conf /run/resolvconf/resolv.conf 

离线设置

设置完全相同,甚至更简单,因为您可以跳过转发部分。 它们不必存在,因此无需编辑/etc/bind/names.con.options

B类网络

为B类网络做这项工作需要做一些小的改动(在有评论之前,没有理由为什么本地网络,即使在家里,也不能成为B类而不是C类网络) 。 在这个例子中,我使用网络号172.20.xx(我认为正式表示法是172.20.0.0。更多信息google rfc1918)。

使用第一个答案中的描述,将所有IP 192.168.xx替换为172.20.xx,用于服务器IP 172.20.0.100并修改文件,如下所示:

  • db.192文件的名称变为db.172
  • named.conf.local获取不同的反向区域部分:

     zone "20.172.in-addr.arpe" { type master; file "/etc/bind/zones/db.172"; } 
  • 反向区域文件更改为:

     ; ; BIND reverse data file for 172.20.xx ; $TTL 604800 @ IN SOA nefitari.autun.hom. webuser.autun.hom. ( 2017022102 ; more intuitive serial YYYYMMDDss, here ss=02 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; note: the '@'was missing from in the initial description @ IN NS nefitari.autun.hom. 100.0 IN PTR nefitari.autun.hom. 121.0 IN PTR client1.autun.hom. 130.0 IN PTR client2.autun.hom. 33.0 IN PTR client3.autun.hom. 

其余的都是一样的。

希望它对某人有用。

Interesting Posts