一.DHCP服务器指的是由服务器控制一段IP地址,在未绑定的情况下,客户端以此为服务器的时候可以自动的获取服务器设定的一段范围内的IP地址,或者是通过静态IP和子网掩码绑定分配给客户端IP地址。
首先你应该 yum install bind bind-chroot -y
yum install dhcp -y
实验一:
未绑定IP地址:
cd /usr/share/doc/dhcp-4.1.1/
cp dhcpd.conf.sample /etc/dhcp/dhcpd.conf
vi /etc/dhcp/dhcpd.conf
option domain-name "westos.org"
option domain-name-servers 192.168.0.46; //以IP为46的主机为DHCH服务器。
option broadcast-address 192.168.0.46;(千万不可以将这一条加上,不可以有广播地址。否则,虚拟机获得动态IP的时候ping不通主机。。。。)
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.135 192.168.0.145;//在未绑定的情况下客户端获得的IP为135-145之间。
option routers 192.168.0.46;
option broadcast-address 192.168.0.131;
}
vi /etc/named.conf
添加:# listen-on port 53 { 127.0.0.1; };(要么将里面改成localhost要么注释掉)
# allow-query { localhost; };(要么将里面改成all,要么注释)
zone “westos.org” IN {
type master;
file "westos.org.zone";
allow-update { 192.168.0.46;};//allow-update { key westos;};
};
cd /var/named
cp -p named.localhost westos.org.zone
vi westos.org.zone
$TTL 1D
@ IN SOA @ root. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.0.46
www A 192.168.0.46
chown named.named /var/named/chroot/var/named/ -R
getsebool -a | grep named
setsebool -P named_write_master_zones on
此时你 dig www.westos.org既可以出现解析。(不过要注意想要获得解析之前要改动vim /etc/resolv nameserver 192.168.0.131 )
nsupdate
>server 192.168.0.46
>zone westos.org
>update delete www.westos.org
>send(如果此时你send的时候报错:update failed: SERVFAIL说明你文件权限的问题没改好。chown named.named /var/named/chroot/var/named/ -R)
>quit
此时你 dig www.westos.org就不可以出现解析了,因为你以及删除了。。。。。
实验二:
dnssec-keygen -a HMAC -MD5 -b 128 -n HOST westos(注意 HMAC-MD5中间的-前后不要有空格呢。。。。)
([root@desktop31 var]# dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos
Ksushan.+157+42306 dnssec-keygen:用来生成更新密钥。-a HMAC-MD5:采用HMAC-MD5加密算法。-b 128:生成的密钥长度为128位。-n HOST kevin:密钥主机westos)
在当前目录: ls 即可出现:Kwestos.+157+42306.private Kwestos.+157+42306.key
[root@desktop46 var]# cat Kwestos.+157+42306.key
westos. IN KEY 512 3 157 N0BFgnR/9tJSDGAaWlWrFA==(这是公钥)
[root@desktop46 var]# cat Kwestos.+157+42306.private
Private-key-format: v1.3(这是私钥)
Algorithm: 157 (HMAC_MD5)
Key: N0BFgnR/9tJSDGAaWlWrFA==
Bits: AAA=
Created: 20120317031817
Publish: 20120317031817
Activate: 20120317031817
nsupdate -k Kwestos.+157+37219.key
>server 192.168.0.46
>zone westos.org
>update add www.westos.org 600 A 192.168.0.46
>send
>quit
dig www.westos.org
vi /etc/named.conf
zone "westos.org" IN
{
type master;
file "westos.org.zone";
allow-update { key westos; };
};
key "westos"
{
algorithm hmac-md5; //所使用的加密算法。
secret "N0BFgnR/9tJSDGAaWlWrFA==";//密钥串
};
在服务器上 /etc/init.d/dhcpd restart
rndc reload
nsupdate -k Kwestos.+157+37219.key
>server 192.168.0.46
>zone westos.org
>update add www.westos.org 600 A 192.168.0.46
>send(如果> send; TSIG error with server: tsig indicates error update failed: NOTAUTH(BADKEY) 出现类似的错误是因为你在named.conf中没有配置好!。)
>quit
在虚拟机上:
vi /etc/resolv.conf
nameserver 192.168.0.46
/etc/init.d/network restart(同时你会在虚拟机上的/etc/resolv.conf中看到search westos.org)
测试:
拔掉网线,在客户端上测试,记得将客户端的IP获取为DHCP
dig www.westos.org
ifconfig
实验三:
动态绑定的IP和MAC地址:
在 vi /etc/dhcp/dhcpd.conf中增加:
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.120 192.168.0.130;
option domain-name-servers 192.168.0.34;
option routers 192.168.0.254;
default-lease-time 600;
max-lease-time 7200;
}
host client1 {
hardware ethernet 52:54:00:21:3d:95;// 。。。。客户端上的主机的MAC地址.
fixed-address 192.168.0.125;// 。。。。。。。。要给客户端上动态绑定的IP
}
测试:
在客户端上测试,记得将客户端的IP获取为DHCP
ifconfig
此时得到的IP为刚才绑定的IP,而且MAC地址与之上绑定的一致。
实验四:
vi /etc/dhcp/dhcpd.conf
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.123 192.168.0.133;
option domain-name-servers 192.168.0.46;
option routers 192.168.0.254;//注意不要有广播地址设成46 #@option broadcast-address 192.168.0.34;这样会ping 不通虚拟机
default-lease-time 600;//
max-lease-time 7200;
}
ddns-update-style interim;
key westos {
algorithm hmac-md5;
secret N0BFgnR/9tJSDGAaWlWrFA==;
}
zone westos.org
{
primary 127.0.0.1;
key westos;
}
在客户端:
vi /etc/dhcp/dhclient.conf(dhclient.conf应该是新建的。)
send fqdn.fqdn "server46.westos.org";
send fqdn.encoded on;
send fqdn.server-update on;
注意:vi /etc/sysconfig/network-scripts/ifcfg-eth0
中应该是动态获取IP 的。
在服务器上 : /etc/init.d/dhcpd restart
rndc reload
在虚拟机上:
/etc/init.d/network restart
测试:
dig server46.westos.org
会看到有更新
在服务器上有
cat /var/lib/dhcpd/dhcp.lease
会看到更新。