user1.dyndns.twnic.tw. 60 IN A 211.72.210.248
user1.dyndns.twnic.tw. 60 IN MX 10 user1.dyndns.twnic.tw.
# 以下略
...
2.设定 NameServer 仅进行差异化的同步
Master/Slave 要进行 zone file 的同步,而 ddns server 若只有一部是可以不用考虑这些问题的,但是若有两部以上的 DNS Server, 就需要考虑到同步的进行方式,若 zone file 的总数据量小,采用什么同步方式是无所谓的,但若数据量多,或是经常处在变动状况,那差异化的同步就会显得很重要,因为它可以让所有的 DNS 在短时间内全部同步完成,BIND 支持 IXFR 后,其预设即是采用 IXFR, 若没有 IXFR (update) 时,则采用 AXFR,所以不需要对 IXFR 进行额外设定,但为使大家了解其参数,本处还是举例来进行说明,好让大家能够更了解
CODE:[Copy to clipboard]# master DNS's named.conf
key "rndc-key" {
algorithm hmac-md5;
secret "HpXtFRFdLaRPFjpZokIwusyezyyRNjxhcafCfmktWNyGkDFzHAXlpTZQtVLc";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
allow-transfer { none; };
provide-ixfr yes; # 提供 slave 主机以 IXFR 同步,default yes
request-ixfr yes; # slave 以 IXFR 向 master 进行同步,default yes
recursion no; # 不允许递归查询
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
zone "." {
type hint;
file "named.ca";
};
zone "dyndns.twnic.tw" {
type master;
file "dyndns.twnic.tw";
max-journal-size 500k; # 设定日志文件大小
allow-transfer { 203.73.24.204;127.0.0.1;}; # 可做 ixfr/axfr 的来源 IP,必需写上 slave,
# 127.0.0.1 是方使我们自己查看 zone file 现况
also-notify {203.73.24.205;211.72.210.251}; # 额外的同步主机,这可能是 hot site 备份主机
allow-update { 127.0.0.1;}; # 允许动态更新的来源
};
上述的东西相信只要对 BIND DNS 有一定了解的朋友应该都是没有问题的,较不常出现的项目我都加上了的批注以利大家了解,而 slave 的设法都同于 master, 只有在 zone 的部份稍有不同:
CODE:[Copy to clipboard]# slave DNS's named.conf
# 其它设定皆同上,只有 zone ...稍有不同,同于一般的 slave zone,不需要再开 allow-update (default none)
zone "dyndns.twnic.tw" {
type slave;
masters {211.72.210.249;};
file "dyndns.twnic.tw";
allow-transfer { none;};
};
所以从上述我们可以知道 DDNS for Master/Slave 您只要对 master 进行 update,每次的 update 送出 (send) 会使该zone 的序号加一,只要 zone 有更新 , dns 会送出 notify 讯息给所有的 NS 主机(NS 记录上所列的名称服务器),及可能的 also-notify 对象,使 slave 主机知道要进行同步,同步时优先采用 IXFR,若 master 不支持 IXFR 则改使用 AXFR,以达到即使更新,及时同步的效果
此外,有些做 DDNS 的公司可能对 IXFR 不了解,而是把所有的 zone type 都设成了 MASTER,然后对这些 NameServer进行 nsupdate , 这种做法也是可以的,不过中间若漏了一步或那一台少做了一件事,那两边的数据就会不一致,导致可能同一个名称会有不同的解析结果 (例如 gnway.net 做法)
3. DDNS 的前端及后台控制范例
说是范例主要是让大家参考原理,并没有必要一定都用我的方式,只要前面讲的东西您可以了解,程控的部份仅是末节,以下仅列出我所用的方式供大家参考
3.1 MYSQL table
主要由三个表构成,分别为 RR (Resource Record), RR_LOG (旧资料,建议您依状况适当保存),USER (user 认证)
CODE:[Copy to clipboard]CREATE TABLE RR (
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一页 1 2 34 5 6 7 下一页
上一篇:Linux CollegeLinux LiveServer 发布 下一篇:在Enterprise Server上配置SCSI磁带机
|