DNS服务器实现域的主DNS服务

image-20210102095234721

目的:

DNS服务器解析wangcloud.top 到webserver1 10.0.0.7

DNS服务器配合CDN解析www.wangcloud.top到webserver1和2上

DNS服务器解析 错误主机名.wangcloud.top到webserver1 10.0.0.7上

步骤:

1.6.1 client10.0.0.9配置网卡,设置DNS为10.0.0.8 生效

client 10.0.0.9是ubuntu 所以按照ubuntu配置网卡

01:52:51 wang@9  ~]$ cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      addresses:
      - 10.0.0.9/24
      gateway4: 10.0.0.2
      nameservers:
        search: [wangcloud.top]
        addresses:
        - 10.0.0.8
  version: 2
  renderer: networkd
  
  01:54:09 wang@9  ~]$ sudo netplan apply
  01:55:23 wang@9  ~]$ resolvectl status
Global
       LLMNR setting: no
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Link 2 (eth0)
      Current Scopes: DNS
DefaultRoute setting: yes
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
  Current DNS Server: 10.0.0.8
         DNS Servers: 10.0.0.8
          DNS Domain: wangcloud.top

1.6.2 DNS server 10.0.0.8

  1. 设置网卡,DNS为自己,生效,重启
root@8  network-scripts]# cat ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=10.0.0.8
PREFIX=24
GATEWAY=10.0.0.2
DNS1=127.0.0.1
ONBOOT=yes

root@8  network-scripts]# nmcli connection reload
root@8  network-scripts]# nmcli connection up eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
  1. 下载bind 和bind-utils工具包 配置监听所有端口
root@8  ~]# yum -y install bind bind-utils
root@8  ~]# systemctl enable --now named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
root@8  ~]# grep -Ev '^#|^$|^/' /etc/named.conf
options {
    listen-on port 53{ localhost;};
    #listen-on port 53 { 127.0.0.1;10.0.0.8;};  
    #此行修改,意思是开启监听53端口的IP,0.0.0.0不行,写成listen-on port 53{ localhost;};也可以,或者#注释掉 默认就是localhost
    listen-on-v6 port 53 { ::1; };
    directory   "/var/named";
    dump-file   "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    secroots-file   "/var/named/data/named.secroots";
    recursing-file  "/var/named/data/named.recursing";
    
    allow-query { any;};
    #allow-query     { localhost;10.0.0.7;};
    #此行意思是允许使用DNS解析的服务器IP,将此行注释掉 默认就是any
    
    /*
     - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
     - If you are building a RECURSIVE (caching) DNS server, you need to enable
       recursion.
     - If your recursive DNS server has a public IP address, you MUST enable access
       control to limit queries to your legitimate users. Failing to do so will
       cause your server to become part of large scale DNS amplification
       attacks. Implementing BCP38 within your network would greatly
       reduce such attack surface
    */
    recursion yes;
    dnssec-enable yes;
    dnssec-validation yes;
    managed-keys-directory "/var/named/dynamic";
    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
    /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
    include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
    type hint;
    file "named.ca";
};
include "/etc/named.rfc1912.zones";
#上面的是域配置文件
include "/etc/named.root.key";
#查看配置文件是否生效
root@8  ~]# named-checkconf

#重启服务生效
root@8  ~]# rndc reload
server reload successful

#查看端口
root@8  ~]# ss -lntu|grep ":53 "
udp     UNCONN   0        0               10.0.0.8:53             0.0.0.0:*
udp     UNCONN   0        0              127.0.0.1:53             0.0.0.0:*
udp     UNCONN   0        0                  [::1]:53                [::]:*
tcp     LISTEN   0        10              10.0.0.8:53             0.0.0.0:*
tcp     LISTEN   0        10             127.0.0.1:53             0.0.0.0:*
tcp     LISTEN   0        10                 [::1]:53                [::]:*
  1. DNS server此时已经可以为任何人解析域名了 并且自己也可以,测试
root@8  ~]# ping www.baidu.com -c1
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=128 time=12.0 ms

--- www.a.shifen.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 12.032/12.032/12.032/0.000 ms
  1. 准备数据库文件设置主wangcloud.top域的DNS服务
vim /etc/named.rfc1912.zones
#加上这段
zone "wangcloud.top" IN {
    type master;
    file "wangcloud.localhost";
};

root@8  ~]# cd /var/named/
#复制模版 保留文件属组属主权限
root@8  named]# cp -p named.localhost wangcloud.localhost
root@8  named]# ll wangcloud.localhost
-rw-r----- 1 root named 152 Aug 25 01:31 wangcloud.localhost

#准备数据库文件
cd /var/named
root@8  named]# cat wangcloud.localhost
$TTL 1D
@   IN SOA  ns1 wangcloud. (
                    20200102    ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum

@   NS  ns1
ns1 A  10.0.0.8
www CNAME websrv
websrv A 10.0.0.10
websrv A 10.0.0.7
* A 10.0.0.7
@ A 10.0.0.7

root@8  named]# named-checkzone wangcloud.top wangcloud.localhost
zone wangcloud.top/IN: loaded serial 20200102
OK
root@8  named]# named-checkconf
root@8  named]# rndc reload
server reload successful

1.6.3 webserver1 10.0.0.7 webserver2 10.0.0.10 设置网页

#webserver1 10.0.0.7
root@7  ~]# yum -y install httpd
root@7  ~]# systemctl enable --now httpd
root@7  ~]# echo "wangcloud.top 10.0.0.7" > /var/www/html/index.html

#webserver1 10.0.0.10
root@10  ~]# yum -y install httpd
root@10  ~]# systemctl enable --now httpd
root@10  ~]# echo "wangcloud.top 10.0.0.10" > /var/www/html/index.html

1.6.4 client 10.0.0.9 测试域名

1. 访问测试

#数据库文件定义的规则
root@8  named]# cat wangcloud.localhost
$TTL 1D
@   IN SOA  ns1 wangcloud. (
                    20200102    ; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum

@   NS  ns1
ns1 A  10.0.0.8
www CNAME websrv
websrv A 10.0.0.10
websrv A 10.0.0.7
* A 10.0.0.7
@ A 10.0.0.7
#可以看到 
# @也就是wangcloud.top 访问转发到10.0.0.7 web server1上
# www也就是www.wangcloud.top 访问转发到CDN上 策略是到websrv上 websrv分别A记录到7和10上
# *也就是主机名输错 域名还是wangcloud.top 访问转发到7上

03:17:33 wang@9  ~]$ curl wangcloud.top
wangcloud.top 10.0.0.7
#
03:23:13 wang@9  ~]$ curl www.wangcloud.top
wangcloud.top 10.0.0.10
# 请求一直转发到10上,我们关闭10的服务 看到转发到了7上。说明这是负载均衡的
root@10  ~]# systemctl stop httpd
03:23:45 wang@9  ~]$ curl www.wangcloud.top
wangcloud.top 10.0.0.7
root@10  ~]# systemctl start httpd
#
# 主机名瞎瞎访问 转发到7上
03:23:46 wang@9  ~]$ curl abc.wangcloud.top
wangcloud.top 10.0.0.7
03:25:47 wang@9  ~]$ curl mail.wangcloud.top
wangcloud.top 10.0.0.7

2. dig、host、nslookup工具测试域名

安装工具包

ubuntu@2004  ~]$ dpkg -L bind9-dnsutils
/.
/usr
/usr/bin
/usr/bin/delv
/usr/bin/dig
/usr/bin/mdig
/usr/bin/nslookup
/usr/bin/nsupdate
/usr/share
/usr/share/doc
/usr/share/doc/bind9-dnsutils
/usr/share/doc/bind9-dnsutils/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/delv.1.gz
/usr/share/man/man1/dig.1.gz
/usr/share/man/man1/mdig.1.gz
/usr/share/man/man1/nslookup.1.gz
/usr/share/man/man1/nsupdate.1.gz
/usr/share/doc/bind9-dnsutils/NEWS.Debian.gz
/usr/share/doc/bind9-dnsutils/changelog.Debian.gz
ubuntu@2004  ~]$ dpkg -S /usr/bin/host
bind9-host: /usr/bin/host
ubuntu@2004  ~]$ dpkg -L bind9-host
/.
/usr
/usr/bin
/usr/bin/host
/usr/share
/usr/share/doc
/usr/share/doc/bind9-host
/usr/share/doc/bind9-host/copyright
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/host.1.gz
/usr/share/doc/bind9-host/NEWS.Debian.gz
/usr/share/doc/bind9-host/changelog.Debian.gz

dig测试域名

#测试 wangcloud.top
03:41:35 wang@9  ~]$ dig wangcloud.top

; <<>> DiG 9.16.6-Ubuntu <<>> wangcloud.top
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36332
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
#此处aa表示这是权威dns服务器返回的结果 即client配置的dns服务器就是拥有最终域名解析ip的权威DNS服务器

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 4bd58c0a04b80e26bb6b8d365fefebb088bced9c717bba74 (good)
;; QUESTION SECTION:
;wangcloud.top.         IN  A

;; ANSWER SECTION:
wangcloud.top.      86400   IN  A   10.0.0.7

;; AUTHORITY SECTION:
wangcloud.top.      86400   IN  NS  ns1.wangcloud.top.

;; ADDITIONAL SECTION:
ns1.wangcloud.top.  86400   IN  A   10.0.0.8

;; Query time: 0 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Sat Jan 02 03:42:40 UTC 2021
;; MSG SIZE  rcvd: 120


#测试www.wangcloud.top
03:41:28 wang@9  ~]$ dig www.wangcloud.top

; <<>> DiG 9.16.6-Ubuntu <<>> www.wangcloud.top
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29226
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 171ad9e13b631653bf8d959e5fefeb6fbeeca5bd2a84a82b (good)
;; QUESTION SECTION:
;www.wangcloud.top.     IN  A

;; ANSWER SECTION:
www.wangcloud.top.  86400   IN  CNAME   websrv.wangcloud.top.
websrv.wangcloud.top.   86400   IN  A   10.0.0.10
websrv.wangcloud.top.   86400   IN  A   10.0.0.7

;; AUTHORITY SECTION:
wangcloud.top.      86400   IN  NS  ns1.wangcloud.top.

;; ADDITIONAL SECTION:
ns1.wangcloud.top.  86400   IN  A   10.0.0.8

;; Query time: 0 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Sat Jan 02 03:41:35 UTC 2021
;; MSG SIZE  rcvd: 161

#和百度对比
#测试百度
03:42:40 wang@9  ~]$ dig www.baidu.com

; <<>> DiG 9.16.6-Ubuntu <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40431
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 829e2cea53145dd0d118be355fefec19daa6a99029009ba8 (good)
;; QUESTION SECTION:
;www.baidu.com.         IN  A

;; ANSWER SECTION:
www.baidu.com.      740 IN  CNAME   www.a.shifen.com.
www.a.shifen.com.   300 IN  A   110.242.68.4
www.a.shifen.com.   300 IN  A   110.242.68.3

;; AUTHORITY SECTION:
a.shifen.com.       740 IN  NS  ns1.a.shifen.com.
a.shifen.com.       740 IN  NS  ns5.a.shifen.com.
a.shifen.com.       740 IN  NS  ns3.a.shifen.com.
a.shifen.com.       740 IN  NS  ns2.a.shifen.com.
a.shifen.com.       740 IN  NS  ns4.a.shifen.com.

;; ADDITIONAL SECTION:
ns2.a.shifen.com.   740 IN  A   220.181.33.32
ns3.a.shifen.com.   740 IN  A   112.80.255.253
ns1.a.shifen.com.   740 IN  A   110.242.68.42
ns4.a.shifen.com.   740 IN  A   14.215.177.229
ns5.a.shifen.com.   740 IN  A   180.76.76.95

;; Query time: 28 msec
;; SERVER: 10.0.0.8#53(10.0.0.8)
;; WHEN: Sat Jan 02 03:44:25 UTC 2021
;; MSG SIZE  rcvd: 299

host测试域名

#测试wangcloud.top
03:33:38 wang@9  ~]$ host wangcloud.top
wangcloud.top has address 10.0.0.7
03:36:11 wang@9  ~]$ host www.wangcloud.top
www.wangcloud.top is an alias for websrv.wangcloud.top.
websrv.wangcloud.top has address 10.0.0.10
websrv.wangcloud.top has address 10.0.0.7

#和百度对比
#测试百度
03:36:48 wang@9  ~]$ host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 110.242.68.4
www.a.shifen.com has address 110.242.68.3

nslookup测试域名

03:44:25 wang@9  ~]$ nslookup wangcloud.top
Server:     10.0.0.8
Address:    10.0.0.8#53

Name:   wangcloud.top
Address: 10.0.0.7

03:45:44 wang@9  ~]$ nslookup www.wangcloud.top
Server:     10.0.0.8
Address:    10.0.0.8#53

www.wangcloud.top   canonical name = websrv.wangcloud.top.
Name:   websrv.wangcloud.top
Address: 10.0.0.7
Name:   websrv.wangcloud.top
Address: 10.0.0.10

#对比百度
03:46:01 wang@9  ~]$ nslookup baidu.com
Server:     10.0.0.8
Address:    10.0.0.8#53

Non-authoritative answer:
Name:   baidu.com
Address: 39.156.69.79
Name:   baidu.com
Address: 220.181.38.148

03:46:26 wang@9  ~]$ nslookup www.baidu.com
Server:     10.0.0.8
Address:    10.0.0.8#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 110.242.68.4
Name:   www.a.shifen.com
Address: 110.242.68.3
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容

  • 环境:centOS6.1虚拟机[zhang@server ~]$ cat /etc/centos-releaseC...
    简公孙策阅读 503评论 0 0
  • 目录(持续更新) 基础-第0章-安装基础-第1章-基本操作基础-第2章-磁盘及文件系统管理基础-第3章-获得帮助基...
    sky92archangel阅读 852评论 0 1
  • 搭建基础环境:Centos7.2 1、安装最新的bind软件 #yum install bind* -y 2、修改...
    天夭夭阅读 1,910评论 0 0
  • DNS DNS:Domain Name Service 应用层协议(C/S,53/udp, 53/tcp) 域名 ...
    毛利卷卷发阅读 6,814评论 0 6
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,523评论 16 22