Client 端接受来自 DHCP 主机的网络参数,并设定 Client 自己的网络环境:当 Client 端接受响应的讯息之后,首先会以 ARP 封包在网域内发出讯息,以确定来自 DHCP 主机发放的 IP 并没有被占用!如果该 IP 已经被占用了,那么 Client 对于这次的 DHCP 信息将不接受,而将再次向网域内发出 DHCP 的需求广播封包;若该 IP 没有被占用,则 client 可以接受 DHCP 主机所给的网络的参数,那么这些参数将会被使用于 client 端的网络设定当中,同时, Client 端也会对 DHCP 主机发出确认封包,告诉 Server 这次的需求已经确认!而 Server 也会将该信息记录下来;
Client 端结束该 IP 的使用权:当 Client 开始使用这个 DHCP 发放的 IP 之后,有几个情况下他可能会失去这个 IP 的使用权:
Client 端离线:不论是关闭网络接口( ifdown )、重新开机 ( reboot )、关机 ( shutdown ) 等行为,皆算是离线状态,这个时候 Server 端就会将该 IP 回收,并放到 Server 自己的备用区中,等待未来的使用;
Client 端租约到期:前面提到 DHCP server 端发放的 IP 有使用的期限, Client 使用这个 IP 到达期限规定的时间,就需要将 IP 缴回去!这个时候就会造成断线,而 Client 也可以再向 DHCP 主机要求再次分配 IP 啰!
以上就是 DHCP 这个协议在 Server 端与 Client 端的运作状态,由上面这个运作状态来看,我们可以晓得,喝!只要 Server 端设定没有问题,加上 Server 与 Client 在硬件联机上面确定是 OK 的,那么 Client 就可以直接藉由 Server 来取得上网的网络参数,当然啦,只要我们这些管理员能够好好的、正确的管理好我们的 DHCP ,嘿嘿!那么自然上网的设定就变成一件很简单的事情啦!
IP 取得的方法:
在上面的步骤里面,注意到第二步骤了吗?就是 DHCP 会去比较 MAC 这个硬件地址,并判断该 MAC 是否需要给予一个固定的 IP 呢!呵呵!所以啦,我们在 Client 端由 DHCP 主机取得的 IP 主要有两种方式:
静态 ( Static ) IP :只要那个 client 端计算机的网络卡不换掉,那么 MAC 肯定就不会改变,由于 DHCP 可以根据 MAC 来给予固定的 IP ,所以该计算机每次都能以一个固定的 IP 连上 Internet !呵呵!这种情况比较适合当这部计算机需要用来做为提供区域内的一些网络服务的主机之用。那么如何在 Linux 上面知道您的 MAC 呢?很简单啦!有很多的方式,最简单的方式就是使用 ifconfig 及 arp 来进行: [root@test root]# ifconfig eth0
ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:FC:22:9C:57
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:333678 errors:0 dropped:0 overruns:0 frame:0
TX packets:377219 errors:0 dropped:0 overruns:0 carrier:0
collisions:195 txqueuelen:100
RX bytes:42243563 (40.2 Mb) TX bytes:278373316 (265.4 Mb)
Interrupt:10 Base address:0x6100
[root@test root]# arp
Address HWtype HWaddress Flags Mask Iface
test.linux.org ether 00:50:FC:22:9C:57 C eth0
192.168.1.100 ether 00:02:44:19:A6:AD C eth0
动态 ( dynamic ) IP:Client 端每次连上 DHCP 所取得的 IP 都不是固定的!都直接经由 DHCP 所随机由尚未被使用的 IP 中提供!
