DHCP应用

 

DHCP小记

动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址给用户给内部网络管理员作为对所有计算机作中央管理的手段。

工作模式
手工分配 manual     网络管理员为某些少数特定的Host绑定固定IP地址,且地址不会过期

自动分配 automatic  一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后,就永远使用这个地址。

动态分配 dynamic    当 DHCP客户端 第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用。

工作原理

 

 

寻找 Server
        当 DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何 IP 数据设定,它会向网络发出一个 DHCP DISCOVER 封包。因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为 0.0.0.0 ,而目的地址则为 255.255.255.255 ,然后再附上 DHCP discover 的信息,向网络进行广播。
提供 IP 租用地址
  当 DHCP 服务器监听到客户端发出的 DHCP discover 广播后,它会从那些还没有租出的地址范围内,选择最前面的空置 IP ,连同其它 TCP/IP 设定,响应给客户端一个 DHCP OFFER 封包。由于客户端在开始的时候还没有 IP 地址,所以在其 DHCP discover 封包内会带有其 MAC 地址信息,并且有一个 XID 编号来辨别该封包,DHCP 服务器响应的 DHCP offer 封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定,DHCP offer 封包会包含一个租约期限的信息。
接受 IP 租约
  如果客户端收到网络上多台 DHCP 服务器的响应,只会挑选其中一个 DHCP offer 而已(通常是最先抵达的那个),并且会向网络发送一个DHCP request广播封包,告诉所有 DHCP 服务器它将指定接受哪一台服务器提供的 IP 地址。同时,客户端还会向网络发送一个 ARP 封包,查询网络上面有没有其它机器使用该 IP 地址;如果发现该 IP 已经被占用,客户端则会送出一个 DHCPDECLIENT 封包给 DHCP 服务器,拒绝接受其 DHCP offer ,并重新发送 DHCP discover 信息。
租约确认
          当 DHCP 服务器接收到客户端的 DHCP request 之后,会向客户端发出一个 DHCPACK 响应,以确认 IP 租约的正式生效,也就结束了一个完整的 DHCP 工作过程。 DHCP 发放流程第一次登录之后:一旦 DHCP 客户端成功地从服务器哪里取得 DHCP 租约之后,除非其租约已经失效并且 IP 地址也重新设定回 0.0.0.0 ,否则就无需再发送 DHCP discover 信息了,而会直接使用已经租用到的 IP 地址向之前之 DHCP 服务器发出 DHCP request 信息,DHCP 服务器会尽量让客户端使用原来的 IP 地址,如果没问题的话,直接响应 DHCPack 来确认则可。如果该地址已经失效或已经被其它机器使用了,服务器则会响应一个 DHCPNACK 封包给客户端,要求其重新执行 DHCP discover。至于 IP 的租约期限却是非常考究的,并非如我们租房子那样简单, 以 NT 为例子:DHCP 客户端除了在开机的时候发出 DHCP request 请求之外,在租约期限一半的时候也会发出 DHCP request ,如果此时得不到 DHCP 服务器的确认的话,客户端还可以继续使用该 IP ;当租约期过了87.5%时,如果客户端仍然无法与当初的DHCP服务器联系上,它将与其它DHCP服务器通信。如果网络上再没有任何DHCP服务器在运行时,该客户端必须停止使用该IP地址,并从发送一个Dhcpdiscover数据包开始,再一次重复整个过程。要是想退租,可以随时送出 DHCPRELEASE 命令解约,就算租约在前一秒钟才获得的。


DHCP中继

如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的ip地址。如果不在同一个物理网段,则需要DHCP Relay Agent(中继代理)。用DHCP Relay代理可以去掉在每个物理的网段都要有DHCP服务器的必要,它可以传递消息到不在同一个物理子网的DHCP服务器,也可以将服务器的消息传回给不在同一个物理子网的DHCP客户机。

工作原理

在大型的网络中,可能会存在多个子网。DHCP客户机通过网络广播消息获得DHCP服务器的响应后得到IP地址。但广播消息是不能跨越子网的。因此,如果DHCP客户机和服务器在不同的子网内,客户机就不能向服务器申请IP地址,这时就要用到DHCP中继代理。DHCP中继代理实际上是一种软件技术,安装了DHCP中继代理的计算机称为DHCP中继代理服务器,它承担不同子网间的DHCP客户机和服务器的通信任务。

DHCP配置实例

 

搭建dhcp服务器
#vim /etc/sysconfig/network-sprict/ifcfg_eth0 设置服务器ip
  IPADDR=192.168.2.100
  GATEWAY=192.168.2.254 
              

安装dhcp服务
#mkdir /mnt/cdrom                      建立挂载点
#mount /dev/cdrom /mnt/cdrom   挂载光盘
#cd /mnt/cdrom/Server
#rpm -ivh dhcp-3.0.5-21.el5.i386.rpm 安装dhcpd
#rpm -ql dhcp |less        查看dhcp的配置文档
  /etc/dhcpd.conf                   dhcp配置文件
  /etc/rc.d/init.d/dhcpd           dhcp进程
  /etc/rc.d/init.d/dhcrelay        dhcp中继
  /etc/sysconfig/dhcrelay        dhcp中继配置文件
  /var/lib/dhcpd/dhcpd.leases 获得地址的记录文件

编辑dhcp配置文件
#vim /etc/dhcpd.conf
底行模式下:r /usr/share/doc/dhcp*/dhcpd.conf.sampl


#service dhcpd configtest   检查语法是否正确
#service dhcpd start           启用服务
#chkconfig dhcpd on         设置自动启动


DHCP客户端
#pgrep dhclient   查看是否有dhclient进程若没有则安装
#rpm -ivh dhclient-3.0.5-21.el5
#dhclient -d eth0 看到dhcp获得的整个过程

 

此时可以看到获得的地址为192.168.3.253

另外两个分别获得的地址为192.168.2.101和192.168.2.253

 DHCP中继配置实例

实验描述 

用linux服务器模拟路由,其中有三块网卡分别为eth0,eth1,eth2地址分别为2.254,3.254,4.254。其中eht0网卡与dhcp服务器通过vmnet1连接;eth1与tec主机通过vmnet2连接;eth2与mkt主机通过vm3连接;mkt与tec需要从dhcp服务器上动态获得地址。
 

 

 

 

实验步骤

配置DHCP服务器

#setup 分别设置三个网卡的参数 

 编辑dhcp配置文件
 #vim /etc/dhcpd.conf
底行模式下:r /usr/share/doc/dhcp*/dhcpd.conf.sampl

 

#service dhcpd configtest  检查语法
#service dhcpd restart      
重启dhcp服务

设置eth0的参数,默认网关指向192.168.2.254
#route  –n 查看路由

查看dhcp服务是否安装,若没有安装则安装
#rpm -ivh dhcp-3.0.5-21.el5.i386.rpm
#vim /etc/sysconfig/dhcrelay                    配置中继,在进口的网卡上配置
  INTERFACES="eth0  eth1 eth2"         连接客户及服务器的接口都要写
  DHCPSERVERS="192.168.2.100"

#server dhcrelay configtest           检查语法
# chkconfig dhcrelay on               设置自动启动
#service dhcrelay start                 启动中继服务

开启路由转发
#echo "1"  >/proc/sys/net/ipv4/ip_forward 
或者
#vim /etc/sysctl .conf

 #sysctl -p 重新读取配置文件

在windows 2003下配置DHCP中继

配置网卡参数如下

选择路由远程访问

配置并启用路由和远程访问

选择自定义配置

选择LAN路由,完成

在常规选项中选择新增路由协议,选择DHCP中继

在中继代理中选择新增接口,添加本地连接2和本地连接3

右键属性中添加DHCP服务器的IP地址

以下为连接vmnet2和vmnet3的两个客户端获得的IP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章