建立内部动态DNS服务器

因为各种不同的原因,企业内部往往会有多台DHCP服务器,负责分发IP地址,给内部网络管理带来不便。本文将介绍如何在企业内部用BIND9建立内部DDNS服务,解决网络管理不便的问题。

假设企业内部有三台DHCP服务器负责为三个子域分发IP地址,三个子域分别是rd.lswin.cn(192.168.230.0/24)、ga.lswin.cn(192.168.231.0/24)和sm.lswin.cn(192.168.232.0/24)。

示例中,DDNS服务器的名称为ddns.lswin.cn

安装 /配置BIND9

安装 BIND9

 root@ddns:~# apt-get update && apt-get install bind9

配置BIND9

修改/etc/bind/named.conf.local 文件

//
// Do any local configuration here
//// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";//
// ___***___ Own DynDNS
//
include "/etc/bind/ddns-keys.conf";//
// rd.lswin.cn zone 配置
//
zone "rd.lswin.cn" {type master;file "/var/lib/bind/rd.lswin.cn.zone";allow-update { key rd-lswin-cn.;};notify no;
};// Reverse DNS 的定义. 用您的子域地址替代 230.168.192
zone "230.168.192.in-addr.arpa" {type master;file "/var/lib/bind/rd.lswin.cn.rev.zone";allow-update { key rd-lswin-cn.; };
};//
// ga.lswin.cn zone 配置
//
zone "ga.lswin.cn" {type master;file "/var/lib/bind/ga.lswin.cn.zone";allow-update { key ga-lswin-cn.;};notify no;
};// Reverse DNS 的定义. 用您的子域地址替代 231.168.192
zone "231.168.192.in-addr.arpa" {type master;file "/var/lib/bind/ga.lswin.cn.rev.zone";allow-update { key ga-lswin-cn.; };
};//
// sm.lswin.cn zone 配置
//
zone "sm.lswin.cn" {type master;file "/var/lib/bind/sm.lswin.cn.zone";allow-update { key sm-lswin-cn.;};notify no;
};// Reverse DNS 的定义. 用您的子域地址替代 232.168.192
zone "232.168.192.in-addr.arpa" {type master;file "/var/lib/bind/sm.lswin.cn.rev.zone";allow-update { key sm-lswin-cn.; };
};

为子域配置库文件

/var/lib/bind/rd.lswin.cn.zone

$ORIGIN .
$TTL 907200     ; 1 week 3 days 12 hours
rd.lswin.cn             IN SOA  ns1.rd.lswin.cn. (2014071478 ; serial28800      ; refresh (8 hours)3600       ; retry (1 hour)604800     ; expire (1 week)38400      ; minimum (10 hours 40 minutes))NS      ns1.rd.lswin.cn.
$ORIGIN rd.lswin.cn.
ns1                     A       192.168.230.1

/var/lib/bind/rd.lswin.cn.rev.zone

$ORIGIN .
$TTL 907200     ; 1 week 3 days 12 hours
230.168.192.in-addr.arpa IN SOA ns1.rd.lswin.cn. (2014071452 ; serial28800      ; refresh (8 hours)604800     ; retry (1 week)604800     ; expire (1 week)86400      ; minimum (1 day))NS      ns1.rd.lswin.cn.
$ORIGIN 230.168.192.in-addr.arpa.
1                       PTR     rd.lswin.cn.PTR     ns1.rd.lswin.cn.PTR     admin.rd.lswin.cn.

其他二个zone的和这个配置基本一致,只需修改IP地址和子域名即可。

为子域配置生成密匙
首先为三个子域生成不同的密匙,然后将生成的密匙放入密匙文件 /etc/bind/ddns-keys.conf

root@ddns:~# tsig-keygen -a hmac-sha512 rd-lswin-cn.
root@ddns:~# tsig-keygen -a hmac-sha512 rd-lswin-cn.
root@ddns:~# tsig-keygen -a hmac-sha512 rd-lswin-cn.
key "rd-lswin-cn." {algorithm hmac-sha512;secret "dWZM3Go6hz7AL/VX3ihaQpTgwyigx27hIoKgxVooYblnFkgKTPjBiUhScM+eOpO4PrD1EgYwCIc/zb3WzoUadg==";
};
key "ga-lswin-cn." {algorithm hmac-sha512;secret "0avlbJzkK0DWB0XZbYDjK5Q7gAjmbTCPliHaV19di0KnH7lKitclqOF/l/S8SP5BFSUbpDQTen0OY/9mvcfGbA==";
};
key "sm-lswin-cn." {algorithm hmac-sha512;secret "HxyVoX1/i5293TD3fXUxRLyuyjofdnKUy3fsvamB4myAAva4etoa+4rQliXb2+PoVpLxOyOkwN8ksY5ypioG1A==";
};

检查配置/重启BIND9

检查配置

root@ddns:~# named-checkconf
root@ddns:~# named-checkzone rd.lswin.cn /var/lib/bind/rd.lswin.cn.zone
zone rd.lswin.cn/IN: loaded serial 2014071478
OK
root@ddns:~# named-checkzone ga.lswin.cn /var/lib/bind/ga.lswin.cn.zone
zone ga.lswin.cn/IN: loaded serial 2014071478
OK
root@ddns:~# named-checkzone sm.lswin.cn /var/lib/bind/sm.lswin.cn.zone
zone sm.lswin.cn/IN: loaded serial 2014071478
OK
root@ddns:~#

如没问题,就可以重启BIND9。

root@ddns:~# service bind9 restart
root@ddns:~#

测试动态更新功能

三组配置完全相似,我们只测试一组配置。

建立key文件 ga-lswin-cn.key
从现有配置中,将ga.lswin.cn的key复制过来。

key "ga-lswin-cn." {algorithm hmac-sha512;secret "0avlbJzkK0DWB0XZbYDjK5Q7gAjmbTCPliHaV19di0KnH7lKitclqOF/l/S8SP5BFSUbpDQTen0OY/9mvcfGbA==";
};

测试正向DDNS添加

root@ddns:~# nslookup test.ga.lswin.cn ddns.lswin.cn
Server:     ddns.lswin.cn
Address:    192.168.220.109#53** server can't find test.ga.lswin.cn: NXDOMAIN
root@ddns:~# nsupdate -k ./ga-lswin-cn.key
> server ddns.lswin.cn
> zone ga.lswin.cn
> update add test.ga.lswin.cn 7200 IN A 192.168.231.123
> show
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:      0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; ZONE SECTION:
;ga.lswin.cn.           IN  SOA;; UPDATE SECTION:
test.ga.lswin.cn.   7200    IN  A   192.168.231.123> send
> quit
root@ddns:~# nslookup test.ga.lswin.cn ddns.lswin.cn
Server:     ddns.lswin.cn
Address:    192.168.220.109#53Name: test.ga.lswin.cn
Address: 192.168.231.123root@ddns:~#

记录 test.ga.lswin.cn 已成功加入DDNS。

测试正向DDNS删除

root@ddns:~#
root@ddns:~# nslookup test.ga.lswin.cn ddns.lswin.cn
Server:     ddns.lswin.cn
Address:    192.168.220.109#53Name: test.ga.lswin.cn
Address: 192.168.231.123root@ddns:~# nsupdate -k ./ga-lswin-cn.key
> server ddns.lswin.cn
> zone ga.lswin.cn
> update delete test.ga.lswin.cn A
> send
> quit
root@ddns:~# nslookup test.ga.lswin.cn ddns.lswin.cn
Server:     ddns.lswin.cn
Address:    192.168.220.109#53** server can't find test.ga.lswin.cn: NXDOMAINroot@ddns:~#

记录test.ga.lswin.cn已从DDNS中成功删除。

**测试逆向DDNS添加**

root@ddns:~#
root@ddns:~# nslookup 192.168.231.123 ddns.lswin.cn
** server can't find 123.231.168.192.in-addr.arpa: NXDOMAINroot@ddns:~# nsupdate -k ./ga-lswin-cn.key
> server ddns.lswin.cn
> update add 123.231.168.192.in-addr.arpa. 7200 PTR test.ga.lswin.cn
> send
> quit
root@ddns:~# nslookup 192.168.231.123 ddns.lswin.cn
123.231.168.192.in-addr.arpa    name = test.ga.lswin.cn.root@ddns:~#

192.168.231.123已成功添加。

**测试逆向DDNS删除**

root@ddns:~# nslookup 192.168.231.123 ddns.lswin.cn
123.231.168.192.in-addr.arpa    name = test.ga.lswin.cn.root@ddns:~# nsupdate -k ./ga-lswin-cn.key
> server ddns.lswin.cn
> update delete 123.231.168.192.in-addr.arpa. PTR
> send
> quit
root@ddns:~# nslookup 192.168.231.123 ddns.lswin.cn
** server can't find 123.231.168.192.in-addr.arpa: NXDOMAINroot@ddns:~#

192.168.231.123已成功删除。

配置DHCP服务器推送更新

在我们的系统中,只有下列二种DHCPD,所以只有以下二种示例。

假设:ddns.lswin.cn的IP地址是192.168.220.109。

ISC DHCPD

如子网 ga.lswin.cn子网上的DHCPD是ISC的DHCPD,在dhcpd.conf中加上下列内容即可:

# Turn on DDNS
ddns-updates on;
update-static-leases on;
# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style standard;
update-static-leases on;
key "ga-lswin-cn." {algorithm hmac-sha512;secret "0avlbJzkK0DWB0XZbYDjK5Q7gAjmbTCPliHaV19di0KnH7lKitclqOF/l/S8SP5BFSUbpDQTen0OY/9mvcfGbA==";
};
#
# update ga.lswin.cn DNS zones and its reverse zone
zone ga.lswin.cn. {primary 192.168.220.109;key ga-lswin-cn.;
}
zone 231.168.192.in-addr.arpa. {primary 192.168.220.109;key ga-lswin-cn.;
}

OPNSense

如子网 ga.lswin.cn子网上的DHCPD是来自OPNSense,在dhcpd.conf中加上下列内容即可:


pfSense的配置方式一样。


示例中BIND9的options配置文件:
/etc/bind/named.conf.options

/
// for security, only in acl can inquery this DNS
//
// --------------------- ACLs -------------------------
// 允许使用该DNS的IP列表
acl internal {// 本地127.0.0.1;// CIDR of 192.168.0.0 - 192.168.255.255192.168.0.0/16;// CIDR of 10.10.0.0 - 10.10.0.25510.10.0.0/24;
};// ------------------- Options -------------------------
options {directory "/var/cache/bind";// 使用114.114.114.114 和 阿里公共DNS做外部DNSforwarders {// 114 DNS114.114.114.114;// Ali's DNS223.5.5.5;};// 安全设置,只允许ACL中的IP访问allow-query {internal;};allow-query-cache {internal;};// enables recursive queries but on from our local nets and local hosts// Do not allow externals to do recursive queries.recursion yes;allow-recursion {internal;};allow-transfer {internal;};//========================================================================// If BIND logs error messages about the root key being expired,// you will need to update your keys.  See https://www.isc.org/bind-keys//========================================================================// turn off zone encryption. The auto flag still generates// warnings in the log filednssec-enable no;//dnssec-enable yes;//dnssec-validation auto;auth-nxdomain no;    # conform to RFC1035listen-on-v6 { none; };
};

内部DDNS服务器已经建立完成,DHCP服务器只要将内部主DNS服务器指向ddns.lswin.cn即可。采用内部DDNS服务,可以给内网的管理带来很大方便,如服务器的备份、迁移等等。

建立内部动态DNS服务器相关推荐

  1. 建立自己的dns服务器的用途

    做互联网服务,很多内部运用可以使用IP.但是当这个IP改变时,修改配置比较麻烦,所以我们一般采用域名.我们一般采用主域名加上很多前缀来指定不同业务的IP. 我经常在一年内遇到两三次dns故障,就是服务 ...

  2. 用AdGuard Home搭建一个内部的DNS服务器,开启局域网内无广告和追踪的浏览体验

    为什么使用对象不喜欢广告? 我们在看电视的时候不开会员就有90秒的小广告,刷朋友圈的时候会有汽车.欧巴的互动广告,看新闻头条的时候有贴片广告,看抖音的时候也会有带货的广告,小网站上也还有 * 感荷官在 ...

  3. 架设动态 DNS 服务器: 让你成为 ISP 啦

    http://vbird.dic.ksu.edu.tw/linux_server/0350dns_6.php#ddns http://www.study-area.org/tips/ddns.htm ...

  4. dns服务器的配置与管理

    dns服务器的配置与管理                                          dns服务器的配置与管理 1. dns 的概述 当我们查询网站的时候你在浏览器上输入域名的时 ...

  5. 深入一步研究DNS服务器

    计算机在网络上进行通讯时只能识别如"201.51.0.73"之类的IP地址,而不能认识如[url]www.ccidnet.com[/url]之类的域名,但是,当打开浏览器,在地址栏 ...

  6. 鸟哥的Linux私房菜(服务器)- 第十九章、主机名控制者: DNS 服务器

    第十九章.主机名控制者: DNS 服务器 最近更新日期:2011/08/05 我们都知道,在『记忆』的角色上,人脑总是不如计算机的,而人们对文字的印象又比数字高.因此,想要使用纯粹的 TCP/IP 来 ...

  7. 第十九章、主机名控制者: DNS 服务器

    我们都知道,在『记忆』的角色上,人脑总是不如计算机的,而人们对文字的印象又比数字高.因此,想要使用纯粹的 TCP/IP 来上网,实在不好记忆又很麻烦.为了适应人类的使用习惯,因此一个名为 DNS 的服 ...

  8. 什么是动态DNS 动态DNS有什么用

    1.核心思想 配置动态DNS服务器的核心思想是:在DNS服务器上运行多个BIND,每个BIND为来自不同区域的用户提供解析,因此每个BIND都应具有不同的配置文件和域文件,并且分别监听在不同的端口.在 ...

  9. win2000服务器 网站设置,服务器_Win2000中DNS服务器的设置,一、DNS概述 计算机在网 - phpStudy...

    Win2000中DNS服务器的设置 一.DNS概述 计算机在网络上通讯时只能识别如"192.168.0.48"之类的数字地址,那为什么当我们打开浏览器,在地址栏中输入如" ...

最新文章

  1. mongodb基础应用
  2. 无序列表属性 隐藏方式 JS简介
  3. 简单android音乐播放器课程设计,android音乐播放器课程设计报告.doc
  4. nuxt服务端php,nuxt服务端部署上线
  5. 搭载Apple芯片的Mac如何使用macOS恢复?
  6. 数学建模——五步方法
  7. 数据分析之FineReport
  8. 老哥,Java 中 final 和 effectively final 到底有什么区别?
  9. 原来收汇宝真的是很烂
  10. matlab 去除最大值,TRIMMEAN 应用(求去掉最大或和最小值后的平均值的方法)
  11. 软件漏洞之Zabbix
  12. 几组超神奇的网页应用代码要你在IE浏览器任意打开一个网站,然后在浏览器上输入如下代码神奇的代码,可随意修改复制页面内容!
  13. Python的excel操作——PasteSpecial实现选择性粘贴自动化
  14. Java小白的入门面试笔记--线程局部变量之灵魂四问
  15. java_home的配置
  16. 个人收款平台 XorPay 对比 Payjs
  17. 2015去哪儿网校园招聘笔试题:寻找字符串的差异
  18. 关于pthread_mutex_t的初始化 http://www.blogbus.com/kavine-logs/46146510.html
  19. 机械制造作业考研题目答案分享——工件的定位
  20. AI行业精选日报_人工智能(1016)

热门文章

  1. 应用交付厂商F5与微软联合解决方案怎么样?有什么作用,效果如何?
  2. week03-面向对象
  3. React学习(6)-React中组件的数据-state
  4. Oracle导入dmp 文件
  5. 图像处理中的距离含义
  6. c++中的smart pointer四个智能指针简单介绍
  7. Docker Hub + Github 自动化构建docker镜像
  8. SLAP原则——单一抽象层次原则
  9. Logstash:Grok filter 入门
  10. iOS开发系列--IOS程序开发概览ios基础