某單位使用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地址池、附加信息以及租約期限
DHCP服務器的數據庫被組織成一個樹形結構,樹根是用于動態分配的所有網絡段的地址池,樹枝是子網地址池,樹葉是手工綁定給節點的地址。具體操作步驟如下:
首先登陸到Cisco 3640路由器上:
ghq>enable
Password (輸入路由器的特權口令)
ghq #config terminal (進入配置模式)
Enter configuration commands one per line. End with CNTL/Z.
ghq?config # ip dhcp pool global(配置一個根地址池,global是地址池的名稱,你可以采用有意義的字符串來表示)
ghq dhcp-config #network 192.168.0.0 255.255.0.0(動態分配的地址段)
ghq?dhcp-config #domain-name ghq.com(為客戶機配置域后綴)
ghq?dhcp-config #dns-server 192.168.1.1(為客戶機配置DNS服務器)
ghq?dhcp-config #netbios-name-server 192.168.1.1(為客戶機配置wins服務器)
ghq?dhcp-config #netbios-node-type h-node(為客戶機配置h節點模式)
ghq?dhcp-config #lease 30 (地址租用期為30天)
ghq?dhcp-config #ip dhcp pool vlan1 (為VLAN1配置地址池,本池是global池的子池,將從global繼承域后綴、DNS服務器、wins服務器等參數)
ghq?dhcp-config #network 192.168.1.0 255.255.255.0 (VLAN1動態分配192.168.1這個網段內可以被分配的地址,沒有被排除的地址)?
ghq?dhcp-config#default-router 192.168.1.254 (為客戶機配置默認的網關,即VLAN1的IP地址)
ghq?dhcp-config?#ip dhcp pool vlan2 (為VLAN2配置地址池,本池是global池的子池,將從global繼承域后綴、DNS服務器、wins服務器等可繼承的參數)
ghq?dhcp-config#network 192.168.2.0 255.255.255.0
ghq?dhcp-config?#default-router 192.168.2.254
設置不能用于動態分配的IP地址
在整個網絡中,有些IP地址需要靜態的指定給一些特定的設備,例如路由器的端口、DNS服務器、wins服務器以及VLAN的地址等。顯然,這些靜態IP地址是不能用于動態分配的,這就需要將它們排除掉。其步驟如下:
ghq?config?#ip dhcp excluded-address 192.168.1.1 192.168.1.5?。↖P地址 192.168.1.1至192.168.1.5不能用于動態分配)
ghq?config?# ip dhcp excluded-address 192.168.1.254
?。↖P地址192.168.1.254固定為VLAN1的地址,不能用于動態分配)
ghq?config?# ip dhcp excluded-address 192.168.2.254
(IP地址192.168.2.254固定為VLAN2的地址,不能用于動態分配)
設置DHCP數據庫代理
DHCP數據庫代理是用于存儲DHCP綁定信息的一臺主機,它可以是FTP、TFTP或者是RCP服務器。當然,如有必要,你可以配置多個DHCP數據庫代理。同樣,不配置DHCP數據庫代理也是允許的,但這是以不能在DHCP數據庫代理上存儲地址沖突日志為代價的。如果我們不想配置數據庫代理,只要取消掉地址沖突日志的記錄功能即可,操作命令如下:
ghq?config?# no ip dhcp conflict logging (取消地址沖突記錄日志)
配置路由器的靜態路由表
要使客戶機能從用作DHCP Server的路由器中自動獲得IP地址,首要條件就是各個VLAN中的客戶機都能和路由器通信,因此首先就需要在路由器中設置一個路由以使路由器能和各個客戶機通信。我們可以按如下設置 :
ghq?config?#ip route 192.168.1.0 255.255.255.0 FastEthernet0
(FastEthernet0為路由器和內網相連的以太網接口,該命令的作用是在以太網接口和VLAN1 192.168.1.254間建立一條靜態路由。)
ghq?config?#ip route 192.168.2.0 255.255.255.0 FastEthernet0
?。ㄔ撁钤谝蕴W接口和VLAN2 192.168.2.254間建立一條靜態路由)
設置好之后,在配置模式中鍵入EXIT命令回到特權模式下,Ping一下VLAN1和VLAN2的IP地址?192.168.1.254和192.168.2.254?,如果能夠Ping通則表明配置正確,可以直接進入下一步的保存過程。
在交換機上為不同的VLAN指定DHCP服務器地址
這一步驟只須在不同的VLAN中通過設置IP HELPER-ADDRESS即可搞定,指令如下:
switch>enable?。ㄟM入交換機的特權模式)
Password?
switch #config t (進入配置模式)
Enter configuration commands?one per line. End with CNTL/Z.
switch ?config?#interface vlan1 (配置VLAN1)
switch ?config-if?#ip helper-address 192.168.1.4(指定DHCP服務器的地址,即路由器的地址)
ghq?config-if?#interface vlan2 (配置VLAN2)
ghq?config-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功能)
switch?config-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服務器要優越得多。