客户机获取DHCP服务器IP地址的基本步骤

客户机获取DHCP服务器IP地址的基本步骤,第1张

客户机获取DHCP服务器主要分为4个步骤:
1IP租用请求:
DHCP客户机初始化TCP/IP,通过UDP端口67向网络中发送一个DHCPDISCOVER广播包,请求租用IP地址。该广播包中的源IP地址为0000,目标IP地址为255255255255;包中还包含客户机的MAC地址和计算机名。
2IP租用提供:
任何接收到DHCPDISCOVER广播包并且能够提供IP地址的DHCP服务器,都会通过UDP端口68给客户机回应一个DHCPOFFER广播包,提供一个IP地址。该广播包的源IP地址为DCHP服务器IP,目标IP地址为255255255255;包中还包含提供的IP地址、子网掩码及租期等信息。
3IP租用选择:
客户机从不止一台DHCP服务器接收到提供之后,会选择第一个收到的DHCPOFFER包,并向网络中广播一个DHCPREQUEST消息包,表明自己已经接受了一个DHCP服务器提供的IP地址。该广播包中包含所接受的IP地址和服务器的IP地址。
所有其他的DHCP服务器撤消它们的提供以便将IP地址提供给下一次IP租用请求。
4IP租用确认:
被客户机选择的DHCP服务器在收DHCPREQUEST广播后,会广播返回给客户机一个DHCPACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。
客户机在收到DHCPACK包,会使用该广播包中的信息来配置自己的TCP/IP,则租用过程完成,客户机可以在网络中通信。
DHCP客户机在发出IP租用请求的DHCPDISCOVER广播包后,将花费1秒钟的时间等待DHCP服务器的回应,如果1秒钟没有服务器的回应,它会将这一广播包重新广播四次(以2,4,8和16秒为间隔,加上1~1000毫秒之间随机长度的时间)。四次之后,如果仍未能收到服务器的回应,则运行Windows 2000的DHCP客户机将从16925400/16这个自动保留的私有IP地址(APIPA)中选用一个IP地址,而运行其他 *** 作系统的DHCP客户机将无法获得IP地址。DHCP客户机仍然每隔5分钟重新广播一次,如果收到某个服务器的回应,则继续IP租用过程。

l 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCPDISCOVER包,只有DHCP服务器才会响应。
l 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCPDISCOVER报文后,从IP地址池中选择一个尚未分配的IP地址分配给客户端,向该客户端发送包含租借的IP地址和其他配置信息的DHCPOFFER包。
l 选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发送DHCPOFFER包,客户端从中随机挑选,然后以广播形式向各DHCP服务器回应DHCPREQUEST包,宣告使用它挑中的DHCP服务器提供的地址,并正式请求该DHCP服务器分配地址。其它所有发送DHCPOFFER包的DHCP服务器接收到该数据包后,将释放已经OFFER(预分配)给客户端的IP地址。
如果发送给DHCP客户端的DHCPOFFER包中包含无效的配置参数,客户端会向服务器发送DHCPCLINE包拒绝接受已经分配的配置信息。
l 确认阶段,即DHCP服务器确认所提供IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCPREQUEST包后,便向客户端发送包含它所提供的IP地址及其他配置信息的DHCPACK确认包。然后,DHCP客户端将接收并使用IP地址及其他TCP/IP配置参数。
2 DHCP客户端续租IP地址的过程
l DHCP服务器分配给客户端的动态IP地址通常有一定的租借期限,期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP租约。实际使用中,在IP地址租约期限达到一半时,DHCP客户端会自动向DHCP服务器发送DHCPREQUEST包,以完成IP租约的更新。如果此IP地址有效,则DHCP服务器回应DHCPACK包,通知DHCP客户端已经获得新IP租约。
如果DHCP客户端续租地址时发送的DHCPREQUEST包中的IP地址与DHCP服务器当前分配给它的IP地址(仍在租期内)不一致,DHCP服务器将发送DHCPNAK消息给DHCP客户端。
3 DHCP客户端释放IP地址的过程

LZ,其实说dhcp offer是单播和广播都是对的
首先,单独对于dhcp offer来说,到底是单播还是广播,取决于客户端发送的discover报文中的字段“Bootp
flags”,它有两个字节,如果最高位为1,代表回复的offer为广播,如果为0,代表回复的offer为单播,其余bits代表reserved,也就是该字段取值为以下时:
1、Bootp flags = 0x8000,offer为广播
2、Bootp flags = 0x0000,offer为单播
最后提一点,eNSP的Bootp flags=0x0000单播;win7的Bootp flags=0x8000广播;linux的Bootp flags=0x0000单播
这是我在华为社区找到的:链接会被度娘吞。不发了

DHCP服务在linux下算是最简单的服务了。
DHCP服务的配置。
DHCP简介:
DHCP动态主机配置协议,在一个小型局域网里可以通过手工指定ip地址的方式,但如有大量的主机,如果还是手工指定,那是一个很大的工作量,而且也容易出错,这时,就可以通过配置一台DHCP服务器来解决,为每台主机分配一个ip地址。DHCP作用域是指DHCP服务器可分配给DHCP客户端的IP地址范围,一个DHCP服务器至少要一个作用域,如有多个作用域,作用域之间的IP地址不能重叠。
DHCP的工作原理:
DHCP工作过程分为四个步骤:
第一步(DHCPDISCOVER):客户端发送广播查找可以给自己提供IP地址的DHCP服务器,
第二步(DHCPOFFER):DHCP服务器发送广播提供一个可用的IP地址,并在地址池中将该地址打上标记,以防再次分配。
第三步(DHCPREQUEST):客户端收到广播后再次发送一个广播请求该地址,如果有多台DHCP响应,则第一个收到的优先。
第四步(DHCPACK):DHCP服务器收到广播后再发送一个广播,确认该地址分配给这台主机使用,并在地址池中将该地址打上标记,以防再次分配。
DHCP的基本配置:
第一步:安装软件:

[root@localhost ~]# rpm -ivh /misc/cd/Server/dhcp-305-18el5i386rpm

第二步:编辑配置文件:
[root@localhost ~]# vi /etc/dhcpdconf
# see /usr/share/doc/dhcp/dhcpdconfsample
当进入到配置文件里面时,这里是空的,有如上一行的提示,说可以参考这个文件来编写配置文件,那就复制一份再编辑。

[root@localhost ~]# cp -rvf /usr/share/doc/dhcp-305/dhcpdconfsample /etc/dhcpdconf
[root@localhost ~]# vi /etc/dhcpdconf

ddns-update-style interim; //配置DHCP和DNS为互动更新模式,
ignore client-updates; //忽略客户端的更新。

subnet 1921681000 netmask 2552552550 { //定义作用域

option routers 1921681001; //默认路由
option subnet-mask 2552552550; //子网掩码

option nis-domain "rhelcom"; //NIS域名
option domain-name "rhelcom"; //DNS域名
option domain-name-servers 19216810010; //DNS服务器地址

option time-offset -18000; # Eastern Standard Time //为客户端设置与格林威治的时间偏移
option ntp-servers 19216811; //网络时间服务器地址
option netbios-name-servers 19216811; //指定WINS服务器地址

range dynamic-bootp 192168100128 192168100254; //动态分配的地址范围
default-lease-time 21600; //默认租约时间
max-lease-time 43200; //最大租约时间

host abc { //指定特定主机
hardware ethernet 00:0C:29:FD:44:C8; //硬件地址
fixed-address 19216810030; //IP地址
}
}

如有多个要绑定的主机时可以把所有主机信息用group{ }包括起来,这样更方便管理。格式如下 :
group {
……这里不可以添加一些佤全局选项,这样就不用在每个里面写了。
host abc {
……
……
}
host xyz {
……
……
}
}
[root@localhost ~]# service dhcpd restart

测试:

在linux下:
首先让地址从DHCP获取:
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp

[root@localhost ~]# service network restart //重启一下网络服务,这里不能使用ifdown和ifup,因为要配置路由信息。
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:FD:44:C8
inet addr:19216810030 Bcast:192168100255 Mask:2552552550

这就是绑定的IP地址。
[root@localhost ~]# cat /etc/resolvconf
; generated by /sbin/dhclient-script
search rhelcom
nameserver 19216810010
这里的DNS服务器地址也获取到了。
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
1921681000 0000 2552552550 U 0 0 0 eth0
16925400 0000 25525500 U 0 0 0 eth0
0000 1921681001 0000 UG 0 0 0 eth0
默认路由也获取到了。查看一下端口:
[root@localhost ~]# netstat -tlunp | grep 68
udp 0 0 0000:68 0000 16150/dhclient

查看客户端的租约文件:
lease {
interface "eth0";
fixed-address 19216810030; //固定地址
option subnet-mask 2552552550; //子网掩码
option time-offset -18000; //时间偏移
option routers 1921681001; //默认路由
option dhcp-lease-time 21600; //租约时间
option dhcp-message-type 5;
option domain-name-servers 19216810010;
option dhcp-server-identifier 19216810020;
option nis-domain "rhelcom";
option domain-name "rhelcom";
renew 5 2010/4/9 09:01:40;
rebind 5 2010/4/9 11:34:53;
expire 5 2010/4/9 12:19:53;
}

windows下:

把IP地址设成自动获取。
C:\Documents and Settings\Administrator>ipconfig /all
Connection-specific DNS Suffix : rhelcom
Physical Address : 00-0C-29-D3-C6-B3
Dhcp Enabled : Yes
Autoconfiguration Enabled : Yes
IP Address : 192168100253
Subnet Mask : 2552552550
Default Gateway : 1921681001
DHCP Server : 19216810020
DNS Servers : 19216810010
Lease Obtained : 2010年4月9日 14:44:12
Lease Expires : 2010年4月9日 20:44:12

基本配置完成。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10868059.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存