DHCP动态主机配置协议,在一个小型局域网里可以通过手工指定ip地址的方法,但如有大量的主机,如果还是手工指定,那是一个很大的工作量,而且也容易出错,这时,就可以通过配置一台DHCP服务器来解决,为每台主机分配一个ip地址。DHCP作用域是指DHCP服务器可分配给DHCP客户端的IP地址范围,一个DHCP服务器起码要一个作用域,如有多个作用域,作用域之间的IP地址不能重叠。
DHCP三种工作模式 :
1.Manual Allocation
网络管理员为个别少数特定的Host绑定固定IP地址,且地址不会过期,其特征:地址利用率低,管理员的工作量大
2.Automatic Allocation
自动分配linux嵌入式开发,其情形是:一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址以后,就永远使用这个地址。其特征:地址利用率较低linux虚拟机中dhcp服务器搭建,
3.Dynamic Allocation
动态分配,当 DHCP 第一次从 HDCP 服务器端租用到 IP 地址以后,并非永久的使用该地址,只要租期到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址。其特征:地址分配较灵活,地址利用率高
注:考虑实际须要,第一种和第三种结合堪称是最好的地址管理方法。
DHCP的工作原理:
DHCP工作过程分为四个步骤:
第一步(DHCPDISCOVER):客户端发送广播查找可以给自己提供IP地址的DHCP服务器,
第二步(DHCPOFFER):DHCP服务器发送广播提供一个可用的IP地址,并在地址池上将该地址打上标记,以防再度分配。
第三步(DHCPREQUEST):客户端收到广播后再用广播发送一个dhcprequest消息给服务器,之所以用广播,是因为它不但要通知所选购到的dhcp服务器,也必须通知没有被选上的其他dhcp服务器,以便那些dhcp服务器将其原先欲委派给此客户端而保留的ip地址释放下来,供其他dhcp客户端使用。
第四步(DHCPACK):DHCP服务器收到广播后再发送一个广播,确认该地址分配给这台主机使用,并在地址池上将该地址打上标记,以防再度分配。
注意:dhcp服务器处于10.0网关,地址池处于30.0网关,且就单个作用域,这样即使在一个广播域内,客户端也未能获得ip
DHCP配置:
实验环境:VMware RedHat-5.4
案例一(单个作用域):
该案例拓扑图(因均在vnet1下,并不过路由,故如下图):
1.安装dhcp,由上一篇早已正确对yum服务器进行了正确的配置所以,直接用yum源来安装即可,终端执行yum install dhcp
如下图即正确安装
2.编辑配置文件/etc/dhcpd.conf初始状态下,其为空,可用vim打开后,在末行模式下输入"r /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample"
如下图:
详细配置信息如下:
ddns-update-style interim; //配置DHCP和DNS为互动更新模式,
ignore client-updates; //忽视客户端的更新。
subnet 192.168.142.0 netmask 255.255.255.0 { //定义作用域
option routers 192.168.142.20; //默认路由
option subnet-mask 255.255.255.0; //子网掩码
option nis-domain ""; //NIS域名
option domain-name ""; //DNS域名
option domain-name-servers 192.168.142.20; //DNS服务器地址
option time-offset -18000;
# Eastern Standard Time //为客户端设置与格林威治的时间偏斜
#下面两项因本实验没用,所以注释掉了
# option ntp-servers //网络时间服务器地址
# option netbios-name-servers //指定WINS服务器地址
range dynamic-bootp 192.168.142.20 192.168.142.254;
//动态分配的地址范围
default-lease-time 21600; //默认租期时间
max-lease-time 43200; //最大租期时间
host windosxp{//指定特定主机
hardware ethernet 00:0C:29:FD:44:C8; //硬件地址
fixed-address 192.168.142.200; //IP地址
}
}
如下图:
3.启动dhcp服务并设置开机启动,/etc/init.d/dhcpd restart;chkconfig dhcpd on
4.测试验证(以windows):如下图:
注:做测试时,一定做将本机的Vmware DHCP service服务关掉,避免对实验导致影响。具体操作:在运行下输入services.msc步入服务,找到服务将其关掉。
5.如果我们这台主机想每次均获得192.168.142.200,应该如何办呢?其实也容易,用dhcp的地址绑定这个问题这很容易解决了,
由上图可知,这台测试主机的ip为192.168.142.254,我们可以通过查看/var/lib/dhcpd/dhcpd.lease文件来获得其MAC地址,打开/var/lib/dhpc/dhpcd.lease文件如下图(局部图):
6.之后按照这个MAC进行绑定更改配置文件如下图:
7.重启dhcp服务,进行测试,如下图,正确获得了192.168.142.200,测试成功,
案例二,多作用域
多作用域环境主要指DHCP服务器须要为一个以上网关的DHCP客户端分配IP地址。主要有两种类型:服务器只有一个插口,通过路由器等设置与其他网关的DHCP客户端联接;DHCP服务器有起码两个网路插口,分别联接须要DHCP客户端所在的每位网关。
本案例以超级作用域为例,来管理多作用域的工作
案例背景:由于c类网路地址的限制,若某公司有1000多个用户,简单地单个作用就难以满足需求,故就引出了多作用域存在的必要性,而超级作用域是DHCP服务器的一种管理功能,使用它可以将多个作用域组合为单个管理实体,方便统一管理。
实验拓扑图如下:
实验步骤:
1.如案例1一样正确安装dhcp服务器,
2.如下更改dhcp的配置文件,为达到测试的疗效,每一个地址池内仅有一个可用ip,
3.重启dhcp服务并进行测试,(两台windows主机均设置在vnet1下,)
测试机一从192.168.142.0中获得192.168.142.3
测试机二从192.168.141.0中获得192.168.141.3
ps:超级作用就相当于一个大的地址池,里面有很多的ip地址和ip段,本实验并没有配置网段,因网段是负责网路通讯的linux虚拟机中dhcp服务器搭建,而本实验中dhcp服务器与测试客户机是处于同一个网路中,并且其目的是为客户机正常分配ip地址,它并不关注大家之间是否还能通讯,故在做实验时,会认为网段的设置虽然没有限制,哦,那你就错了,因为实验中你并没有实验客户机间的通讯,只是正确获得了ip地址,若你想测试客户机间才能通讯,则必须正确网段参数了。
案例三,中继代理
在整个DHCP租期形成的过程中,DHCP客户端与DHCP服务器之间都是使用广播,这样会形成一个问题,如果DHCP客户端与DHCP服务器之间须要跨越子网时,子网间的路由器必须支持RFC 1542文档的定义。当然DHCP中继代理来帮助转发DHCP客户端与DHCP服务器之间的广播包。
如图所示linux系统怎么样,某公司有两个部门:技术部tec和市场部mkt,两个不能分处不同vlan,服务器vlan中有一台dhcp服务器,现要求使用该dhcp服务器为技术部和市场部提供ip地址。
实验环境:使用一台linux主机作为路由器,另一台linux主机作为dhcp服务器,将linux路由器的三个网卡分别处于不同的vnet来模拟vlan的环境:接口eth0处于vnet1,eth1 处于vnet2,eth2处于vnet3.实验示意图如下:
1.安装dhcp服务器 (yum install dhcp,)
并正解配置服务器ip地址:192.168.142.2/24,网关:192.168.142.3
2.修改dhcp主配置文件/etc/dhcpd.conf