应用场合:
   
当一个网络中的主机数目较大时,手工分配 IP 不仅麻烦而且容易出错。 DHCP 服务的出现大大方便了主机 IP 地址的分配。现在的企业组网时,根据实际需要来划分 vlan ,成了必不可少的一个步骤。如何让一个 DHCP 服务器同时为多个网段提供服务,就是我们所要讨论的问题。

DHCP
中继原理:
   DHCP
客户使用 IP 广播来寻找同一网段上的 DHCP 服务器。当服务器和客户段处在不同网段,即被路由器分割开来时,路由器是不会转发这样广播包的。因此可能需要在每个网段上设置一个 DHCP 服务器,虽然 DHCP 只消耗很小的一部分资源的,但多个 DHCP 服务器,毕竟要带来管理上的不方便。 DHCP 中继的使用使得一个 DHCP 服务器同时为多个网段服务成为可能。
   
为了让路由器可以帮助转发广播请求数据包,使用 ip help-address 命令。通过使用该命令,路由器可以配置为接受广播请求,然后将其以单播方式转发个指定 IP 地址。缺省情况下 ip help-address 转发以下 8 UDP 服务:
1.Time        2.Tacacs      3.DNS           4.BOOTP/DHCP
服务器
5. BOOTP/DHCP
客户     6.TFTP        7.NetBios 名称服务        8. NetBios 数据报服务
   
DHCP 广播情况下,客户在本地网段广播一个 DHCP 发现分组。网关获得这个分组,如果配置了帮助地址,就将 DHCP 分组转发到特定地址。

DCHP
中继配置
第一步:查看设备是否支持 IOS DHCP Server 功能
   
一般的 Cisco 路由器或访问服务器,以及少部分安装有路由交换模块或多层交换功能卡的交换机都具有 IOS DHCP Server 功能。如果还没有确认你的设备是否具备这一功能,那么,你可以按如下方法在命令行界面( CLI )下进行快速检测,步骤如下:
router>enable
Password:
router#conf t
router(config)#ip dhcp ?
  如果出现的是下面的信息,那么很遗憾,你的设备不支持 IOS DHCP Server 功能:   % Unrecognized command
否则,恭喜你,你的设置支持 DHCP 功能。

第二步: DHCP 服务器端配置(此处用路由器来当 DHCPserver.PC 机上配置类似):
route(config)#ip dhcp pool vlan10
   // 配置一个地址池, vlan10 是地址池的名称,  
route(dhcp-config)#network 192.168.10.0 255.255.255.0  //
动态分配的地址段
route(dhcp-config)#default-router 192.168.10.254  //
网关地址
route(dhcp-config)#dns-server x.x.x.x   //
为客户机配置 DNS 服务器
route(dhcp-config)#lease 1  //
地址租用期为 1
route(dhcp-config)#exit
route(config)#ip dhcp excluded-address 192.168.10.1 //
该地址不被分配
route(config)#ip dhcp excluded-address 192.168.10.254 //
该地址不被分配
route(config)#ip dhcp pool vlan20
  // 配置地址池 vlan20 vlan30 地址池配置类似 
route(dhcp-config)#network 192.168.20.0 255.255.255.0//
动态分配的地址段
route(dhcp-config)#default-router 192.168.20.254   //
网关地址
route(dhcp-config)#dns-server x.x.x.x  //
为客户机配置 DNS 服务器
route(dhcp-config)#lease 1  //
地址租用期为 1
route(dhcp-config)#exit
route(config)#ip dhcp excluded-address 192.168.20.254  //
该地址不被分配

Tips
DHCP 是根据源地址段进行地址分配的。

第三步:使用路由器 5300 做单臂路由时的 DHCP 配置:
int f0
no ip address
no shut
exit
int f0.10  //vlan10
ip address 192.168.10.254 255.255.255.0  //vlan
网关
ip help-address 192.168.10.1  //DHCP
服务器地址
no shut
exit
int f0.20  //vlan20
,多个网段类似
ip address 192.168.20.254  //vlan
网关
ip help-address 192.168.10.1  //
以单播的形式发往该 DHCP 服务器地址
no shut
exit
使用多层交换机( 3550 )的 DHCP 配置
int vlan 10
ip address 192.168.10.254 255.255.255.0  //vlan10
网关
ip help-address 192.168.10.1  //DHCP
服务器地址
no shut
exit
int vlan 20
ip address 192.168.20.254 255.255.255.0  //vlan10
网关
ip help-address 192.168.10.1  //DHCP
服务器地址
no shut
exit
题外话:
除了 IOS DHCP Server 外, DHCP 服务器还有很多种。例如 Windows 2000 LINUX DHCP 服务器。但不论你采用何种 DHCP 服务器,在 VLAN 上的设置都是一样的,唯一的区别就在于一个是在路由器上设置,一个是在 PC 服务器上设置。在 PC 服务器上设置 DHCP 服务器比较容易,从这一点上看好像用 PC 服务器作 DHCP 服务器更具优越性,但如果从稳定性和功能上看,这些 DHCP 服务器是没办法和路由器相比的。毕竟,确保每天 24 小时的稳定运行才是大型网络重要的任务,因此,在大型网络中还是采用路由器作 DHCP 服务器较为稳妥。

跨子网使用 DHCP 服务器 (PC 版本 )
为了提高网络的安全性,规模稍大的局域网通常要划分为多个子网。但 DHCP 服务器只能为本子网的机器提供服务,每个子网都配置 DHCP 服务器又会造成浪费。如何让一台 DHCP 服务器能同时为多个子网提供 TCP/IP 配置服务呢?
  笔者以所管理的两个子网 A B 为例,子网 A 中配置了一台 DHCP 服务器,子网 B 中没有 DHCP 服务器,下面在子网 B 进行如下配置操作:
   1 配置路由
  在子网 B 中选择一台 Windows 2003 机器,将其配置成路由器,用来连接 A B 两个子网 ( 此时该服务器同时属于两个子网 ) 。进入 控制面板 管理工具 ,运行 路由和远程访问 工具,右键点击本地服务器,选择 配置并启用路由及远程访问 ,弹出安装向导对话框,选择 自定义配置 ,点击 下一步 后,选择 “LAN 路由 ,最后点击 完成
   2 配置中继代理
  在路由和远程访问窗口中,展开 本地服务器 IP 路由选择 常规 ,右键点击 常规 ,选择 新增路由协议 ,接着在新路由协议窗口中选择 “DHCP 中继代理程序 ,点击 确定 按钮。
  右键点击 DHCP 中继代理程序,选择 属性 ,弹出 “DHCP 中继代理程序属性 对话框,在 常规 标签页的 服务器地址 栏中输入子网 A DHCP 服务器的 IP 地址,然后点击 添加 按钮,最后点击 确定 即可。
  右键再次点击 DHCP 中继代理程序,选择 新增接口 ,弹出 DHCP 中继代理程序的新接口对话框,在 接口 框中选中可以访问子网 A 的那个接口,也就是连接子网 A 的网卡,点击 确定 按钮。接着在弹出的 “DHCP 中继站属性 对话框中,确保选中 中继 DHCP 数据包 后,就启用了它的中继功能,最后点击 确定 按钮。完成以上配置,子网 B 的客户机就可以使用子网 A DHCP 服务器了。
  提示:中继代理是为不在同一子网中的 DHCP 客户机和 DHCP 服务器之间中转 DHCP/BOOTP 消息的小程序,下面把这台 Windows 2003 机器配置成 DHCP 中继代理服务器。这样当子网 B 的客户机发出请求时,中继代理就把这个请求转发给子网 A DHCP 服务器,接着再把 DHCP 服务器返回的 TCP/IP 配置信息转发给子网 B 的客户机。