歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> 學習Linux >> CentOS 7實現DNS+DHCP動態更新

CentOS 7實現DNS+DHCP動態更新

日期:2017/3/6 9:48:33   编辑:學習Linux

CentOS 7實現DNS+DHCP動態更新


CentOS 7實現DNS+DHCP動態更新


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 ; };
};

http://xxxxxx/Linuxjc/1134196.html TechArticle

Copyright © Linux教程網 All Rights Reserved