0%

bind9的初步使用(1)

前言

周五把自己的电脑重装了一下,还是使用的经典的windows+vmware+ubuntu的经典方式(对我来说)。但是我不想每次都修改host文件来实现我的域名访问,所以我在想有没有一个更好的方式,可以让我实现域名映射。这个时候我想到了自己架设一个dns服务器。说干就干,我就准备用dns的开源系统bind9来搞一番。

环境介绍

  • Ubuntu: 18.10 (ip: 192.168.1.230)
  • bind9: 9.11.4
  • Windows 10 (ip: 192.168.1.230)

安装

其实安装非常简单,一条命令就搞定了

1
sudo apt install bind9

管理命令

启动:

1
sudo systemctl start bind9

停止:

1
sudo systemctl stop bind9

重启:

1
sudo systemctl restart bind9

状态:

1
sudo systemctl status bind9

配置域名

举个例子,比如现在我们有个域名是:baoguoxiao.pro。现在我们要对这个域名进行虚拟映射。

首先打开/etc/bind/named.conf.local,追加如下内容到文件尾部:

1
zone "baoguoxiao.pro" {
2
    type master;
3
    file "/etc/bind/zones/baoguoxiao.pro.db";
4
};

那么现在这个文件的内容完整如下:

1
//
2
// Do any local configuration here
3
//
4
5
// Consider adding the 1918 zones here, if they are not used in your
6
// organization
7
//include "/etc/bind/zones.rfc1918";
8
9
zone "baoguoxiao.pro" {
10
    type master;
11
    file "/etc/bind/zones/baoguoxiao.pro.db"; // 这个文件定义了文件地址
12
};

我们定义的地址是/etc/bind/zones/baoguoxiao.pro.db。但是我们的/etc/bind/并没有该目录。所以需要如下命令进行创建:

1
cd /etc/bind/
2
sudo mkdir zones

进入该目录:

1
cd zones

然后创建该文件baoguoxiao.pro.db,并追加如下命令:

1
; BIND data file for baoguoxiao.pro
2
;
3
$TTL 14400
4
@ IN SOA ns1.baoguoxiao.pro. host.baoguoxiao.pro. (
5
201006601 ; Serial
6
7200 ; Refresh
7
120 ; Retry
8
2419200 ; Expire
9
604800) ; Default TTL
10
;
11
baoguoxiao.pro. IN NS ns1.baoguoxiao.pro.
12
 
13
;baoguoxiao.pro. IN A 192.168.1.231
14
 
15
ns1 IN A 192.168.1.231
16
www IN A 192.168.1.231

这样就设置完成了。然后我们将bind9进行重启。

测试DNS效果

1
$ dig @192.168.1.231 www.baoguoxiao.pro
2
3
; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> @192.168.1.231 www.baoguoxiao.pro
4
; (1 server found)
5
;; global options: +cmd
6
;; Got answer:
7
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35630
8
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
9
10
;; OPT PSEUDOSECTION:
11
; EDNS: version: 0, flags:; udp: 4096
12
; COOKIE: f077ba72f04b75a1ac9b27275c16148f4732abac11c21ce8 (good)
13
;; QUESTION SECTION:
14
;www.baoguoxiao.pro.			IN	A
15
16
;; ANSWER SECTION:
17
www.baoguoxiao.pro.		14400	IN	A	192.168.1.231
18
19
;; AUTHORITY SECTION:
20
baoguoxiao.pro.			14400	IN	NS	ns1.baoguoxiao.pro.
21
22
;; ADDITIONAL SECTION:
23
ns1.baoguoxiao.pro.		14400	IN	A	192.168.1.231
24
25
;; Query time: 0 msec
26
;; SERVER: 192.168.1.231#53(192.168.1.231)
27
;; WHEN: Sun Dec 16 17:02:07 CST 2018
28
;; MSG SIZE  rcvd: 117

好了,这样就表示已经配置成功了

设置默认本机DNS可用

之前的设置我们需要指定本机的DNS服务器才可以使用,如果我们不指定的话,那么查询该域名是没有效果的:

1
$ dig baoguoxiao.pro
2
3
; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> baoguoxiao.pro
4
;; global options: +cmd
5
;; Got answer:
6
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 52385
7
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
8
9
;; OPT PSEUDOSECTION:
10
; EDNS: version: 0, flags:; udp: 65494
11
;; QUESTION SECTION:
12
;baoguoxiao.pro.			IN	A
13
14
;; Query time: 274 msec
15
;; SERVER: 127.0.0.53#53(127.0.0.53)
16
;; WHEN: Sun Dec 16 17:03:59 CST 2018
17
;; MSG SIZE  rcvd: 43

在ubuntu17.10之后,网卡配置已经更新为netplan。该配置文件的目录是/etc/netplan/。不过里面的文件不一定是相同的名字。我的文件打开是这样的。

1
$ cat /etc/netplan/50-cloud-init.yaml 
2
# This file is generated from information provided by
3
# the datasource.  Changes to it will not persist across an instance.
4
# To disable cloud-init's network configuration capabilities, write a file
5
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
6
# network: {config: disabled}
7
network:
8
    ethernets:
9
        ens33:
10
            addresses: [192.168.1.231/24]
11
            dhcp4: false
12
            dhcp6: false
13
            gateway4: 192.168.1.1
14
            nameservers:
15
                addresses: [192.168.1.231,114.114.114.114]
16
    version: 2

注意,我在倒数第二行的数组里面添加本机的服务器192.168.1.231。关于该文件的配置,可以查看我的另外一篇文章:。

这样我们在本机就可以不指定dns服务器的基础上进行获取域名的ip了。

1
$ dig www.bgx.me
2
3
; <<>> DiG 9.11.4-3ubuntu5-Ubuntu <<>> www.baoguoxiao.pro
4
;; global options: +cmd
5
;; Got answer:
6
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58219
7
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
8
9
;; OPT PSEUDOSECTION:
10
; EDNS: version: 0, flags:; udp: 4096
11
; COOKIE: 15d0881d8eed3292569558cd5c1623fa33a2d05212e7e662 (good)
12
;; QUESTION SECTION:
13
;www.baoguoxiao.pro.			IN	A
14
15
;; ANSWER SECTION:
16
www.baoguoxiao.pro.		14400	IN	A	192.168.1.231
17
18
;; AUTHORITY SECTION:
19
baoguoxiao.pro.			14400	IN	NS	ns1.baoguoxiao.pro.
20
21
;; ADDITIONAL SECTION:
22
ns1.baoguoxiao.pro.		14400	IN	A	192.168.1.231
23
24
;; Query time: 0 msec
25
;; SERVER: 192.168.1.231#53(192.168.1.231)
26
;; WHEN: Sun Dec 16 18:07:54 CST 2018
27
;; MSG SIZE  rcvd: 117

本篇文章就说到这里。下一篇讲如何配置可局域网访问。