某单位使用Cisco 3620作为IOS DHCP Server,它和内网相连的fastethernet0端口的IP地址为192.168.1.4,二层交换机采用两台Cisco 2950,三层交换机采用一台Cisco 3550。
在整个网络中有二个VLAN,为简化描述,假设每个VLAN都采用24位网络地址,其中VLAN1的IP地址为192.168.1.254,VLAN2的IP地址为192.168.2.254。在Cisco设备上实现IOS DHCP Server功能以使各VLAN中的主机自动获得IP地址,如下图所示。
DHCP服务器的数据库被组织成一个树形结构,树根是用于动态分配的所有网络段的地址池,树枝是子网地址池,树叶是手工绑定给节点的地址。具体操作步骤如下:
ghq>enable
Password (输入路由器的特权口令)
ghq #config terminal (进入配置模式)
Enter configuration commands one per line. End with CNTL/Z.
ghqconfig # ip dhcp pool global(配置一个根地址池,global是地址池的名称,你可以采用有意义的字符串来表示)
ghq dhcp-config #network 192.168.0.0 255.255.0.0(动态分配的地址段)
ghqdhcp-config #domain-name ghq.com(为客户机配置域后缀)
ghqdhcp-config #dns-server 192.168.1.1(为客户机配置DNS服务器)
ghqdhcp-config #netbios-name-server 192.168.1.1(为客户机配置wins服务器)
ghqdhcp-config #netbios-node-type h-node(为客户机配置h节点模式)
ghqdhcp-config #lease 30 (地址租用期为30天)
ghqdhcp-config #ip dhcp pool vlan1 (为VLAN1配置地址池,本池是global池的子池,将从global继承域后缀、DNS服务器、wins服务器等参数)
ghqdhcp-config #network 192.168.1.0 255.255.255.0 (VLAN1动态分配192.168.1这个网段内可以被分配的地址,没有被排除的地址)
ghqdhcp-config#default-router 192.168.1.254 (为客户机配置默认的网关,即VLAN1的IP地址)
ghqdhcp-config#ip dhcp pool vlan2 (为VLAN2配置地址池,本池是global池的子池,将从global继承域后缀、DNS服务器、wins服务器等可继承的参数)
ghqdhcp-config#network 192.168.2.0 255.255.255.0
ghqdhcp-config#default-router 192.168.2.254
在整个网络中,有些IP地址需要静态的指定给一些特定的设备,例如路由器的端口、DNS服务器、wins服务器以及VLAN的地址等。显然,这些静态IP地址是不能用于动态分配的,这就需要将它们排除掉。其步骤如下:
ghqconfig#ip dhcp excluded-address 192.168.1.1 192.168.1.5 (IP地址 192.168.1.1至192.168.1.5不能用于动态分配)
ghqconfig# ip dhcp excluded-address 192.168.1.254
(IP地址192.168.1.254固定为VLAN1的地址,不能用于动态分配)
ghqconfig# ip dhcp excluded-address 192.168.2.254
(IP地址192.168.2.254固定为VLAN2的地址,不能用于动态分配)
DHCP数据库代理是用于存储DHCP绑定信息的一台主机,它可以是FTP、TFTP或者是RCP服务器。当然,如有必要,你可以配置多个DHCP数据库代理。同样,不配置DHCP数据库代理也是允许的,但这是以不能在DHCP数据库代理上存储地址冲突日志为代价的。如果我们不想配置数据库代理,只要取消掉地址冲突日志的记录功能即可,操作命令如下:
ghqconfig# no ip dhcp conflict logging (取消地址冲突记录日志)
要使客户机能从用作DHCP Server的路由器中自动获得IP地址,首要条件就是各个VLAN中的客户机都能和路由器通信,因此首先就需要在路由器中设置一个路由以使路由器能和各个客户机通信。我们可以按如下设置:
ghqconfig#ip route 192.168.1.0 255.255.255.0 FastEthernet0
(FastEthernet0为路由器和内网相连的以太网接口,该命令的作用是在以太网接口和VLAN1 192.168.1.254间建立一条静态路由。)
ghqconfig#ip route 192.168.2.0 255.255.255.0 FastEthernet0
(该命令在以太网接口和VLAN2 192.168.2.254间建立一条静态路由)
设置好之后,在配置模式中键入EXIT命令回到特权模式下,Ping一下VLAN1和VLAN2的IP地址192.168.1.254和192.168.2.254,如果能够Ping通则表明配置正确,可以直接进入下一步的保存过程。
这一步骤只须在不同的VLAN中通过设置IP HELPER-ADDRESS即可搞定,指令如下:
switch>enable (进入交换机的特权模式)
Password
switch #config t (进入配置模式)
Enter configuration commandsone per line. End with CNTL/Z.
switch config#interface vlan1 (配置VLAN1)
switch config-if#ip helper-address 192.168.1.4(指定DHCP服务器的地址,即路由器的地址)
ghqconfig-if#interface vlan2 (配置VLAN2)
ghqconfig-if#ip helper-address 192.168.1.4
对所有直接连到客户机的二层访问端口开启Portfast功能 要使客户机正确获得IP地址,就需要将和客户机相连的交换机端口的Portfast功能打开(Cisco 2950)。这里需要特别注意的是,只能在连接一个单一客户机的二层端口上开启该功能,如果在一个连接到交换机或集线器的端口上开启该功就有可能引起广播风暴或“地址学习”问题。开启Portfast功能的步骤如下:
switch #configure terminal
switch config#interface interface-id
switch config-if#spanning-tree portfast (开启portfast功能)
switchconfig-if #end
经过以上规划与设置操作后,在路由器和交换机上的设置全部完成,剩下的工作只要在客户机上打开“自动获得IP地址”功能即可(如图2所示)。对于Windows 2000/2003 Server系统,还需要将“DHCP CLIENT”服务启用(如下图3所示),否则在Windows 2000/2003 Server中将不能自动得到IP地址。
至此,通过启用Cisco路由器的DHCP Server功能与客户端DHCP的配合使用,使局域网VLAN中的主机自动获得IP地址,真正实现了DHCP服务全部功能。相比在服务器上用windows/Linux 操作系统实现的DHCP服务器,从稳定性和功能上看,路由器实现的DHCP服务器要优越得多。