设为首页 收藏本站
查看: 1170|回复: 0

[经验分享] CentOS 7实现DNS+DHCP动态更新

[复制链接]

尚未签到

发表于 2018-4-26 13:46:49 | 显示全部楼层 |阅读模式
  windows域里有一个功能,dhcp把新分发的ip数据发给DNS服务器,这样只要知道一个人的电脑名字就可以很方便的远程。
  linux当然也能很好的实现类似的功能。man 5 dhcpd.conf 有详细描述。
  昨天运维帮组织线下的沙龙,又拍云的运维总监邵海杨先生分享了一句“千金难买早知道”。是啊,就在实现动态更新的功能上,在网上找了不少博客,照着做又遇到各种问题,最后不不知道到底什么原理实现的。早知道认真看一下man,问题早解决了,对实现的原理也理解得深些。所以,在这个信息爆炸的时代,很多时候真的互联网没有让人更聪明,反而大量的信息经常把人淹没了。技术,还是需要静下心来去钻研的。
  dhcp和dns的基本配置资料比较完善,此处不再赘述。有心的朋友认真看一下man 5 dhcpd.conf,瞧一眼下面配置中标红的部分,相信就能搞定了。
  另外分享一个dns chroot的流程,先安装 bind,调通named,然后再安装bind-chroot
  执行/usr/libexec/setup-named-chroot.sh /var/named/chroot on
  停用named,启用named-chroot即可
  systemctl disabled named ; systemctl stop named
  systemctl enable named-chroot;systemctl start named-chroot
[root@pxe ~]# cat /etc/dhcp/dhcpd.conf   
        ddns-update-style interim;     
        ddns-updates on;      
        do-forward-updates on;      
        allow client-updates;      

        allow bootp;   
        allow booting;   
        #allow client-updates;

  option space Cisco_LWAPP_AP;   
     option Cisco_LWAPP_AP.server-address code 241 = array of ip-address;   
     option space pxelinux;   
    option pxelinux.magic code 208 = string;   
    option pxelinux.configfile code 209 = text;   
    option pxelinux.pathprefix code 210 = text;   
   option pxelinux.reboottime code 211 = unsigned integer 32;   
   option architecture-type code 93 = unsigned integer 16;
  subnet 192.168.1.0 netmask 255.255.255.0 {   
     authoritative;   
     option routers 192.168.1.1;   
     option subnet-mask 255.255.255.0;   
     option broadcast-address 192.168.1.255;   
     option domain-name "it.lab";   
     option domain-name-servers 192.168.1.200;   
     range dynamic-bootp 192.168.1.100 192.168.1.199;   
        key SEC_DDNS {     
        algorithm hmac-md5;      
        secret 7ObhTIhKeDFMR2SbbS5s8A==;      
        };      
        ddns-domainname "it.lab";      
        zone it.lab.{      
        primary 192.168.1.200;      
        key SEC_DDNS;      
        }      
        zone 1.168.192.in-addr.arpa.{      
        primary 192.168.1.200;      
        key SEC_DDNS;      
        }      
        default-lease-time 600;   
        max-lease-time 7200;
  class "pxeclients" {   
      match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";   
      next-server 192.168.1.200;
  if option architecture-type = 00:07 {   
        filename "uefi/syslinux.efi";      }   
        else {   
        filename "bios/pxelinux.0";      }
  #filename "pxelinux.0";      }   
         }
  }   

[root@pxe ~]# cat /etc/named.conf   
//   
// named.conf   
//   
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS   
// server as a caching only nameserver (as a localhost DNS resolver only).   
//   
// See /usr/share/doc/bind*/sample/ for example named configuration files.   
//

  options {   
        listen-on port 53 { 127.0.0.1;192.168.1.200; };   
        listen-on-v6 port 53 { ::1; };   
        directory       "/var/named";   
        dump-file       "/var/named/data/cache_dump.db";   
        statistics-file "/var/named/data/named_stats.txt";   
        memstatistics-file "/var/named/data/named_mem_stats.txt";   
        allow-query     { any;};
  /*   
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.   
         - If you are building a RECURSIVE (caching) DNS server, you need to enable   
           recursion.   
         - If your recursive DNS server has a public IP address, you MUST enable access   
           control to limit queries to your legitimate users. Failing to do so will   
           cause your server to become part of large scale DNS amplification   
           attacks. Implementing BCP38 within your network would greatly   
           reduce such attack surface   
        */   
        recursion no;
  dnssec-enable yes;   
        dnssec-validation yes;   
        dnssec-lookaside auto;
  /* Path to ISC DLV key */   
        bindkeys-file "/etc/named.iscdlv.key";
  managed-keys-directory "/var/named/dynamic";
  pid-file "/run/named/named.pid";   
        session-keyfile "/run/named/session.key";   
};
  logging {   
        channel default_debug {   
                file "data/named.run";   
                severity dynamic;   
        };   
};
  zone "." IN {   
        type hint;   
        file "named.ca";   
};
  include "/etc/named.rfc1912.zones";   
include "/etc/named.root.key";
  key SEC_DDNS {     
        algorithm hmac-md5;      
        secret 7ObhTIhKeDFMR2SbbS5s8A==;      
};      
zone "it.lab" IN {   
        type master;   
        file "it.lab.forward";   
        allow-update { key SEC_DDNS ; };   
};
  
zone "1.168.192.in-addr.arpa" IN {   
        type master;   
        file "1.168.192.reverse";   
        allow-update { key SEC_DDNS ; };     
};

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-452370-1-1.html 上篇帖子: CentOS系列开机启动流程 下篇帖子: CentOS开机简要流程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表