Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->网络应用 ->服务器 ->正文

用BIND架设DDNS Server提供DDNS服务

来源: 作者: 时间:2007-04-11 点击: [收藏] [投稿]

1.前言

目前动态 DNS 两大主流,一个是 BIND (ISC),另一个就是套接 DB 的 DNS 如 PowerDNS (或 mydns)

等,两种方式各有好坏,主要是因为 BIND 会有一些复杂性,但效果非常好,而 PowerDNS 则是很简单,

但相对的它不能承受大量查询,主要原因在于数据库上先天的限制. 本文主要为介绍 BIND 之动态

DNS 做法,而这个做法之最重要重点则在于nsupdate 这个指令及 IXFR (incremental zone transfer

request),是不同于传统的 AXFR (full zone transfer),IXFR 在做 Zone Transfer (DNS 的同步机制)

时,会以差异化的部份进行同步, 而 AXFR 则是以整个 Zone 进行同步.DDNS 主要由 RFC 2136 构成,

建议若您要对 DDNS 有一定深入的了解,可以阅读这篇 RFC 以了解更多重要的信息

(1034 1035 1995 是 2136 的基础)

本文适用于对 DNS 巳有一定了解的朋友,若是不甚清楚建议您可先参考 TWNIC 所做的讲义:

http://dns-learning.twnic.net.tw/DNS94/

如果你想对 nsupdate + key 的方法有更深入的了解可以参考

http://www.study-area.org/tips/tipsfr1.htm

或参考 isc bind 的文件有最详细的解说

http://www.isc.org/sw/bind/arm93/Bv9ARM.pdf

本文不讨论 view 的情形,若是 view 情形您必需从 view 的 match-client 去更新或是使用不同

的 key,所以建议您多参考 isb bind 的文件,虽然辛苦些,但数据绝对是最官方最正确的

2. 必要的信息及知识

本文的范例以 Shell Script 做成,重点在于原理,采用什么工具或做法完全视您个人的能力.以下

就一些重点进行说明.

2.1 BIND 动态更新

基本上在 BIND8,BIND9 都是支持 nsupdate 的,但这里面要注意的是 BIND8 在8.3.X 后才支援

IXFR,而 BIND9 则都支持,所以若您的 Server 在 8.3.0 前的版本,那就不建议了,更何况这个以

前的版本多多少少都有许多安全性的问题.

2.1.1 nsupdate:

bind 要开 allow-update 选项,让你的程序可以来执行更新指令,allow-update 选项可以是 IP 或

key,而本文仅就 IP进行介绍,若用 Key 对有些朋友来说可能会变得稍复杂些了

CODE:[Copy to clipboard]# named.conf

# 其它略

zone "dyndns.twnic.tw" {

type master;

file "dyndns.twnic.tw";

allow-update {127.0.0.1;}; # 开放 127.0.0.1 进行动态更新

allow-transfer { slave_ip;127.0.0.1;}; # slave 主机,可能一部或多部,若无请写 none

};

以上是开放让 127.0.0.1 进行动态更新,动态更新有其指令,详细您可看看 nsupdate man page

(man nsupdate),以下仅以最常用的进行说明:

CODE:[Copy to clipboard]#nsupdate

[root@eai1 dyndns]# nsupdate

> server 127.0.0.1

> zone dyndns.twnic.tw

> update delete user1.dyndns.twnic.tw A 211.72.210.249

> update add user1.dyndns.twnic.tw A 211.72.210.251

ttl 'A': not a valid number # 这个例子是错误示范,加一笔记录要有 TTL 值

> update add user1.dyndns.twnic.tw 60 A 211.72.210.251

> show

Outgoing update query:

;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0

;; flags: ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0

;; UPDATE SECTION:

user1.dyndns.twnic.tw. 0 NONE A 211.72.210.249

user1.dyndns.twnic.tw. 60 IN A 211.72.210.251

> send

> quit

CODE:[Copy to clipboard]server 指向某一台 NameServer 进行 update 操作

zone 修改某个 zone file

update delete 进行 update 的 delete 动作,这个指令格式是

update delete FQDN TYPE RDATA,如果有多笔相同的 A

记录或不同的 MX 记录要删除某一笔需把 RDATA 补上,

若没有 RDATA 则表示这个 FQDN 的这个 TYPE 都要删除

(TYPE 即是 A,MX,PTR,SOA,NS..等,RDATA 就是 TYPE 后

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:Linux CollegeLinux LiveServer 发布   下一篇:在Enterprise Server上配置SCSI磁带机

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号