DNS服务器软件::bind,powerdns,dnsmasq,unbound,coredns

BIND相关程序包

  • bind:服务器
  • bind-libs:相关库
  • bind-utils:客户端
  • bind-chroot:安全包,将dns相关文件放至/var/named/chroot/

BIND包相关文件

  • BIND主程序:/usr/sbin/named
  • 服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service
  • 主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
  • 管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且 只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp
  • 解析库文件:/var/named/ZONE_NAME.ZONE

主配置文件

  • 全局配置:options {};
  • 日志子系统配置:logging {};
  • 区域定义:本机能够为哪些zone进行解析,就要定义哪些zone   zone "ZONE_NAME" IN {};

注意:

  • 任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的 IP地址上
  • 缓存名称服务器的配置:监听外部地址即可
  • dnssec: 建议关闭dnssec,设为no

主配置文件语法检查

named-checkconf

解析库文件语法检查

named-checkzone "magedu.org" /var/named/magedu.org.zone          #centos8没有整个命令

配置生效

#三种方式
#rndc reload
#systemctl reload named
#service named reload

实现DNS正向主从服务器

实验设备:服务器

    centos8   地址10.0.0.88;centos7  地址10.0.0.77

     客户端

    centos7 地址10.0.0.7

设置域名:magedu.org

客户端DNS解析:主服务器掉线,自动连接 “从服务器”解析

主服务器配置

1、编辑配置文件 /etc/named.conf

[root@centos8-liyj ~]#vim /etc/named.conf
注释//  图片中蓝色行
添加    allow-transfer { 10.0.0.77;};   #只允许从服务器进行区域传输

修改

dnssec-enable yes;      #改为no
dnssec-validation yes;  #改为no


options {
// listen-on port 53 { 127.0.0.1; };
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 { localhost; };
allow-transfer { 10.0.0.77; };
/*
- 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 no;
dnssec-validation no; 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";

配置文件

2、编辑/etc/named.rfc1912.zones

再最后添加以下内容
zone "magedu.org" IN {
typer master;
file "magedu.org.zone"; #文件目录,默认/var/named/
};                  #在named.conf文件中定义了directory  "/var/named";

// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and https://tools.ietf.org/html/rfc6303
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// Note: empty-zones-enable yes; option is default.
// If private ranges should be forwarded, add
// disable-empty-zone "."; into options
//
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and https://tools.ietf.org/html/rfc6303
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// Note: empty-zones-enable yes; option is default.
// If private ranges should be forwarded, add
// disable-empty-zone "."; into options
// zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
}; zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
}; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
}; zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
}; zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "magedu.org" IN {
typer master;
file "magedu.org.zone";
};

named.rfc1912.zones

3、编辑DNS区域数据库文件

[root@centos8-liyj /etc/named]#cd /var/named/
[root@centos8-liyj /var/named]#ls
data dynamic named.ca named.empty named.localhost named.loopback slaves

3.1复制named.localhost文件格式,重新编辑

[root@centos8-liyj /var/named]#cp -p named.localhost magedu.org.zone    #-p   复制原格式权限
[root@centos8-liyj /var/named]#ll                        或者手动修改:chgrp named magedu.org.zone
total 20
drwxrwx--- 2 named named 6 Aug 25 2021 data
drwxrwx--- 2 named named 6 Aug 25 2021 dynamic
-rw-r----- 1 root named 152 Aug 25 2021 magedu.org.zone #文件权限为640 ,强制 属主root,数组named
-rw-r----- 1 root named 2253 Aug 25 2021 named.ca
-rw-r----- 1 root named 152 Aug 25 2021 named.empty
-rw-r----- 1 root named 152 Aug 25 2021 named.localhost
-rw-r----- 1 root named 168 Aug 25 2021 named.loopback
drwxrwx--- 2 named named 6 Aug 25 2021 slaves
[root@centos8-liyj /var/named]#vim magedu.org.zone 

$TTL 1D
@ IN SOA ns1 admin.magedu.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1            #主DNS
NS ns2            #从DNS
ns1 A 10.0.0.88         #指向地址
ns2 A 10.0.0.77
[root@centos8-liyj /var/named]#systemctl start named      #第一次启动
[root@centos8-liyj /var/named]#rndc reload          #不是第一次启动,使用rndc reload 加载 配置文件,不会终端DNS服务
server reload successful
[root@centos8-liyj /var/named]#

主服务器DNS-dig测试

[root@centos8-liyj /var/named]#dig ns1.magedu.org
#本机设置了DNS地址,联通了外网,互联网上由 ns1.magedu.org域名。解析如下
ns1.magedu.org. 5 IN A 47.91.170.222 #解析出外网地址,
                                      vim /etc/sysconfig/network-scripts/ifcfg-eth0
                                      删除本机的DNS地址
[root@centos8-liyj /var/named]#cat /etc/sysconfig/network-scripts/ifcfg-eth0     #修改后,删除了DNS地址,重启网卡服务
DEVICE="eth0"
NAME="eth0"
BOOTPROTO="static"
IPADDR=10.0.0.88
PREFIX=24
GATEWAY=10.0.0.2
ONBOOT="yes"

[root@centos8-liyj /var/named]#dig ns1.magedu.org

; <<>> DiG 9.11.26-RedHat-9.11.26-6.el8 <<>> ns1.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23788
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: a6b5b8d8778a6125c5397a2d626f938979def64920dcc8d5 (good)
;; QUESTION SECTION:
;ns1.magedu.org. IN A ;; ANSWER SECTION:
ns1.magedu.org. 86400 IN A 10.0.0.88 ;; AUTHORITY SECTION:
magedu.org. 86400 IN NS ns1.magedu.org.
magedu.org. 86400 IN NS ns2.magedu.org. ;; ADDITIONAL SECTION:
ns2.magedu.org. 86400 IN A 10.0.0.77 ;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon May 02 16:17:13 CST 2022
;; MSG SIZE rcvd: 135

dig域名测试正确

从服务器配置

[root@centos7-liyj ~]#vim /etc/named.conf 
注释//

options {
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };

allow-transfer { none;};       #不允许其他主机进行区域传输

yes改为no

dnssec-enable no;
dnssec-validation no;

}

[root@centos7-liyj ~]#vim /etc/named.rfc1912.zones     添加以下内容
zone "magedu.org" {
type slave;
masters { 10.0.0.88;};
 file "slaves/magedu.org.slave"; #文件目录
};
systemctl start named          #第一次启动服务
rndc reload #不是第一次启动服务
ls /var/named/slaves/magedu.org.slave #查看区域数据库文件是否生成
[root@centos7-liyj ]#ll /var/named/slaves/
total 4
-rw-r--r-- 1 named named 264 May 2 17:06 magedu.org.slave
[root@centos7-liyj ]#cat /var/named/slaves/magedu.org.slave #从服务器 自动生成文件
boXQ                                    查看内容乱码,不允许从服务器看到配置
mageduorg6ns1mageduorgadminmageduorgQ :*0DQ
mageduorgns1mageduorgns2mageduorg*Qns1mageduorg
X*Qns2mageduorg

解决乱码问题:

添加
masterfile-format text;

重启服务
systemctl restart named

[root@centos7-liyj /var/named/slaves]#cat /var/named/slaves/magedu.org.slave
$ORIGIN .
$TTL 86400 ; 1 day
magedu.org IN SOA ns1.magedu.org. admin.magedu.org. (
0 ; serial
86400 ; refresh (1 day)
3600 ; retry (1 hour)
604800 ; expire (1 week)
10800 ; minimum (3 hours)
)
NS ns1.magedu.org.
NS ns2.magedu.org.
$ORIGIN magedu.org.
ns1 A 10.0.0.88
ns2 A 10.0.0.77

从无服务器magedu.org.slave


DNS gid测试

首先修改 eth0 网卡配置,删除dns地址,添加dns=10.0.0.88

[root@centos7-liyj ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NAME="eth0"
BOOTPROTO="static"
IPADDR=10.0.0.77
PREFIX=24
GATEWAY=10.0.0.2
DNS3=10.0.0.88
ONBOOT="yes"

[root@centos7-liyj /var/named/slaves]#dig ns2.magedu.org

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> ns2.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39354
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;ns2.magedu.org. IN A ;; ANSWER SECTION:
ns2.magedu.org. 86400 IN A 10.0.0.77 ;; AUTHORITY SECTION:
magedu.org. 86400 IN NS ns1.magedu.org.
magedu.org. 86400 IN NS ns2.magedu.org. ;; ADDITIONAL SECTION:
ns1.magedu.org. 86400 IN A 10.0.0.88 ;; Query time: 0 msec
;; SERVER: 10.0.0.88#53(10.0.0.88)
;; WHEN: Mon May 02 17:53:49 CST 2022
;; MSG SIZE rcvd: 107

域名解析

客户端域名解析

修改客户端DNS1 为  10.0.0.88  DNS2为10.0.0.77

[root@centos7-liyj ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@centos7-liyj ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NAME="eth0"
BOOTPROTO="static"
IPADDR=10.0.0.7
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.77
DNS2=10.0.0.88
ONBOOT="yes"

测试,DNS主从服务器都在线

yum install -y bind-utils

[root@centos7-liyj ~]#dig ns1.magedu.org

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> ns1.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26563
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;ns1.magedu.org. IN A ;; ANSWER SECTION:
ns1.magedu.org. 86400 IN A 10.0.0.88 ;; AUTHORITY SECTION:
magedu.org. 86400 IN NS ns1.magedu.org.
magedu.org. 86400 IN NS ns2.magedu.org. ;; ADDITIONAL SECTION:
ns2.magedu.org. 86400 IN A 10.0.0.77 ;; Query time: 0 msec
;; SERVER: 10.0.0.88#53(10.0.0.88)
;; WHEN: Mon May 02 18:04:39 CST 2022
;; MSG SIZE rcvd: 107 [root@centos7-liyj ~]#dig ns2.magedu.org ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> ns2.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7070
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;ns2.magedu.org. IN A ;; ANSWER SECTION:
ns2.magedu.org. 86400 IN A 10.0.0.77 ;; AUTHORITY SECTION:
magedu.org. 86400 IN NS ns1.magedu.org.
magedu.org. 86400 IN NS ns2.magedu.org. ;; ADDITIONAL SECTION:
ns1.magedu.org. 86400 IN A 10.0.0.88 ;; Query time: 0 msec
;; SERVER: 10.0.0.88#53(10.0.0.88)
;; WHEN: Mon May 02 18:04:47 CST 2022
;; MSG SIZE rcvd: 107

域名解析

DNS主服务器掉线

[root@centos8-liyj ~]#systemctl stop named
[root@centos8-liyj ~]#systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
Active: inactive (dead)

客户端解析

[root@centos7-liyj ~]#dig ns2.magedu.org

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> ns2.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57974
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns2.magedu.org. IN A ;; ANSWER SECTION:
ns2.magedu.org. 86400 IN A 10.0.0.77 ;; AUTHORITY SECTION:
magedu.org. 86400 IN NS ns2.magedu.org.
magedu.org. 86400 IN NS ns1.magedu.org. ;; ADDITIONAL SECTION:
ns1.magedu.org. 86400 IN A 10.0.0.88 ;; Query time: 1 msec
;; SERVER: 10.0.0.77#53(10.0.0.77)
;; WHEN: Mon May 02 18:11:26 CST 2022
;; MSG SIZE rcvd: 107 [root@centos7-liyj ~]#dig ns1.magedu.org ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> ns1.magedu.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3739
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.magedu.org. IN A ;; ANSWER SECTION:
ns1.magedu.org. 86400 IN A 10.0.0.88 ;; AUTHORITY SECTION:
magedu.org. 86400 IN NS ns2.magedu.org.
magedu.org. 86400 IN NS ns1.magedu.org. ;; ADDITIONAL SECTION:
ns2.magedu.org. 86400 IN A 10.0.0.77 ;; Query time: 1 msec
;; SERVER: 10.0.0.77#53(10.0.0.77)
;; WHEN: Mon May 02 18:11:37 CST 2022
;; MSG SIZE rcvd: 107

正常解析额

DNS软件bind-实现DNS服务器的更多相关文章

  1. 在Debian上用Bind 配置DNS服务器

    1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,D ...

  2. 【Linux】DNS服务-BIND从服务器、缓存服务器及转发服务器配置(三)

    环境 操作系统:CentOS 6.5 DNS软件:bind(安装参照:[Linux]DNS服务-BIND基础配置(二)) BIND从服务器 从服务器就是在bind的主配置文件中添加从域example. ...

  3. Linux运维实战之DNS(bind)服务器的安装与配置

    转自http://sweetpotato.blog.51cto.com/533893/1598225 上次博文我们讨论了DNS的基础,本次博文我们重点来看看如何配置一台DNS服务器. [本次博文的主要 ...

  4. Linux搭建基于BIND的DNS服务器

    Linux搭建基于BIND的DNS服务器   实验目标: 通过本实验掌握基于Linux的DNS服务器搭建. 实验步骤: 1.安装BIND 2.防火墙放通DNS服务 3.编辑BIND的主配置文件 4.编 ...

  5. 使用bind部署DNS主从服务器

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建主从DNS服务器的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需要查看相关软件版 ...

  6. centos DNS服务搭建 DNS原理 使用bind搭建DNS服务器 配置DNS转发 配置主从 安装dig工具 DHCP dhclient 各种域名解析记录 mydns DNS动态更新 第三十节课

    centos  DNS服务搭建  DNS原理  使用bind搭建DNS服务器 配置DNS转发 配置主从  安装dig工具  DHCP  dhclient  各种域名解析记录  mydns DNS动态更 ...

  7. 在Windows下安装BIND作为DNS服务器(模拟网站比较有用)

    本文参考了CU下的一篇帖子,感谢:) 1.下载BIND http://ftp.isc.org/isc/bind9/9.4.3/BIND9.4.3.zip 2.安装    下载回来是zip的压缩包,解压 ...

  8. bind域名dns解析及主从服务的配置

    bind域名dns解析及主从服务的配置 1.dns解析介绍     人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应 ...

  9. DNS与BIND介绍

    前言 DNS(Domain Name System),网域名称系统,是互联网上基础性的服务.DNS 将域名和网络服务器的 IP 地址相互映射,并将这些数据保存至 DNS 服务器.两台主机通信事实上是依 ...

随机推荐

  1. 客户端注册 Watcher 实现 ?

    1.调用 getData()/getChildren()/exist()三个 API,传入 Watcher 对象 2.标记请求 request,封装 Watcher 到 WatchRegistrati ...

  2. 学习zabbix(五)

    前言 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix组件主要分两个: zabbix-server和zabbix-agent.支持的监控协议有I ...

  3. js获取一周前日期

    项目中需要设定默认开始时间为一周前,结束时间为现在,现在写一下如何用js获取一周前日期. 1 var time=(new Date).getTime()-7*24*60*60*1000; 2 var ...

  4. apollo规划控制视频-13 motion planning with autonomous driving

  5. Linux系统下ifconfig命令使用及结果分析

    Linux下网卡命名规律:eth0,eth1.第一块以太网卡,第二块.lo为环回接口,它的IP地址固定为127.0.0.1,掩码8位.它代表你的机器本身. 1.ifconfig是查看网卡的信息. if ...

  6. Chrome 53 Beta一些有意思的改动

    原文链接: http://blog.chromium.org/2016...译者:Icarus邮箱:xdlrt0111@163.com 如果没有特殊说明的话,以下都是应用在Android,Chrome ...

  7. (SSM框架)实现小程序图片上传(配小程序源码)

    阅读本文约"2分钟" 又是一个开源小组件啦! 因为刚好做到这个小功能,所以就整理了一下,针对微信小程序的图片(文件)上传! 原业务是针对用户反馈的图片上传.(没错,本次还提供小程序 ...

  8. WordPress 网站开发“微信小程序“实战(二)

    原文链接:https://devework.com/wordpres...,转载请用明链注明来源,谢谢! 本文是"WordPress 开发微信小程序"系列的第二篇,本文记录的是开发 ...

  9. 来扯点ionic3[3] 页面的生命周期事件,也就是凡间所说的钩子

    首先要做一个诚挚的道歉,作为大四狗,因为升学的事情,断更两个月,所以要感谢各位仁慈的读者没有脱粉(好像也就50个粉丝).这一节,我们延续上一节制作的页面,来讨论声明周期钩子的事情. 以我的经验来看,多 ...

  10. js知识梳理6:关于函数的要点梳理(2)(作用域链和闭包)

    写在前面 注:这个系列是本人对js知识的一些梳理,其中不少内容来自书籍:Javascript高级程序设计第三版和JavaScript权威指南第六版,感谢它们的作者和译者.有发现什么问题的,欢迎留言指出 ...