一、DHCP是什么?
DHCP 是 Dynamic Host Configuration Protocol(动态主机配置协议)缩写,它的前身是 BOOTP。BOOTP 原本是用于无磁盘主机连接的网络上面的:网络主机使用 BOOTROM而不是磁盘启动并连接上网络,BOOTP则可以自动地为那些主机设定 TCP/IP 环境。但 BOOTP 有一个缺点:在设定前须事先获得客户端的硬件地址,而且与 IP 的对应是静态的。换而言之BOOTP 非常缺乏 "动态性" ,若在有限的 IP 资源环境中,BOOTP 的一一对应会造成非常严重的资源浪费。DHCP 可以说是 BOOTP 的增强版本,它分为两个部份:服务器端和客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP 环境数据。比较起 BOOTP ,DHCP 透过 "租约" 的概念,有效且动态的分配客户端的 TCP/IP设定,DHCP 也完全照顾了 BOOTP Client 的需求。
二、DHCP如何取得IP地址?
1、手动指定IP地址:管理者必须为每个客户端指定一个固定的IP地址,然后在客户端计算机要求租约IP地址时,通过DHCP服务器将此IP地址分配给客户端
2、自动指定IP地址:Ip地址的指定工作完全交给DHCP服务器来决定,而不需要经过管理员的手动输入
3、动态指定IP地址:管理员在DHCP服务器中设置一个IP地址范围,然后在客户端提出IP地址租用要求后,自动指派一个Ip地址给客户端,但这种指派是有限制的,使用时间由管理员决定
三、DHCP是怎么”工作“的?
第一(DHCP-discover)发现阶段:客户端发送广播查找可以给自己提供IP地址的DHCP服务器,
第二(DHCP-offer)提供阶段:DHCP服务器发送广播提供一个可用的IP地址,并在地址池中将该地址做上标记,以防再次分配。
第三(DHCP-request)选择阶段:客户端收到广播后再次发送一个广播,请求该地址,如果有多台DHCP响应,则第一个收到的优先。
第四(DHC-pack)确认阶段:DHCP服务器收到广播后再发送一个广播,确认该地址分配给这台主机使,并在地址池中将该地址做上标记,以防再次分配。
注意:
DHCP服务器向客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。如果该客户机在租约规定的时间内一直占用dhcp分配的地址并且在线,则该地址将一直被该客户机所使用。
四、DHCP的安装过程
1、安装dhcp包
clip_p_w_picpath002
2、复制模板
安装好的dhcp包里自带的有一个配置文件,但里面没有内容,可是却提示我们哪有模板
clip_p_w_picpath004
复制模板,把原来的覆盖掉
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf –y
3、编辑配置文件
vim /etc/dhcpd.conf
clip_p_w_picpath006
          配置文件图
4、service dhcpd start #启动DHCP服务
再建一台主机,把它的网卡设置为自动获得
clip_p_w_picpath008
重启网络
clip_p_w_picpath010
发现不是我们要的Ip地址
clip_p_w_picpath012
此时只需要把mac地址写到配置文件中就可以了,
vim /etc/dhcpd.conf
host ns {
hardware Ethernet #后面加上mac地址(如图-->配置文件图中的内容)
重启网络服务,得到的就是我们所要的Ip地址了
clip_p_w_picpath014
5、但是这样得到的Ip也有可能会出错的,如果我们把两台虚拟机放在一个独立的网段中,不受外界的干扰,那是不是会更好呢?下面我们来看看如何做可以实现
5.1、改一下配置文件/etc/dhcpd.conf (只要把mac地址改一下就可以了,改成什么都没有关系,只要不是另一台主机的mac地址就行)
clip_p_w_picpath016
5.2、将两台主机的网络连接改一下(注意,连接方式要改成相同的,这里主要是模拟两台主机在一个网络中)
clip_p_w_picpath018
此时重启服务
clip_p_w_picpath020
得到的Ip地址正是我们所定义在地址池中的最大的一个IP地址
clip_p_w_picpath022
补充:
重启网络命令: service dhcpd restart
dhclient #可以显示启动过程时的详细信息,但只能使用一次,若想再次使用可以把这个服务kill掉
killall dhclient -->dhclient
还有一个命令会更好用---> dhclient –d #工作在前台,Ctrl +c 退出
好了DHCP服务器就做好了,简单吧,心动不如行动,赶快试试吧