引言:當電腦必須雙網卡傳輸時,經常會出現網絡中斷的現象,但若禁用其中一個網絡,另一個可以正常使用。那么究竟應該如何解決這一困擾呢?筆者結合實際經驗談一談。
電腦經常會因工作環(huán)境需要,必須使用雙網卡進行傳輸,但是如果遇到網絡中斷的現象,要如何解決呢?網絡拓撲圖如圖1所示,外網與內網的網絡配置如圖2所示。
當裝有雙網卡的計算機啟動后,查看本地的路由信息如下頁表1所示。若打開央視網站,就發(fā)現網站打不開,通過PING命令檢查網絡連通性,在DOS下執(zhí)行PING 162.168.1.1可以正常通信,因為這是一個直接路由,看來到本地網關是通的。但無法連接央視網站,結果顯示如下:
C:windowssystem32>ping www.cctv.com
圖1 網絡拓撲結構
圖2 外網與內網的網絡配置
圖3 路由跟蹤情況
正 在 Ping cctv.xdwscache.ourglb0.com[116.211.251.37] 具有 32 字節(jié)的數據:
請求超時。
請求超時。
請求超時。
請求超時。116.211.251.3 7的 Ping統(tǒng)計信息:
數據包:已發(fā)送 = 4,已接收 = 0,丟失=4(100%丟失)。
當然以上不足以說明哪里出了問題,接著通過路由跟蹤命令來查看數據包的走向,結果發(fā)現了端倪,如圖3所示。下面筆者進行分析:原來數據包直接轉到了192.168.100.1網關上了,也就是內網的網關。但從活動路由表來看,有兩個默認路由了,但是系統(tǒng)隨機直接就轉到了內路路由的接口,當然無法連通了。但細心的朋友會發(fā)現無論是執(zhí)行PING命令還是路由跟蹤命令,都能正確解析到WWW.CCTV.COM的正確IP,這說明域名解析還是成功,DNS數據包應該是通過外網的接口出去了。
通過抓包也能證實這一點。如圖4所示:系統(tǒng)在進行DNS解析時分別通過兩個接口發(fā)出了DNS請求數據包,但只有通過外網返回了正確的DNS應答,從而得到了域名的IP地址,再通過解析得到的IP地址訪問外網時,因為都不在本地的網段內,就查看本地的路由表,發(fā)現有兩個默認路由,一個通過192.168.100.1接口出去,一個通過162.168.1.1接口出去,究竟選擇哪個出去,WINDOWS似乎沒有很好的協(xié)議方法,從上面的路由跟蹤來看,很不幸選擇了192.168.100.1接口,當然無法連通了。
圖4 抓取數據包截圖
下面筆者進行深入分析:有很多用戶感言有的網站打得開,有時又時斷時續(xù)了,下面通過訪問www.ifeng.com抓包來進一步剖析。當打開www.ifeng.com網站時,通過抓包發(fā)現通過外網接口出去一個DNS請求包,然后收到一個應答DNS請求包,得到正確的IP。同時通過內網接口出去5個DNS請求包,但同時返回5個網絡不可達的ICMP數據包,如此看來,每一次DNS解析都會經過這樣一個過程,讓WINDWOS系統(tǒng)無法正確判斷正確的出口走向,這樣就存在一定的隨機性,導致網絡時斷時續(xù)。
既然路由出口的問題,我們就重新布置出口路由,首先刪掉默認路由。在DOS下執(zhí)行Route delete 0.0.0.0 刪除默認路由后再來檢測網絡連通性。
C:windowssystem32>ping www.cctv.com
Ping 請求找不到主機www.cctv.com。請檢查該名稱,然后重試。這個是因為系統(tǒng)找不到出去的接口,也不會與DNS取得聯(lián)系,就直接顯示找不到主機了。
接下來增加一條永久路由,如表2所示。(防止計算機啟動后消失)。
表1 本地路由信息
表2 增加永久路由后的信息
route -p add 0.0.0.0 mask 0.0.0.0 162.168.1.1
這樣配置后,所有除192.168.100.0網段以外的所有數據包都會轉發(fā)到外網接口,從而保證了外網的正常訪問了。
問題延伸:如果在內段上還有其它網段需要訪問,比如還有192.168.10.0需要訪問,這里也要增加一條永久路由:route -p add 192.168.10.0mask25 5.2 5 5.2 5 5.0 192.168.100.1(如 表 2所示),這樣就確保所有到網段192.168.10.0的數據包都轉發(fā)到192.168.100.1網關到達目的地。