热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

系统管理员之DHCP+DNS(bind)==DDNS

文章标题:系统管理员之DHCP+DNS(bind)DDNS。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  我们在办室的时候,有时会去访问别的机器,如果是在windows下,我们我数时候会用机器名去访问,因为netbios/wins会帮我们来把机器名转成IP的。下面给大家介绍一种用动态DNS来解析机器名的办法。不过,不是用的w2k的DDNS,而是用的Linux.
  
  准备:一台(或两台)Linux服务器,用来做DHCP server和DNS server。也可以把它做成两台服务器。
  
  安装:服务器的安装过程,请参考其它文档,记住把 dhcp 和 bind, bind-utils 装上就行了。
  
  配置:
  
  一、DHCP的配置:
  配置DHCP server 时很简单,可以参考 /usr/share/doc/dhcp-x.xx/dhcpd.conf.sample来做。也可以先把这个文件cp 到 /etc/dhcpd.conf,然后根据自己的需要做适当修改。下面贴出我的一个/etc/dhcpd.conf,供大家参考:
  
  ddns-update-style interim;
  ignore client-updates;
  
  key DHCP_UPDATER {
  algorithm HMAC-MD5;
  secret qhB++OR5yWo8BTXwk/m4ng;
  };
  
  zone bj.pnx. {
  primary 127.0.0.1;
  key DHCP_UPDATER;
  }
  
  zone 251.168.192.in-addr.arpa. {
  primary 127.0.0.1;
  key DHCP_UPDATER;
  }
  
  subnet 192.168.251.0 netmask 255.255.255.0 {
  range 192.168.251.100 192.168.251.200;
  # --- default gateway
  option routers         192.168.251.254;
  option subnet-mask       255.255.255.0;
  
  #    option nis-domain        "domain.org";
  option domain-name       "bj.pnx";
  option domain-name-servers   192.168.251.63,192.168.251.254;
  
  #    option time-offset       28800; # PRC Standard Time
  #    option ntp-servers       192.168.251.220;
  #    option netbios-name-servers   192.168.1.1;
  
  #    range dynamic-bootp 192.168.0.128 192.168.0.255;
  default-lease-time 21600;
  max-lease-time 43200;
  
  }
  
  几个要注意的地方:g
  1. "ddns-update-style"
  这个就是动态DNS的更新方式,有几个选项,我用的是interim,可以用 man dhcpd.conf找到另外的几个选项。
  
  2. "ignore client-updates"
  这个选项是不允许客户机更新DNS记录。当然,也可能允许,但会有一点问题。
  
  3. "key DHCP_UPDATER"
  这个是更新DNS的KEY,是必须的。其中algorithm 后的是生成key的算法,key的生成是用 "dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER"。
  
  4. "zone"
  要更新的zone,如果是本机就是DNS server,primay 就写127.0.0.1,要是其它机器是DNS server, 就写那台机器的IP。
  
  别的都是一般DNS该有的了,要注意的是一定要有 range 那一行,不然就分不了IP啦。
  
  配好以后,可以启动一下试试, service dhcpd start,如果没问题,把dhcpd改成开机就启动,chkconfig --level 2345 dhcpd on。
  
  二、bind(named)的配置。
  关于bind(named)配置的文章有很多了。这里只把与普通配置不同的地方写出来。
  下面给我的named.conf供大家参考:
  
  // generated by named-bootconf.pl
  
  options {
  directory "/var/named";
  /*
  * If there is a firewall between you and nameservers you want
  * to talk to, you might need to uncomment the query-source
  * directive below. Previous versions of BIND always asked
  * questions using port 53, but BIND 8.1 uses an unprivileged
  * port by default.
  */
  // forwarders { 192.168.1.254; };
  // query-source address * port 53;
  };
  
  //
  // a caching only nameserver config
  //
  controls {
  inet 127.0.0.1 allow { localhost; } keys { rndckey; };
  };
  
  key DHCP_UPDATER {
  algorithm HMAC-MD5;
  secret qhB++OR5yWo8BTXwk/m4ng;
  };
  
  zone "." IN {
  type hint;
  file "named.ca";
  };
  
  zone "localhost" IN {
  type master;
  file "localhost.zone";
  allow-update { none; };
  };
  
  zone "0.0.127.in-addr.arpa" IN {
  type master;
  file "named.local";
  allow-update { none; };
  };
  
  zone "1.168.192.in-addr.arpa" IN {
  type master;
  file "1.168.192.zone";
  allow-update { key DHCP_UPDATER; };
  };
  
  zone "test.com" IN {
  type master;
  file "test.com";
  allow-update { key DHCP_UPDATER; };
  };
  include "/etc/rndc.key";
  
  其中多了的是
  
  key DHCP_UPDATER {
  algorithm HMAC-MD5;
  secret qhB++OR5yWo8BTXwk/m4ng;
  };
  
  这就是更新dns要用的key,必须和dhcpd.conf里的一样。
  
  还有就是每个 zone 都可以用 key 来update了。
  
  这样就行了。然后启动一下试试吧。
  
  你就可以ping 机器名来找你同事的机器了。
  
  
推荐阅读
  • Python作为一种广泛使用的高级编程语言,以其简洁的语法、强大的功能和丰富的库支持著称。本文将详细介绍Python的主要特点及其在现代软件开发中的应用。 ... [详细]
  • Java基础概念与核心特性解析
    本文深入探讨了Java编程语言的基本特点,包括其简洁性、面向对象设计、跨平台能力以及多线程支持等关键特性。此外,文章还详细分析了JVM、JDK和JRE之间的区别,并讨论了字节码的概念及其优势。 ... [详细]
  • 基于函数实现的进制转换工具
    本文介绍了一种利用函数实现不同进制数(二进制、八进制、十进制)之间转换的方法。包括了程序的运行效果展示、所使用的主要函数解析、以及如何验证用户输入的合法性。整个项目仅使用了两个全局变量来存储用户的选项和输入的数值。 ... [详细]
  • 本文详细介绍了在PHP中如何创建新文件以及如何使自定义函数在整个项目中全局可用的方法,包括最新的实践技巧。 ... [详细]
  • CGroups: 资源管理和控制
    CGroups(Control Groups)是Linux内核提供的一个功能,旨在限制、记录和隔离进程组使用的物理资源,如CPU、内存和I/O等。它通过精细的资源管理,支持现代容器技术如Docker的资源限制需求。 ... [详细]
  • Windows 平台 Ruby on Rails 安装指南
    本文详细介绍如何在 Windows 系统上安装 Ruby 及其开发框架 Rails,包括必要的环境配置和组件安装。 ... [详细]
  • 本文详细探讨了电脑重装操作系统后无法访问网络邻居的原因及解决方案,包括检查网络配置、权限设置等多个方面。 ... [详细]
  • 本文介绍如何利用Python中的Epoll机制构建一个高效的Web服务器,该服务器能够处理多个并发连接,并向每个连接的客户端返回预定义的响应文本。通过使用Epoll,服务器可以实现高性能的I/O多路复用。 ... [详细]
  • 本文探讨如何通过贪心算法有效地安排一系列活动,确保使用最少数量的会场来完成所有活动的调度。 ... [详细]
  • 本文探讨了为何采用RESTful架构及其优势,特别是在现代Web应用开发中的重要性。通过前后端分离和统一接口设计,RESTful API能够提高开发效率,支持多种客户端,并简化维护。 ... [详细]
  • 本文详细探讨了在Windows Server 2003环境下遇到MySQL连接失败(错误代码10061)的解决方案,包括通过卸载特定的Windows更新和调整系统注册表设置的方法。 ... [详细]
  • Linux环境下Memcached安装指南
    本文详细介绍如何在Linux虚拟机上安装Memcached,包括必要的依赖库安装,以及使用Xshell进行文件传输的具体步骤。 ... [详细]
  • 解决getallheaders函数导致的500错误及8种服务器性能优化策略
    本文探讨了解决getallheaders函数引起的服务器500错误的方法,并介绍八种有效的服务器性能优化技术,包括内存数据库的应用、Spark RDD的使用、缓存策略的实施、SSD的引入、数据库优化、IO模型的选择、多核处理策略以及分布式部署方案。 ... [详细]
  • 使用Adobe Illustrator打造独特的家族徽章:牡鹿图腾设计教程
    本文详细介绍了一种基于《权力的游戏》灵感,运用Adobe Illustrator创作独特家族图腾——牡鹿徽章的方法。本教程不仅展示了具体的步骤,还提供了多种技巧,帮助读者创作出既具个人特色又符合设计原则的作品。 ... [详细]
  • 本文介绍了如何在 Linux 系统上构建网络路由器,特别关注于使用 Zebra 软件实现动态路由功能。通过具体的案例,展示了如何配置 RIP 和 OSPF 协议,以及如何利用多路由器查看工具(MRLG)监控网络状态。 ... [详细]
author-avatar
鲁有军_644
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有