如何使用主机名进行完整的 BIND9 DNS 服务器配置?

Art*_*mis 55 bind

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

谁能帮我?

fos*_*dom 121

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

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

sudo nano /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)

并添加:

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
Run Code Online (Sandbox Code Playgroud)

重新启动网络守护进程

sudo /etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)

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

sudo nano /etc/hostname

 nefitari       
Run Code Online (Sandbox Code Playgroud)

(这是我的 Ubuntu 服务器主机名,您的可能不同。您可以根据需要进行更改)

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

  sudo nano /etc/hosts
Run Code Online (Sandbox Code Playgroud)

如果没有,请添加:

  127.0.0.1   localhost

  192.168.1.5     nefitari.autun.hom    nefitari
Run Code Online (Sandbox Code Playgroud)

在我的文件中,127.0.0.1 用于本地主机,我已经将第二个 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
Run Code Online (Sandbox Code Playgroud)

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

  • 命名.conf.options
  • 命名.conf.local
  • /etc/resolv.conf

现在配置文件named.conf.options 该文件用于DNS IPs 这意味着您的服务器必须连接到外部的某些DNS。当您从 ISP 购买域名时,他们通常会为您提供自己的 DNS IP。您可以使用google等的开放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;
  };
Run Code Online (Sandbox Code Playgroud)

***保存文件并退出***使用 control x 按 y 并覆盖文件

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

sudo nano /etc/bind/named.conf.local
Run Code Online (Sandbox Code Playgroud)

将会呈现:

# 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";
 };
Run Code Online (Sandbox Code Playgroud)

***保存文件并退出***使用 control x 按 y 并覆盖文件

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

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

  sudo mkdir /etc/bind/zones
Run Code Online (Sandbox Code Playgroud)

在制作文件之前,让我明确一下我有不同的设备

设备 IP

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

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

sudo cp /etc/bind/db.local  /etc/bind/zones/db.autun.hom
Run Code Online (Sandbox Code Playgroud)

现在使用下面的命令来编辑文件

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.
Run Code Online (Sandbox Code Playgroud)

保存并退出

  • Webuser.autun.hom。是将访问名称服务器的电子邮件。您可以写任何名称来代替 webuser,例如 admin、root 或 host master 等。
  • 秋季。是我的 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
Run Code Online (Sandbox Code Playgroud)

现在使用下面的命令来编辑文件

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.
Run Code Online (Sandbox Code Playgroud)

保存并退出

现在,当您完成区域文件时,您必须通过输入以下命令来检查它是否正常工作以获取转发区域文件

named-checkzone autun.hom /etc/bind/zones/db.autun.hom
zone autun.hom /IN: loaded serial   2
Ok
Run Code Online (Sandbox Code Playgroud)

现在检查反向区域文件

named-checkzone autun.hom /etc/bind/zones/db.192
zone autun.hom /IN: loaded serial   2
Ok 
Run Code Online (Sandbox Code Playgroud)

如果您的命名检查区的输出与上面相同,那么它工作正常,否则您在文件中犯了一些错误。

现在编辑文件resolv.conf

sudo nano /etc/resolv.conf

nameserver      192.168.1.5
domain      autun.hom
search      autun.hom
Run Code Online (Sandbox Code Playgroud)

将以下行输入到您的 resolv.conf 文件中并保存

重启绑定

sudo /etc/init.d/bind9 restart
Run Code Online (Sandbox Code Playgroud)

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

tail -f /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

日志中不能有任何错误

检查正向区域

host –l autun.hom
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的

 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
Run Code Online (Sandbox Code Playgroud)

现在使用NSLOOKUP

nslookup autun.hom
Run Code Online (Sandbox Code Playgroud)

输出

Server: 192.168.1.5
Address: 192.168.1.5#53

Name: autun.hom
Address: 192.168.1.5
Run Code Online (Sandbox Code Playgroud)

使用挖掘

 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
Run Code Online (Sandbox Code Playgroud)

输出应该和上面类似,check status: NOERROR表示正在解析 check ANSWER SECTION: gateway.autun.hom isresolution into 192.168.1.1

检查反向区域

 host 192.168.1.1
Run Code Online (Sandbox Code Playgroud)

输出

 1.1.168.192.in-addr.arpa domain name pointer gateway.autun.hom
Run Code Online (Sandbox Code Playgroud)

如果它给你一个像下面这样的错误

 host 1.1.168.192.in-addr.arpa. not found: 3(NXDOMAIN)
Run Code Online (Sandbox Code Playgroud)

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

zone "**1.168.192**.in-addr.arpa" {
 correct ip reversing
};
Run Code Online (Sandbox Code Playgroud)

有时人们在反转 ip 时犯了错误(只是一个例子)

zone "**0.168.192**.in-addr.arpa" {
incorrect ip reversing
};
Run Code Online (Sandbox Code Playgroud)

使用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
Run Code Online (Sandbox Code Playgroud)

如果您收到 NXDOMAIN 或 SERVFAIL 之类的错误,则意味着您的区域文件之一无法正常工作

现在您可以第一次ping ubuntu.comdig ubuntu.com解析名称 ubuntu.com需要毫秒,但是当您第二次运行它时,通常需要1、2 或 3 秒,从 1 到 10 mili秒是正常的,这意味着您的 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)
  • 在同一窗口中选择高级
  • 选择DNS 选项卡
  • 在下面的文本框中键入此连接的 DNS 后缀:autun.hom
  • 单击确定
  • 退出时点击验证设置
  • 单击确定

你已经完成了打开 CMD

ping gateway
Run Code Online (Sandbox Code Playgroud)

它必须给你一些答复

相似地

ping 192.168.1.1 or 5
Run Code Online (Sandbox Code Playgroud)

它必须给你一些答复

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

现在你可以第一次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

单击确定

退出时点击验证设置

单击确定

你已经完成了打开CMD

代码:

 ping gateway
Run Code Online (Sandbox Code Playgroud)

它必须给你一些答复

相似地

代码:

 ping 192.168.1.1 or 5
Run Code Online (Sandbox Code Playgroud)

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

 nslookup gateway
Run Code Online (Sandbox Code Playgroud)

Linux 客户端

代码:

 sudo nano /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)

输入以下几行

代码:

 auto eth0
 iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)

现在重新启动网络守护进程

代码:

 sudo /etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)

强制客户端更新 IP 命令

代码:

 sudo dhclient -r
Run Code Online (Sandbox Code Playgroud)

现在获取新IP:

代码:

 sudo dhclient
Run Code Online (Sandbox Code Playgroud)

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

代码:

 option domain-name "nefitari.autun.hom";
 option domain-name-server  192.168.1.5;
Run Code Online (Sandbox Code Playgroud)

来源

  • 这个答案是正确的,除了关于编辑 /etc/resolv.conf 的部分。从 Ubuntu 12.04 开始,您不再手动编辑该文件,而是配置 resolvconf 来执行此操作。在 /etc/default/bind9 中设置 RESOLVCONF=yes 使 BIND 9 named 在启动时使用 resolvconf 注册其本地侦听地址 127.0.0.1。确保 /etc/resolv.conf 是指向 `../run/resolvconf/resolv.conf` 的符号链接。 (12认同)
  • 遗憾的是,该页面有 3726 次 uniq 浏览量,而答案只有一个赞成票。如果对你有帮助,就点个赞吧! (7认同)