William: [email protected]
1. Install required package
# yum -y install bind bind-chroot dhcp
2. Configure DNS
# chkconfig named on
# vi /etc/name.rfc1912.zones
zone "linux.com" IN {
type master;
file "linux.com.db";
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.db";
allow-update { none; };
};
# vi /var/named/linux.com.db
$TTL 1D
@ IN SOA ns1.linux.com. root (
2011091101 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.linux.com.
ns1 A 192.168.0.123
www A 192.168.0.123
# vi /var/named/192.168.0.db
$TTL 1D
@ IN SOA ns1.linux.com. root (
2011091101 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.linux.com.
ns1 A 192.168.0.123
23 PTR desktop23.linux.com.
# /etc/init.d/named restart
# dig @localhost www.linux.com
; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 <<>> @localhost www.linux.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23967
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.linux.com. IN A
;; ANSWER SECTION:
www.linux.com. 86400 IN A 192.168.0.123
;; AUTHORITY SECTION:
linux.com. 86400 IN NS ns1.linux.com.
;; ADDITIONAL SECTION:
ns1.linux.com. 86400 IN A 192.168.0.123
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Sep 11 14:47:54 2011
;; MSG SIZE rcvd: 81
# dig @localhost -x 192.168.0.23
; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 <<>> @localhost -x 192.168.0.23
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16629
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;23.0.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
23.0.168.192.in-addr.arpa. 86400 IN PTR desktop23.linux.com.
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 86400 IN NS ns1.linux.com.
;; ADDITIONAL SECTION:
ns1.linux.com. 86400 IN A 192.168.0.123
;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Sep 11 14:48:28 2011
;; MSG SIZE rcvd: 110
3. Configure DHCP
# chkconfig dhcpd on
# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
# vi /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.20;
option domain-name-servers 192.168.0.123;
option domain-name "linux.com";
option routers 192.168.0.123;
}
# /etc/init.d/dhcpd restart
4. Configure DDNS
# dnssec-keygen -a HMAC-MD5 -b 128 -n USER DHCP_UPDATER
Note: you can find this in 'man dhcpd.conf' with a little search '/zone'
# vi /etc/named.rfc1912.zones
key DHCP_UPDATER {
algorithm hmac-md5;
secret "7T57Gnzs/Z+dismGWYTqYA==";
};
zone "linux.com" IN {
type master;
file "linux.com.db";
allow-update { key DHCP_UPDATER; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.db";
allow-update { key DHCP_UPDATER; };
};
# /etc/init.d/named restart
# vi /etc/dhcp/dhcpd.conf
key DHCP_UPDATER {
algorithm hmac-md5;
secret 7T57Gnzs/Z+dismGWYTqYA==;
};
zone LINUX.COM. {
primary 127.0.0.1;
key DHCP_UPDATER;
}
zone 0.168.192.in-addr.arpa. {
primary 127.0.0.1;
key DHCP_UPDATER;
}
ddns-update-style interim;
# /etc/init.d/dhcpd restart
# chmod g+w /var/named
# setsebool -P named_write_master_zones on
5. Configure Client
# hostname test1.linux.com
# vi /etc/dhcp/dhclient-eth0.conf
send fqdn.fqdn "test1.linux.com.";
send fqdn.encoded on;
send fqdn.server-update on;
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=dhcp
6. Test Settings
On Client
# /etc/init.d/network restart
On Server
# tail -f /var/log/message
ep 11 15:31:43 server23 dhcpd: DHCPREQUEST for 192.168.0.17 from 52:54:00:12:63:4a via eth0
Sep 11 15:31:43 server23 dhcpd: DHCPACK on 192.168.0.17 to 52:54:00:12:63:4a via eth0
Sep 11 15:35:30 server23 named[2769]: client 127.0.0.1#39495: signer "dhcp_updater" approved
Sep 11 15:35:30 server23 named[2769]: client 127.0.0.1#39495: updating zone 'linux.com/IN': adding an RR at 'test1.LINUX.COM' A
Sep 11 15:35:30 server23 named[2769]: client 127.0.0.1#39495: updating zone 'linux.com/IN': adding an RR at 'test1.LINUX.COM' TXT
Sep 11 15:35:31 server23 dhcpd: Added new forward map from test1.linux.com to 192.168.0.17
Sep 11 15:35:31 server23 named[2769]: client 127.0.0.1#53963: signer "dhcp_updater" approved
Sep 11 15:35:31 server23 named[2769]: client 127.0.0.1#53963: updating zone '0.168.192.in-addr.arpa/IN': deleting rrset at '17.0.168.192.in-addr.arpa' PTR
Sep 11 15:35:31 server23 named[2769]: client 127.0.0.1#53963: updating zone '0.168.192.in-addr.arpa/IN': adding an RR at '17.0.168.192.in-addr.arpa' PTR
Sep 11 15:35:31 server23 dhcpd: added reverse map from 17.0.168.192.in-addr.arpa. to test1.linux.com
# dig @localhost test1.linux.com
; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 <<>> @localhost test1.linux.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13331
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;test1.linux.com. IN A
;; ANSWER SECTION:
test1.linux.com. 300 IN A 192.168.0.17
;; AUTHORITY SECTION:
linux.com. 86400 IN NS ns1.linux.com.
;; ADDITIONAL SECTION:
ns1.linux.com. 86400 IN A 192.168.0.123
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Sep 11 15:40:22 2011
;; MSG SIZE rcvd: 83
# dig @localhost -x 192.168.0.17
; <<>> DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 <<>> @localhost -x 192.168.0.17
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52108
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;17.0.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
17.0.168.192.in-addr.arpa. 300 IN PTR test1.linux.com.
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 86400 IN NS ns1.linux.com.
;; ADDITIONAL SECTION:
ns1.linux.com. 86400 IN A 192.168.0.123
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Sep 11 15:40:57 2011
;; MSG SIZE rcvd: 106
END ^_^