時間能夠以這樣的方式過去令人感到驚異。人們傾向于認(rèn)為計算機技術(shù)屬于高科技,但是,TCP/IP協(xié)議在過去的三十年里以各種形式出現(xiàn),無所不在。因此,TCP/IP協(xié)議有時間變得真正成熟起來,并且更穩(wěn)定和更可靠。然而,當(dāng)涉及到計算機的時候,事情就沒有那樣簡單了。當(dāng)路由包通過網(wǎng)絡(luò)的時候,有時候會出現(xiàn)錯誤。在這種情況下,熟悉Windows路由表是很有幫助的。路由表能夠決定來自有問題的機器的數(shù)據(jù)包的去向。在本文中,我將向你介紹如何查看Windows路由表以及如何讓W(xué)indows路由表中包含的數(shù)據(jù)有意義。
查看Windows路由表
路由表是Windows的TCP/IP協(xié)議棧的一個重要的部分。但是,路由表不是Windows操作系統(tǒng)向普通用戶顯示的東西。如果你要看到這個路由表,你必須要打開一個命令提示符對話框,然后輸入“ROUTE PRINT”命令。然后,你將看到一個類似于圖A中顯示的圖形。
圖A:這是Windows路由表的外觀
在我深入討論這個路由表之前,我建議你在命令提示符對話框中輸入另一個命令。這個命令是:IPCONFIG /ALL
我建議你使用IPCONFIG /ALL命令的理由是因為這個命令能夠顯示TCP/IP協(xié)議在機器中實際上是如何設(shè)置的。的確,你可以在網(wǎng)卡屬性頁認(rèn)真查看TCP/IP協(xié)議,但是,如果你從IPCONFIG得到這個信息,這個信息會更可靠。在過去的幾年里,我曾經(jīng)遇到過這樣一些例子,IPCONFIG報告的信息與機器中的TCP/IP協(xié)議設(shè)置屏幕中顯示的信息完全不一樣。這種事情不常見,但是,如果正好出現(xiàn)這種錯誤,你就會遇到這種不匹配的情況。坦率地說,鍵入到TCP/IP屬性頁中的信息反映了你想要Windows為選擇的網(wǎng)絡(luò)設(shè)置的TCP/IP協(xié)議。IPCONFIG提供的信息顯示了Windows實際上設(shè)置的協(xié)議。
即使你沒有出現(xiàn)一些奇怪的Windows錯誤,從IPCONFIG獲得你的配置信息仍是非常有用的。如果一臺機器有多個網(wǎng)卡,要記住每一個網(wǎng)卡綁定的設(shè)置是很困難的。IPCONFIG列出了如圖B所示的每一個網(wǎng)卡的各種設(shè)置,很容易閱讀。
圖B:IPCONFIG /ALL顯示這臺機器上每一個網(wǎng)卡的TCP/IP設(shè)置
當(dāng)這篇文章要討論路由表的時候,你現(xiàn)在也許很想知道我為什么讓你執(zhí)行IPCONFIG /ALL命令。這樣做的原因是你一般來說從來不看路由表,除非你的機器出現(xiàn)了問題。如果你遇到了問題,開始診斷故障的最佳地方就是對比IPCONFIG提供的信息和路由表中存儲的信息。
正如你在圖B中所看到的那樣,IPCONFIG/ALL屏幕顯示了IP地址、默認(rèn)網(wǎng)關(guān)等一些基本的TCP/IP信息。然而,路由表卻不是這樣容易看懂。所以,我要用一些時間討論如何閱讀路由表以及路由表中的信息代表什么意思。
為了理解這些列中的信息代表什么意思,你需要稍微了解一下路由器是如何工作的。路由器的工作是協(xié)調(diào)一個網(wǎng)絡(luò)與另一個網(wǎng)絡(luò)之間的通信。因此,一臺路由器包含多個網(wǎng)卡,每一個網(wǎng)卡連接到不同的網(wǎng)段。
當(dāng)用戶把一個數(shù)據(jù)包發(fā)送到本機以外的一個不同的網(wǎng)段時,這個數(shù)據(jù)包將被發(fā)送到路由器。路由器將決定這個數(shù)據(jù)包應(yīng)該轉(zhuǎn)發(fā)給哪一個網(wǎng)段。如果這臺路由器連接兩個網(wǎng)段或者十幾個網(wǎng)段也沒有關(guān)系。決策的過程都是一樣的,而且決策都是根據(jù)路由表做出的。
如果你要查看執(zhí)行“Route Print”命令之后屏幕顯示的內(nèi)容,你將發(fā)現(xiàn)路由表分為五列。第一列是網(wǎng)絡(luò)目的地址。列出了路由器連接的所有的網(wǎng)段。網(wǎng)絡(luò)掩碼列提供這個網(wǎng)段本身的子網(wǎng)掩碼,而不是連接到這個網(wǎng)段的網(wǎng)卡的子網(wǎng)掩碼。這基本上能夠讓路由器確定目的網(wǎng)絡(luò)的地址類。
第三列是網(wǎng)關(guān)。一旦路由器確定它要把這個數(shù)據(jù)包轉(zhuǎn)發(fā)到哪一個目的網(wǎng)絡(luò),路由器就要查看網(wǎng)關(guān)列表。網(wǎng)關(guān)表告訴路由器這個數(shù)據(jù)包應(yīng)該轉(zhuǎn)發(fā)到哪一個IP地址才能達(dá)到目的網(wǎng)絡(luò)。
接口列告訴路由器哪一個網(wǎng)卡連接到了合適的目的網(wǎng)絡(luò)。從技術(shù)上說,接口列僅告訴路由器分配給網(wǎng)卡的IP地址。那個網(wǎng)卡把路由器連接到目的網(wǎng)絡(luò)。然而,路由器很聰明,知道這個地址綁定到哪一個物理網(wǎng)卡。
最后一列是測量。測量本身是一種科學(xué)。但是,我將設(shè)法簡單向你解釋一下它們做什么。我聽說過的一個最佳的解釋測量的方法是用機場的詞匯對此進(jìn)行解釋。設(shè)想一下,我需要從北卡羅來納州的加洛特市飛往佛羅里達(dá)州的邁阿密。由于加洛特機場非常大,我要去邁阿密海灘可以有很多選擇。我可以乘坐西北航空公司的班機。那個班機能把我?guī)У矫軋?zhí)安州的底特律,然后從底特律飛往邁阿密。我還可以乘坐大陸航空公司的班機飛往休斯頓,然后飛往邁阿密。另一個選擇是乘坐美國航空公司的飛機直接飛往邁阿密。我應(yīng)該選擇哪一條線路呢?
在現(xiàn)實生活中,有許多因素值得考慮,如飛機票的價格和起飛的時間等。但是,讓我們假設(shè)這一切都是相同的。如果除了航線之外,航班都是一樣的,那么,我會選擇中途停留最少的航班。那會使我以最快的速度到達(dá)目的地。由于停留的次數(shù)少,我的銜接出問題的機會就少,行李丟失等問題也會減少。
路由是以同樣的方式工作的。許多時候,路由器有很多方法發(fā)送一個數(shù)據(jù)包。在這種情況下,以最短的(或者最可靠的)路徑發(fā)送數(shù)據(jù)包是有意義的。測量就在這里發(fā)揮作用了。Windows一般不查看測量列,除非通向一個目的地有很多路徑。如果有多個路徑,Windows將查看測量列以確定最短的路徑。這是一種非常簡單的解釋。但是,這種解釋說明了要點。
額外的路由選擇
早些時候,我曾介紹過“Route Print”命令。但是,你用“Route”命令實際上能夠做很多事情。“Route”命令的參數(shù)如下:
ROUTE [-f] [-p] [command [destination] []
-f開關(guān)是可以選擇的。這個開關(guān)告訴Windows清除路由表中所有的網(wǎng)關(guān)輸入記錄。如果這個-f開關(guān)與其它命令一起使用,那么,在執(zhí)行這個命令中的其它指令之前,所有的網(wǎng)關(guān)輸入記錄都將被清除。
-p開關(guān)使指定的路由保持不變。一般來說,當(dāng)服務(wù)器重新啟動的時候,你通過“ROUTE”命令指定的任何路由都會被刪除。-p開關(guān)告訴Windows保留這個路由,即使系統(tǒng)重新啟動也不改變。
“ROUTE”命令參數(shù)的命令部分相對簡單一些。這個命令集包含PRINT、ADD、DELETE和CHANGE四個選項。我曾向你們介紹過“ROUTE PRINT”命令。即使這個命令也包含其它的選項。例如,你可以使用通配符與這個命令一起使用。例如,如果你只要輸出與192.x.x.x子網(wǎng)有關(guān)的路由,你可以使用這個命令:“ ROUTE PRINT 192*”。
“ROUTE DELETE”命令的工作方式與“ROUTE PRINT”非常相似。簡單地輸入“ROUTE DELETE”命令,然后輸入你要從路由表中刪除的目的地址和網(wǎng)關(guān)就可以了。例如,如果你要刪除192.0.0.0網(wǎng)關(guān),你可以輸入這個命令:“ROUTE DELETE 192.0.0.0”。
“ROUTE CHANGE”和“ROUTE ADD”命令的基本參數(shù)都相同。當(dāng)你輸入這個命令的時候,你必須指定目的地、子網(wǎng)掩碼和網(wǎng)關(guān)。你還可以指定一個測量和接口,不過,這是可以選擇的。例如,如果你要使用最低參數(shù)增加一個目的地,你可以輸入如下命令:ROUTE ADD 147.0.0.0 255.0.0.0 148.100.100.100
在這個命令中,147.0.0.0是你新增加的目的地址。255.0.0.0是這個目的地址的子網(wǎng)掩碼,148.100.100.100是網(wǎng)關(guān)。你可以使用METRIC和IF這兩個參數(shù)擴大這個命令的功能。例如:ROUTE ADD 147.0.0.0 255.0.0.0 148.100.100.100 METRIC 1 IF 1
測量這個參數(shù)是可以選擇的。但是,它指定了測量或者路由跳數(shù)的數(shù)量。IF參數(shù)告訴Windows使用哪一個網(wǎng)卡。在這種特殊的情況下,Windows將使用作為接口1與Windows綁定的網(wǎng)卡。如果你不使用IF參數(shù),Windows將搜索可供使用的最佳的網(wǎng)卡。
結(jié)論
在這篇文章中,我解釋了如何使用“ROUTE”命令顯示W(wǎng)indows路由表,和如果有必要的話如何修改這些路由表。如果你需要一些額外的幫助,你輸入“ROUTE /?”命令可以得到更多的參數(shù)的例子。