1. 程式人生 > >巧用ROUTE命令實現跨網段訪問

巧用ROUTE命令實現跨網段訪問

問題的提出來自於我一個構想的實現,單位裡原有一個基於Windows NTWindows9x的區域網,其內部的靜態IP地址為120.11.0.1120.11.0.30,子網掩碼為255.255.255.0 ,其中打字室有一臺電腦(IP地址120.11.0.14,暫稱之為A機)也掛在網上,由於工作需要把打字室另外一臺電腦(因只有一個模組介面,故無法直接連線至網上,稱之為B機)和A機共享印表機,於是我就設計了一個小的對等網方案,網路拓撲結構如圖。在AB機上各添加了一塊網絡卡,用雙絞線跳線將兩卡直接相連。為了不與原有的網路發生衝突,我將A機的新網絡卡的IP地址設為了192.168.0.1, B機的IP地址相應設為

192.168.0.2 ,掩碼均為255.255.255.0,同時選用NetBUITCP/IP兩個網路協議,很順利地實現了我當初將兩臺機器互連的構想。
能否跨網段訪問可隨後又一個想法在我的心頭一閃而過,B機能否通過A機訪問到120.11.0.0網段上的機器資源呢?如果能做到,它就能解決建網中經常出現的介面不夠用問題,其用處實在太大了。抱著這個想法,我開始了實驗。要知道,在沒有路由器之前,人們就是利用一些加有多個網絡卡的PC機充當閘道器的,這不和我現在的情況一樣嗎!我開始四處找相關的軟體,找來找去,最終也還是沒有找到一個有用的答案。NETBUI是不可路由的協議,所以問題顯然要從TCP/IP協議入手。能否用在
B機的設定中新增一個閘道器的辦法來實現呢?我試著在B機的TCP/IP網路配置項的閘道器欄新增上了120.11.0.14,我當時的想法就是利用A機的雙網絡卡,用A機來充當一個路由中轉,因為在A機的網路上的芳鄰中我們既能看到120.11.0.0網段上的共享資源,也能看到192.168.0.0網段的B機。結果,我仍然無法Ping120.11.0.0網段上其他機器,我只能Ping通的是192.168.0.1120.11.0.14,也就是A機的兩塊網絡卡的IP地址。從120.11.0.9上去Ping 192.168.0.1192.168.0.2也還是不通,看來我後添的閘道器似乎並沒有起什麼作用。
靈機一動想起Route
我忽然想起了Route
這個在Windows 9x中並不讓人注意的命令,在120.11.0.9上執行了route print 之後,結果是如表一。表一:
active routes:
network address
netmask
gateway address
interface
metric
0.0.0.0
0.0.0.0
120.11.0.254
120.11.0.9
1
127.0.0.0
255.0.0.0
127.0.0.1
127.0.0.1
1
……
表二:
network address
netmask
gateway address
interface
metric
0.0.0.0
0.0.0.0
120.11.0.254
120.11.0.9
1
0.0.0.0
0.0.0.0
120.11.0.14
120.11.0.9
1
127.0.0.0
255.0.0.0
127.0.0.1
127.0.0.1
1
……
我試著又在120.11.0.9TCP/IP網路配置項的閘道器欄新增上了120.11.0.14,之後再執行route print,發現路由表有了變動,在上述結果中添加了一條,如表二所示。但是結果並不如意,仍然無法PingB機,通過檢查分析發現兩者距離向量都為1,且網路地址均為0.0.0.0,根據Microsoft公司的定義,第一個為其預設閘道器的原則,它是不可能訪問到我新增的第二個閘道器的,看來問題就出在這裡了!
一個命令解決問題隨後,通過學習,我發現利用Route 命令提供的:Route Delete Route ADD 兩條命令就可以成功地實現跨網段訪問的需求,為此我編寫了一個批處理命令,其內容如下:
route delete 0.0.0.0
route add 192.168.0.0 mask 255.255.255.0 120.11.0.14 metric 1
網路拓撲圖
route add 0.0.0.0 mask 255.255.255.0 120.11.0.254 metric 1
在測試機120.11.0.9上執行該批處理命令後再執行Ping192.168.0.1,終於系統返回了響應!隨後在網路上的芳鄰也能夠看到打字室的B機了!今後,如果120.11.0.0網段裡的主機需要對192網段的機器進行訪問,只需執行上述批處理命令即可實現跨網段訪問