問題一的提出:
正如前面章節(jié)說描述的那樣,路由器上配置IP helper addresses命令后,默認(rèn)情況下路由器不僅轉(zhuǎn)發(fā)dhcp請求,同時(shí)也轉(zhuǎn)發(fā)其他的udp報(bào),這樣很可能會(huì)增加DHCP 服務(wù)器所在鏈路的負(fù)擔(dān),同時(shí)也增加了DHCP 服務(wù)器的CPU利用率,這可能會(huì)引起很嚴(yán)重的網(wǎng)絡(luò)通信問題。
所以cisco 的ios 提供了限制ip helpe-address 命令所帶來的負(fù)面影響的方法。
解決實(shí)例;
CISCO路由器允許用no ip forward-protocol udp 命令來禁止對(duì)所無意義的UDP`數(shù)據(jù)報(bào)的轉(zhuǎn)發(fā)
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#no ip forward-protocol udp tftp
//禁止轉(zhuǎn)發(fā)tftp請求數(shù)據(jù)報(bào)文
Router1(config)#no ip forward-protocol udp nameserver
//禁止轉(zhuǎn)發(fā)nameserver請求數(shù)據(jù)報(bào)文
Router1(config)#no ip forward-protocol udp domain
//禁止轉(zhuǎn)發(fā)domain請求數(shù)據(jù)報(bào)文
Router1(config)#no ip forward-protocol udp time
//禁止轉(zhuǎn)發(fā)time請求數(shù)據(jù)報(bào)文
Router1(config)#no ip forward-protocol udp netbios-ns
//禁止轉(zhuǎn)發(fā)netbios-ns請求數(shù)據(jù)報(bào)文
Router1(config)#no ip forward-protocol udp netbios-dgm
//禁止轉(zhuǎn)發(fā)netbios-dgm請求數(shù)據(jù)報(bào)文
Router1(config)#no ip forward-protocol udp tacacs
//禁止轉(zhuǎn)發(fā)tacacs請求數(shù)據(jù)報(bào)文
Router1(config)#end
Router1#
關(guān)于配置的相關(guān)討論;
1 配置了DHCP中繼的路由器,默認(rèn)情況下也轉(zhuǎn)發(fā)下列udp 廣播報(bào)文.
2 尤其是在windows的網(wǎng)絡(luò)環(huán)境中,在沒有配置no ip forward-protocol udp 的情況下,DHCP 服務(wù)器會(huì)接受到來自各個(gè)不同網(wǎng)段的大量的NetBIOS 請求報(bào)文,這通常是引起網(wǎng)絡(luò)擁擠,阻塞的一個(gè)很大的原因,所以作為一個(gè)基本的配置準(zhǔn)則,我們推薦你使用no ip forward-protocol udp netbios-ns 和 no ip forward-protocol udp netbios-dgm 這兩條配置命令來限制路由器向DHCP服務(wù)器轉(zhuǎn)發(fā)NetBIOS請求報(bào)文。
3 上面的實(shí)例中禁止了所有不必要的協(xié)議的轉(zhuǎn)發(fā),在實(shí)際的應(yīng)用中,很多大公司通常只禁止NetBIOS 請求報(bào)文的轉(zhuǎn)發(fā),這主要是因?yàn)镹etBIOS 報(bào)文是引起網(wǎng)絡(luò)問題的關(guān)鍵原因所在。
4 必須認(rèn)識(shí)到,配置了udp中繼(ip hlpe-address x.x.x.x.)的路由器并沒有實(shí)現(xiàn)針對(duì)不同協(xié)議,轉(zhuǎn)發(fā)到不同的(或者說指定的服務(wù)器上)的功能。她會(huì)傻傻的,一古腦兒的把所有的協(xié)議(上表中所列的協(xié)議),義無反顧的發(fā)往所有的服務(wù)器。
例如,有server1 為dhcp 服務(wù)器(1.1.1.1 ) server2 為dns服務(wù)器(2.2.2.2)
在路由器上 配置如下后
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#interface Ethernet0
Router1(config-if)#ip helper-address 1.1.1.1
Router1(config-if)#ip helper-address 2.2.2.2
Router1(config-if)#end
Router1#
實(shí)際效果是,不管是server1還是server2都將接收到包括dhcp請求,dns請求,以及其他udp的請求報(bào)文。
==============================
問題二的提出:
有時(shí)候,你會(huì)希望自己的網(wǎng)絡(luò)中的路由器動(dòng)態(tài)獲取ip地址(即配置路由器作為dhcp服務(wù)的客戶端),這種情況通常是不多見的,我們也強(qiáng)烈不建議這么做,因?yàn)槁酚善髯鳛榫W(wǎng)絡(luò)中間設(shè)備需要有高度的可管理性以及可靠性,而動(dòng)態(tài)地址是我們的路由器管理變得更加復(fù)雜和不穩(wěn)定。
但是,有一種情況比較適合配置路由器為dhcp客戶端,那就是路由器作為局域網(wǎng)(或者說內(nèi)部網(wǎng))的邊界連接到isp的時(shí)候。
解決實(shí)例;
用ip address dhcp client-id 命令來配置路由器為DHCP的客戶端,由此動(dòng)態(tài)獲取ip地址
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#interface Ethernet0
Router1(config-if)#ip address dhcp client-id Ethernet0 //開啟DHCP的客戶端,以使得該接口動(dòng)態(tài)的從DHCP服務(wù)器端獲得IP地址
Router1(config-if)#end
Router1#
Interface Ethernet0 assigned DHCP address 172.25.1.57, mask 255.255.255.0
Router1#
關(guān)于配置的相關(guān)討論;
1 CISCO的IOS在版本12.1(2)T之后,加入了DHCP客戶端以及DHCP服務(wù)器端功能,也就是說,在這之前的IOS只能配置DHCP的中繼功能(ip helper-address)。
2 和普通的DHCP客戶端一樣,路由器配置為DHCP客戶端后,也可以自動(dòng)獲得除ip地址以外的相關(guān)配置信息,例如網(wǎng)絡(luò)掩碼,默認(rèn)網(wǎng)關(guān),域名,DNS SERVER的ip地址。但是,要記住如果路由器本身用命令靜態(tài)配置了域名,則路由器自身靜態(tài)配置的域名為最終配置結(jié)果,而對(duì)于DNS SERVER 的信息,則是把動(dòng)態(tài)獲取的DNS SERVER ip 地址以追加的方式加入到靜態(tài)配置表中去。
3 下面的輸出是路由器動(dòng)態(tài)獲得默認(rèn)路由的情況下的輸出,輸出顯示由DHCP動(dòng)態(tài)獲得的路由條目為S(靜態(tài)),AD(管理距離為254),這里值得注意的是AD自動(dòng)被設(shè)置為254,由此保證由DHCP獲得的路由是作為最后路由被路由器選擇的,也就是說只有在靜態(tài)路由,以及其他動(dòng)態(tài)路由協(xié)議的路由表中不存在相應(yīng)的路由條目的時(shí)候才被選擇。
Router1#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is 172.25.1.1 to network 0.0.0.0
172.25.0.0/24 is subnetted, 1 subnets
C 172.25.1.0 is directly connected, Ethernet0
S* 0.0.0.0/0 [254/0] via 172.25.1.1
Router1#
4 在ISP的解決方案中,一般都會(huì)給路由器分配域名以及DNS server地址等信息。
可用show host命令來查看相關(guān)的信息;下面的例子顯示了通過dhcp獲得域名,以及DNS server地址等信息;
Router1#show host
Default domain is oreilly.com
Name/address lookup uses domain service
Name servers are 255.255.255.255, 172.25.1.1
Host Port Flags Age Type Address(es)
None (temp, OK) 0 IP 192.168.22.57
Router1#
5 一般可以用show ip interface命令來查看路由器通過dhcp獲得的ip地址等相關(guān)信息,看下面的例子
Router1#show ip interface
Ethernet0 is up, line protocol is up
Internet address is 172.25.1.57/24
Broadcast address is 255.255.255.255
Address determined by DHCP
MTU is 1500 bytes
6 最后,再次強(qiáng)調(diào)不推薦把路由器配置為dhcp的客戶端。當(dāng)然下面兩種情況除外,
■ 就是當(dāng)路由器作為網(wǎng)絡(luò)邊界設(shè)備連接進(jìn)isp的時(shí)候,可以考慮(比如現(xiàn)在很流行的adsl服務(wù),往往就采用動(dòng)態(tài)獲取地址,這是不是一個(gè)很迷你的應(yīng)用呢?)
■ 作為funs的娛樂手段,如果你卻是覺得這個(gè)技術(shù)很有意思,想在其中遨游一番,你不妨躲進(jìn)實(shí)驗(yàn)室好好的享受享受。
7 很遺憾,到現(xiàn)在為止cisco的路由器在配置為dhcp客戶端的時(shí)候,并沒有提供一種指定所要獲取的信息的方法,也沒有提供如何察看現(xiàn)有的動(dòng)態(tài)獲得的ip地址的所剩租期。相信,CISCO馬上會(huì)在這方面有所改進(jìn)。
==============================
問題三的提出:
把路由器配置為dhcp的服務(wù)器端,以對(duì)路由器下所連接的客戶工作站進(jìn)行ip地址的分配。
(這可真是一個(gè)了不起的改進(jìn)!路由器從此腰身一變,看上去更加多姿多彩了)
解決實(shí)例;
下面的配置命令,可以配置路由器為DHCP服務(wù)器,用以給DHCP客戶端動(dòng)態(tài)分配ip地址。
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#service dhcp //開啟 DHCP 服務(wù)
Router1(config)#ip dhcp pool 172.25.1.0/24 //定義DHCP地址池
Router1(dhcp-config)#network 172.25.1.0 255.255.255.0 // 用network 命令來定義網(wǎng)絡(luò)地址的范圍
Router1(dhcp-config)#default-router 172.25.1.1 //定義要分配的網(wǎng)關(guān)地址
Router1(dhcp-config)#exit
Router1(config)#ip dhcp excluded-address 172.25.1.1 172.25.1.50 //該范圍內(nèi)的ip地址不能分配給客戶端
Router1(config)#ip dhcp excluded-address 172.25.1.200 172.25.1.255 //該范圍內(nèi)的ip地址不能分配給客戶端
Router1(config)#end
Router1#
關(guān)于配置的相關(guān)討論;
1 CISCO路由器的dhcp服務(wù)器功能也是在ios 12.0(1)T.以后才出現(xiàn)的,這一功能的出現(xiàn),使我們沒有必要在專門網(wǎng)絡(luò)的中心(或者說企業(yè)本部)另外配置一臺(tái)DHCP server,從而降低了網(wǎng)絡(luò)構(gòu)建成本。
2 在路由器上直接配置dhcp服務(wù)器相比于傳統(tǒng)的在專門服務(wù)器上實(shí)現(xiàn)dhcp有其獨(dú)到的優(yōu)點(diǎn)。
比如
A 由于傳統(tǒng)的構(gòu)建方法是,在企業(yè)的總部設(shè)立DHCP服務(wù)器,各分支機(jī)構(gòu)通過路有器去獲取ip地址,所以當(dāng)dhcp服務(wù)器出現(xiàn)問題的時(shí)候,整個(gè)企業(yè)的網(wǎng)絡(luò)都會(huì)受到影響,而如果把dhcp 服務(wù)器功能設(shè)在各個(gè)分支機(jī)構(gòu)的路由器上實(shí)現(xiàn),則某個(gè)分支機(jī)構(gòu)的路由器DHCP出現(xiàn)問題,就只能影響該分支機(jī)構(gòu)的網(wǎng)絡(luò)本身,而其他分支機(jī)構(gòu)則不受任何影響。從而可見,實(shí)現(xiàn)了問題的局部化。
B 在各分支機(jī)構(gòu)的路由器上實(shí)現(xiàn)DHCP服務(wù)器功能后,大量的DHCP UDP請求報(bào)文將不會(huì)通過wan link 轉(zhuǎn)發(fā)到 中心機(jī)構(gòu)上去,由此,相比于傳統(tǒng)的方式,它有減少廣域網(wǎng)負(fù)荷的優(yōu)點(diǎn)。
C 同樣的道理,在各分支機(jī)構(gòu)的路由器上實(shí)現(xiàn)DHCP服務(wù)器功能后,如果某條廣域網(wǎng)連路壞了,本地的局域網(wǎng)依然能夠正常運(yùn)行
D基于路由器的DHCP 具有很高的可管理性,它通過ios的命令界面是比較容易配置的。
3 上邊的配置例子,我們用ip dhcp exclude-address 命令來指定不能用來被分配的ip地址,這種配置往往是很需要的(甚至說是必需的,幾乎所有的;路有其DHCP 服務(wù)器配置中都會(huì)有),因?yàn)橥幸恍┑刂肺覀儠?huì)用來作為其他的用途,比如,我們至少應(yīng)該保留路有器本身的地址不被分配給dhcp客戶端,還有一些比如說網(wǎng)絡(luò)服務(wù)器,打印機(jī)等等,我們也往往會(huì)給他指定靜態(tài)的地址,所以這一部分地址。我們不允許路有其分配出去,上例中的172.25.1.1 到172.25.1.50 之間,172.25.1.200 到172.25.1.255的地址就做了保留。
4 當(dāng)路由器給客戶端動(dòng)態(tài)分配地址后,就會(huì)綁定(binding)分配的ip地址以及客戶端設(shè)備的mac地址信息,保存在路由器的配置中,以便下一次相同的mac地址請求dhcp服務(wù)也能夠獲得同樣的ip地址。下面給出的例子是,用show ip dhcp binding 命令顯示的 ip binding的信息。其中Lease expiration 表示該ip 地址,客戶端還能占有的時(shí)間,(當(dāng)然客戶端可以在期滿之前再次發(fā)送dhcp請求報(bào),事實(shí)上dhcp的規(guī)范也是有這樣的規(guī)定的,即在租期還有一半時(shí)間的時(shí)候就會(huì)發(fā)出dhcp請求,如果租期更新失敗,那么再過省下時(shí)間的一半的時(shí)候,他還會(huì)發(fā)出dhcp的請求,依此類推。)
Router1#show ip dhcp binding
IP address Hardware address Lease expiration Type
172.25.1.51 0100.0103.85e9.87 Apr 10 2003 08:55 PM Automatic
172.25.1.52 0100.50da.2a5e.a2 Apr 10 2003 09:00 PM Automatic
172.25.1.53 0100.0103.ea1b.ed Apr 10 2003 08:58 PM Automatic
Router1#www.oreilly.com
==============================
問題四的提出:
你希望在dhcp服務(wù)器中配置各種參數(shù),已用來動(dòng)態(tài)分配給dhcp客戶端。
解決方案;
你可以通過下面的命令來配置各種dhcp參數(shù)。
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip dhcp pool ORAserver
Router1(dhcp-config)#host 172.25.1.34 255.255.255.0
Router1(dhcp-config)#client-name bigserver
Router1(dhcp-config)#default-router 172.25.1.1 172.25.1.3
Router1(dhcp-config)#domain-name oreilly.com
Router1(dhcp-config)#dns-server 172.25.1.1 10.1.2.3
Router1(dhcp-config)#netbios-name-server 172.25.1.1
Router1(dhcp-config)#netbios-node-type h-node
Router1(dhcp-config)#option 66 ip 10.1.1.1
Router1(dhcp-config)#option 33 ip 24.10.1.1 172.25.1.3
Router1(dhcp-config)#option 31 hex 01
Router1(dhcp-config)#lease 2
Router1(dhcp-config)#end
Router1#
關(guān)于配置的相關(guān)討論;
1 dhcp可以動(dòng)態(tài)分配除ip 地址以外的默認(rèn)路由,域名,域名服務(wù)器的地址,wins 服務(wù)器的地址等信息給客戶端。在RFC2132種定義了大量的標(biāo)準(zhǔn)配置選項(xiàng),可以在那里閱讀到更加詳細(xì)的信息。但是大部分的DHCP配置往往只是用到其中規(guī)定的很小的一部分常用選項(xiàng)。
2 為了配置的簡單化和易于理解,cisco提供了一些人類易于理解的別名來代替RFC2132種規(guī)定的配置選項(xiàng).
然你既可以使用cisco提供的用戶友好的別名來配置,也可以用option number命令來配置,這兩種方式cisco的ios都是可接受的。
比如說
RFC 2132 中的option 6是表示域名服務(wù)器的地址,則以下的兩種命令行結(jié)果一樣;
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip dhcp pool 172.25.2.0/24
Router1(dhcp-config)#dns-server 172.25.1.1
Router1(dhcp-config)#end
Router1#
配置方式一
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip dhcp pool 172.25.2.0/24
Router1(dhcp-config)#option 6 ip 172.25.1.1
Router1(dhcp-config)#end
Router1#
配置方式二
值得注意的是,你配置路由器的時(shí)候敲入的是配置2的命令,但是show runining configuration 命令得到則是他的用戶友好的別名,這可能會(huì)使你有些疑惑,但是實(shí)際上其結(jié)果是一樣的,請你放心。
3 有些配置選項(xiàng)可以接受多個(gè)配置參數(shù),例如默認(rèn)路由以及域名服務(wù)器都可以接受最多八個(gè)地址的配置,上面例子中就分別配置了兩個(gè)默認(rèn)路由器(默認(rèn)網(wǎng)關(guān))和兩個(gè)域名服務(wù)器的地址。
4 為了配置的方便,你也可以采用繼承的方法來配置各種參數(shù)。如下實(shí)例,首先配置父親的dhcp地址池 ROOT (172.25.0.0/16),其次我們又配置了兩個(gè)子地址池172.25.1.0/24 和172.25.2.0/24。這兩個(gè)子地址池,能夠自動(dòng)繼承父親地址池的配置信息。當(dāng)然,如果子地址池的配置信息和父親地址池的配置信息重復(fù),則孩子地址池的信息覆蓋父親地址池的配置信息。
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip dhcp pool ROOT
Router1(dhcp-config)#network 172.25.0.0 255.255.0.0
Router1(dhcp-config)#domain-name oreilly.com
Router1(dhcp-config)#dns-server 172.25.1.1 10.1.2.3
Router1(dhcp-config)#lease 2
Router1(dhcp-config)#exit
Router1(dhcp)#ip dhcp pool 172.25.1.0/24
Router1(dhcp-config)#network 172.25.1.0 255.255.255.0
Router1(dhcp-config)#default-router 172.25.1.1
Router1(dhcp-config)#exit
Router1(dhcp)#ip dhcp pool 172.25.2.0/24
Router1(dhcp-config)#network 172.25.2.0 255.255.255.0
Router1(dhcp-config)#default-router 172.25.2.1
Router1(dhcp-config)#lease 0 0 10
Router1(dhcp-config)#end
Router1#
必須說明的是,dhcp租期配置信息是唯一不能繼承的dhcp配置選項(xiàng),也就是說,你必須為每個(gè)孩子地址池顯式配置dhcp租期。如果該地址池沒有配置dhcp租期。則路由器使用默認(rèn)的租期(24小時(shí))。
5 上面的實(shí)例中有幾個(gè)用option配置的命令,其配置的意義為;
Router1(dhcp-config)#option 66 ip 10.1.1.1
Router1(dhcp-config)#option 33 ip 192.0.2.1 172.25.1.3
Router1(dhcp-config)#option 31 hex 01
option 66 ip 定義了tftp 服務(wù)器。
Option 33 ip 定義了靜態(tài)路由,他告訴所有的終端設(shè)備將發(fā)往目的地192.0.2.1的數(shù)據(jù)報(bào),首先發(fā)送到172.25.1.3。
Option 31 規(guī)定了客戶端使用ICMP Router Discovery Protocol(IRDP).使用這個(gè)協(xié)議,客戶端可以定期從本地路由器獲得更新信息,用以決定自己的最新的默認(rèn)網(wǎng)關(guān)地址。
==============================
問題五的提出:
DHCP的租期(DHCP Lease Periods)是DHCP相關(guān)知識(shí)中,一個(gè)比較重要的該概念,這里單獨(dú)列出來進(jìn)行說明。
基本的配置如下;
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip dhcp pool 172.25.2.0/24
Router1(dhcp-config)#lease 2 12 30
Router1(dhcp-config)#end
Router1#
關(guān)于配置的討論;
1 lease 命令的基本格式是 lease [days] [hours] [minutes]
上面的例子,表示設(shè)定DHCP租約為2天12小時(shí)30分。 你可以配置最大值為365天23小時(shí)59秒,也可以設(shè)置最小值1秒。默認(rèn)的DHCP租約是1天。
2 一般的規(guī)則是,對(duì)于那種dhcp客戶端數(shù)量比較大,并且客戶端聯(lián)入網(wǎng)絡(luò),斷開網(wǎng)絡(luò)比較頻繁的場合,一般把租約的時(shí)間配置的比較短,這樣子使得ip地址很快被收回,可以供另外的dhcp請求客戶使用。比較經(jīng)典的場合時(shí)比如飛機(jī)場的無線網(wǎng)絡(luò)。但是越短的租約,也使得dhcp請求包過多,增加了網(wǎng)絡(luò)的負(fù)擔(dān)。
3 相反的,在一個(gè)相對(duì)穩(wěn)定的網(wǎng)絡(luò)環(huán)境中,比如小型的辦公室網(wǎng)絡(luò),由于客戶端的數(shù)量往往變化不大,所以可以考慮適當(dāng)?shù)脑黾觗hcp的租約。這樣做的主要好處是,可以減少dhcp服務(wù)器的負(fù)擔(dān)。
4 記住,客戶端在自己的租約還有一半的時(shí)候,就會(huì)向服務(wù)器發(fā)出更新租約的請求,如果成功,則租約從新恢復(fù)為完整的租期,如果失敗,則又過剩下的一半租約后,再發(fā)出更新請求,如此規(guī)律,直到成功更新為止。
5 在很多場合,默認(rèn)的一天的租約是比較合理的,一般很少作修改。
5 一種比較極端的配置是,你可以規(guī)定租約為永久,即一旦客戶端獲得了ip地址后,只要他不物理斷網(wǎng),以后就再也不會(huì)向服務(wù)器發(fā)送dhcp租約更新請求了。這種配置在現(xiàn)實(shí)中就更加少見了。
配置命令如下;
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#ip dhcp pool COOKBOOK
Router1(dhcp-config)#lease infinite //規(guī)定租約為無限制
Router1(dhcp-config)#end
Router1#
6 你可以用show ip dhcp binding 命令察看dhcp租約。
Router1#show ip dhcp binding
IP address Hardware address Lease expiration Type
172.25.1.33 0100.0103.85e9.87 Infinite Manual
172.25.1.53 0100.0103.ea1b.ed Apr 11 2003 08:58 PM Automatic
172.25.1.57 0100.6047.6c41.a4 Apr 11 2003 09:17 PM Automatic
Router1#