免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5298 | 回复: 0
打印 上一主题 下一主题

DHCP + DNS (bind) == DDNS [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-28 07:43 |只看该作者 |倒序浏览
[zt]\n我们在办室的时候,有时会去访问别的机器,如果是在windows下,我们有时候会用机器名去访问,因为netbios/wins会帮我们来把机器名转成IP的。下面给大家介绍一种用动态DNS来解析机器名的办法。不过,不是用的w2k的DDNS,而是用的Linux. \n\n准备:一台(或两台)Linux服务器,用来做DHCP server和DNS server。也可以把它做成两台服务器。 \n\n安装:服务器的安装过程,请参考其它文档,记住把 dhcp 和 bind, bind-utils 装上就行了。 \n\n配置: \n\n一、DHCP的配置: \n\n配置DHCP server 时很简单,可以参考 /usr/share/doc/dhcp-x.xx/dhcpd.conf.sample来做。也可以先把这个文件cp 到 /etc/dhcpd.conf,然后根据自己的需要做适当修改。下面贴出我的一个/etc/dhcpd.conf,供大家参考: \n[code:1:d8a5943397] \n   ddns-update-style interim; \n   ignore client-updates; \n\n   key DHCP_UPDATER { \n           algorithm HMAC-MD5; \n           secret  qhB++OR5yWo8BTXwk/m4ng; \n   }; \n\n   zone bj.pnx. { \n           primary 127.0.0.1; \n           key DHCP_UPDATER; \n   } \n\n   zone 251.168.192.in-addr.arpa. { \n           primary 127.0.0.1; \n           key DHCP_UPDATER; \n   } \n\n   subnet 192.168.251.0 netmask 255.255.255.0 { \n           range 192.168.251.100 192.168.251.200; \n   # --- default gateway \n           option routers                  192.168.251.254; \n           option subnet-mask              255.255.255.0; \n\n   #       option nis-domain               \"domain.org\"; \n           option domain-name              \"bj.pnx\"; \n           option domain-name-servers      192.168.251.63,192.168.251.254; \n\n   #       option time-offset              28800;  # PRC Standard Time \n   #       option ntp-servers              192.168.251.220; \n   #       option netbios-name-servers     192.168.1.1; \n\n   #       range dynamic-bootp 192.168.0.128 192.168.0.255; \n           default-lease-time 21600; \n           max-lease-time 43200; \n   \n   }   \n[/code:1:d8a5943397] \n\n几个要注意的地方: \n1. \"ddns-update-style\" \n   这个就是动态DNS的更新方式,有几个选项,我用的是interim,可以用 man dhcpd.conf找到另外的几个选项。 \n\n2. \"ignore client-updates\" \n   这个选项是不允许客户机更新DNS记录。当然,也可能允许,但会有一点问题。 \n\n3. \"key DHCP_UPDATER\" \n   这个是更新DNS的KEY,是必须的。其中algorithm 后的是生成key的算法,key的生成是用 \"dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER\"。 \n    \n4. \"zone\" \n   要更新的zone,如果是本机就是DNS server,primay 就写127.0.0.1,要是其它机器是DNS server, 就写那台机器的IP。 \n\n别的都是一般DNS该有的了,要注意的是一定要有 range 那一行,不然就分不了IP啦。 \n\n配好以后,可以启动一下试试, service dhcpd start,如果没问题,把dhcpd改成开机就启动,chkconfig --level 2345  dhcpd on。 \n\n二、bind(named)的配置。 \n\n关于bind(named)配置的文章有很多了。这里只把与普通配置不同的地方写出来。 \n下面给我的named.conf供大家参考: \n[code:1:d8a5943397] \n   // generated by named-bootconf.pl \n\n   options { \n   directory \"/var/named\"; \n   /* \n    * If there is a firewall between you and nameservers you want \n    * to talk to, you might need to uncomment the query-source \n    * directive below.  Previous versions of BIND always asked \n    * questions using port 53, but BIND 8.1 uses an unprivileged \n    * port by default. \n    */ \n   // forwarders { 192.168.1.254; }; \n    // query-source address * port 53; \n   }; \n\n   //  \n   // a caching only nameserver config \n   //  \n   controls { \n   inet 127.0.0.1 allow { localhost; } keys { rndckey; }; \n   }; \n\n   key DHCP_UPDATER { \n    algorithm HMAC-MD5; \n    secret qhB++OR5yWo8BTXwk/m4ng; \n   }; \n\n   zone \".\" IN { \n    type hint; \n    file \"named.ca\"; \n   }; \n\n   zone \"localhost\" IN { \n   type master; \n   file \"localhost.zone\"; \n   allow-update { none; }; \n   }; \n\n   zone \"0.0.127.in-addr.arpa\" IN { \n   type master; \n    file \"named.local\"; \n   allow-update { none; }; \n   }; \n\n   zone \"1.168.192.in-addr.arpa\" IN { \n   type master; \n   file \"1.168.192.zone\"; \n   allow-update { key DHCP_UPDATER; }; \n   }; \n\n   zone \"test.com\" IN { \n    type master; \n   file \"test.com\"; \n   allow-update { key DHCP_UPDATER; }; \n   }; \n   include \"/etc/rndc.key\"; \n[/code:1:d8a5943397] \n\n其中多了的是 \n[code:1:d8a5943397] \n   key DHCP_UPDATER { \n    algorithm HMAC-MD5; \n    secret qhB++OR5yWo8BTXwk/m4ng; \n   }; \n[/code:1:d8a5943397] \n这就是更新dns要用的key,必须和dhcpd.conf里的一样。 \n\n还有就是每个 zone 都可以用 key 来update了。 \n\n这样就行了。然后启动一下试试吧。 \n\n你就可以ping 机器名来找你同事的机器了。 \n\n本人只在windows客户机上试验过,Linux好象会有一点问题。哪位有兴趣,共同研究一下。 \n\n更新一下: \n[code:1:d8a5943397] \n#===/etc/dhclient.conf for linux ======= \nsend host-name \"your host name\"; \nrequest subnet-mask, broadcast-address, routers, \n        domain-name, domain-name-servers; \nrequire subnet-mask, domain-name-servers; \ntimeout 60; \nretry 60; \nreboot 10; \nselect-timeout 5; \ninitial-interval 2; \nscript \"/sbin/dhclient-script\";
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP