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

DHCP
中继原理:
   DHCP
客户使用IP广播来寻找同一网段上的DHCP服务器。当服务器和客户段处在不同网段,即被路由器分割开来时,路由器是不会转发这样广播包的。因此可能需要在每个网段上设置一个DHCP服务器,虽然DHCP只消耗很小的一部分资源的,但多个 DHCP服务器,毕竟要带来管理上的不方便。DHCP中继的使用使得一个DHCP服务器同时为多个网段服务成为可能。
   
为了让路由器可以帮助转发广播请求数据包,使用ip help-address命令。通过使用该命令,路由器可以配置为接受广播请求,然后将其以单播方式转发个指定IP地址。缺省情况下ip help-address转发以下8UDP服务:
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
 //配置地址池vlan20vlan30地址池配置类似 
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 2000LINUXDHCP服务器。但不论你采用何种DHCP服务器,在VLAN上的设置都是一样的,唯一的区别就在于一个是在路由器上设置,一个是在PC服务器上设置。在PC服务器上设置DHCP服务器比较容易,从这一点上看好像用PC服务器作DHCP服务器更具优越性,但如果从稳定性和功能上看,这些DHCP服务器是没办法和路由器相比的。毕竟,确保每天24小时的稳定运行才是大型网络重要的任务,因此,在大型网络中还是采用路由器作DHCP服务器较为稳妥。

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