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

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

我需要一个完整的分步指南来指导如何生成这样的服务器配置。

谁能帮我?

答案1

在 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 服务器之前,您必须先创建域名,然后才能继续。首先,您将检查主机名命令,因为这是

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 代表本地主机,我已将第二个 IP 地址 127.0.1.1 更改为我的服务器 IP,即 192.168.1.5,现在我输入我的域名和主机名内菲塔里首先是我的域名秋天然后别名内菲塔里。您可以选择自己的,hostname.abc.net 或 hostname.home.lan 等。但请记住,更改此文件需要重新启动服务器,然后登录。必须重启

现在安装BIND9

 sudo apt-get install bind9

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

  • 命名的.conf.选项
  • 命名的.conf.本地
  • /etc/resolv.conf

现在配置文件named.conf.options 此文件用于 DNS IP 这意味着您的服务器必须连接到外部的某个 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;
  };

***保存文件并退出***使用 control 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";
 };

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

现在我们将创建这两个数据库文件数据库分贝.192在区域文件夹中

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

  sudo mkdir /etc/bind/zones

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

设备 IP

  • 服务器本身 192.168.1.5
  • 网关 192.168.1.1
  • 還是 192.168.1.50

现在在区域目录中我们将首先创建两个文件数据库我只是复制本地数据库已经存在于/etc/bind文件夹更改为区域文件夹数据库。我会把这些 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.

保存并退出

  • Web用户.autun.hom。是访问名称服务器的电子邮件地址。您可以输入任何名称来代替 webuser,例如 admin、root 或 host master 等。
  • 秋天.hom.我的 NS 是指名称服务器吗
  • 秋天.更改为 IP 192.168.1.5
  • @ IN A 127.0.0.1 和 AAAA ::1可以注释掉,因为 db.local 已经存在于 /etc/bind 中,所以不需要它,它只是该文件的一个副本。所以不需要,你可以删除它
  • 改变内菲塔里到 IP 192.168.1.5
  • 网关到 IP 192.168.1.1
  • 還是你可以将你的 Windows PC 或 Linux 客户端命名为任意名称,但请记住,必须将该客户端的 IP 正确插入到文件中。在我的例子中,我给出了 Windows PC 的 IP 192.168.1.50
  • 最后,我正在使用别名记录表示规范名称,它只是 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 

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

现在编辑文件 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 autun.hom

输出

Server: 192.168.1.5
Address: 192.168.1.5#53

Name: autun.hom
Address: 192.168.1.5

使用

 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

输出应与上述类似,检查状态:无错误表示正在解析检查解答部分: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 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
  • 主 DNS192.168.1.5(我的新 BIND DNS 服务器 IP)
  • 在同一窗口中选择进步
  • 选择DNS 选项卡
  • 在下面的文本框中输入此连接的 DNS 后缀:autun.hom
  • 点击好的
  • 点击退出时验证设置
  • 点击确定

然后你就完成了,打开 CMD

ping gateway

它必须给你一些答复

相似地

ping 192.168.1.1 or 5

它必须给你一些答复

测试你的服务器是否能与外界进行交互

现在你可以 ping ubuntu.com 或 dig 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

主 DNS192.168.1.5(我的新 BIND DNS 服务器 IP)

选择“高级”(在同一窗口)

选择DNS标签

在下面的文本框中输入此连接的 DNS 后缀:autun.hom

点击好的

退出时单击验证设置

点击好的

你已经打开它了命令

代码:

 ping gateway

它必须给你一些答复

相似地

代码:

 ping 192.168.1.1 or 5

它必须给你一些你可以使用的答复查找 代码:

 nslookup gateway

Linux 客户端

代码:

 sudo nano /etc/network/interfaces

输入以下几行

代码:

 auto eth0
 iface eth0 inet dhcp

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

代码:

 sudo /etc/init.d/networking restart

强制客户端更新 IP 命令

代码:

 sudo dhclient -r

现在获取新的IP:

代码:

 sudo dhclient

如果您在网络上运行 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;

来源

答案2

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

故障排除提示

配置文件中的许多“.”要格外小心,因为每个“.”都很重要。一个“.”的缺失就会导致 DNS 服务器停止工作。您不应该指望清晰的错误消息。

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

在 Ubuntu 16.04 中,更改 resolv.conf 已被弃用。正义论在他的评论中写道用以下步骤替换该步骤: - 更改 /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。有关更多信息,请谷歌搜索 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.x.x
    ;
    $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.
    

其余都一样。

希望它对某些人有用。

相关内容