什么是 DHCP?( 三 )


若不使用 Proxy,您也可以在每一个网络之中安装 DHCP 服务器,但这样的话,一来设备成本会增加,而且,管理上面也比较分散 。当然喽,如果在一个十分大型的网络中,这样的均衡式架构还是可取的 。端视您的实际情况而定了 。
DHCP封包格式
以下为各字段的简要说明:
OP
若是 client 送给 server 的封包,设为 1,反向为 2。
HTYPE
硬件类别,Ethernet 为 1。
HLEN
硬件地址长度,Ethernet 为 6。
HOPS
若封包需经过 router 传送,每站加 1,若在同一网内,为 0。
TRANSACTION ID
DHCP REQUEST 时产生的数值,以作 DHCPREPLY 时的依据 。
SECONDS
Client 端启动时间(秒) 。
FLAGS
从 0 到 15 共 16 bits,最左一 bit 为 1 时表示 server 将以广播方式传送封包给 client,其余尚未使用 。
ciaddr
要是 client 端想继续使用之前取得之 IP 地址,则列于这里 。
yiaddr
从 server 送回 client 之 DHCP OFFER 与 DHCPACK 封包中,此栏填写分配给 client 的 IP 地址 。
siaddr
若 client 需要透过网络开机,从 server 送出之 DHCP OFFER、DHCPACK、DHCPNACK 封包中,此栏填写开机程序代码所在 server 之地址 。
giaddr
若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,否则为 0。
chaddr
Client 之硬件地址 。
sname
Server 之名称字符串,以 0x00 结尾 。
file
若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送 。
options
允许厂商定议选项(Vendor-Specific Area),以提供更多的设定信息(如:Netmask、Gateway、DNS、等等) 。其长度可变,同时可携带多个选项,每一选项之第一个 byte 为信息代码,其后一个 byte 为该项数据长度,最后为项目内容 。
CODE LEN VALUE
此字段完全兼容 BOOTP,同时扩充了更多选项 。其中,DHCP 封包可利用编码为 0x53 之选项来设定封包类别:
项值 类别
1 DHCP DISCOVER
2 DHCP OFFER
3 DHCP REQUEST
4 DHCPDECLINE
5 DHCPACK
6 DHCPNACK
7 DHCPRELEASE
DHCP 的选项非常多,有空请查阅 RFC 或相关文献,并好好理解,这里不再叙述了 。
DHCP 协议之 RFC 文件
RFC-951、RFC-1084、RFC-1123、RFC-1533、RFC-1534、RFC-1497、RFC-1541

推荐阅读