NAT虛擬網路實務


本文是同步發表於RUN!PC雜誌。

作者:李忠憲 E-mail:shane@mail1.tmtc.edu.tw


一、前言

在IP普遍不足的情形下,使用NAT Router來解決問題,是目前
不得不然的做法。在中小型企業的網路架構中,NAT Router扮演非
常重要的角色,而NAT在應用上也有非常多的變化,例如:單純作
連線分享的ICS,或是透通式服務的NAT。

ICS是以多對一對應來解決問題,而對外服務主機則採取PORT
轉送的方式來克服。透通式NAT則採用混合對應方式,即一般工作
站使用多對多,而對外服務主機,則採取一對一對應。

NAT虛擬網路在架設完成後,會有許多限制和問題,所以要達
成像使用真實IP網路一樣的便利性,必須要對網路環境做一些調
校。本文擬就NAT虛擬網路相關實務操作加以探討,由於文章內容
是延續前一期的主題,因此關於如何作NAT對應就不再贅述,僅就
可能遭遇的困難提出討論。

二、路由設定的問題

使用NAT虛擬網路,首先必須瞭解路由怎麼繞,為什麼虛擬IP
可以通到外面,而外面的真實IP也可以連進來。如果您對路由沒有
概念,請您參考筆者公佈於市網中心網站的技術文件
(http://www.tp.edu.tw/service/routing.htm),在此不累述。

NAT虛擬網路的路由設定,必須仰賴NAT Router與連接WAN
的Router來相互配合。如果您是使用T1專線,那麼WAN Router就
是指連接T1的Router,如果您是使用ADSL,那就是指俗稱小烏龜
的ATU-R(聽說中華電信新採購的ATU-R是由ZyXEL所生產,不
知還叫不叫小烏龜)。

由於ATU-R拿來當Router使用效能不彰,所以有些公司會另行
採購真正的Router來串接,這個部分因屬於特例個案,在本文中不
討論,有興趣的讀者可以連到市網中心網站,參考路由設定技術文
件。

公司所取得的真實IP,必須切割出一小段,使用在WAN Router
與NAT Router之間所形成的網路上面,這個網路很小只需要2個可
用IP,一個給WAN Router連進來的Port使用,一個給NAT Router
連到WAN Router使用,再加上廣播位址和網路號碼,總共只要4個
IP,因此可以用255.255.255.252來當網路遮罩,習慣上起始IP可以
是0或252(割最前面或最尾巴的IP)。

其餘保留下來的IP,通通可以由NAT Router拿來作對應。但是
通常負責Router設定的電腦廠商,為了方便(懶得切或不會切),就
乾脆將真實IP切成兩半,如果WAN Router與NAT Router使用前半
段,那麼後半段就可以拿來作一對一對應,千萬不要把對外服務的
主機,對應到後半組真實IP,否則網路會不通。反之亦然,如果WAN 
Router與NAT Router使用後半段IP,那麼就只有前半段IP可以給
伺服器對應使用。

依照前面敘述來設定,假設真實IP是210.243.22.0~256,並且
將前半組IP設定給WAN Router與NAT Router使用,那麼WAN 
Router的路由設成細節如下表(其中第2個路由會由Router自動產
生,所以不必設定):

網路號碼 遮罩 閘道 封包繞
送方式
流經介面
0.0.0.0 0.0.0.0 小烏龜 轉送 Router的WAN Port
210.243.22.0 255.255.255.128 輸出入 Router的LAN Port
210.243.22.128 255.255.255.128 NAT Router 轉送 Router的LAN Port

假設使用的虛擬IP是168.192.0.1~256,則NAT Router的路由
設成細節如下表(其中第2個路由會由Router自動產生,所以不必
設定。第3個路由則因為是透過NAT機制處理,嚴格來說,不能算
是Router路由,這裡之所以敘述是為了表達觀念):

網路號碼 遮罩 閘道 封包繞
送方式
流經介面
0.0.0.0 0.0.0.0 WAN Router 轉送 Router真實IP Port
168.192.0.0 255.255.255.0 輸出入 Router虛擬IP Port
210.243.22.128 255.255.255.128 NAT機制處理 封包改
寫後輸
出入
Router虛擬IP Port

以上所說的WAN Router路由,通常會由賣Router的電腦公司
來設定,如果您要自己設定,必須要熟悉Router機制,目前也有不
少Router產品可以直接以瀏覽器連上去設定路由,如果未提供此功
能就必須以telnet方式設定,以Cisco的產品為例:必須再telnet之
後,先以enable指令取得管理權限,接著以config指令進入組態設
定模式。設定路由時使用下列語法:

ip route 網路號碼 網路遮罩 閘道介面或IP

更詳細的資料可以參考Cisco公司網站的說明。

三、IP封包過濾的問題

NAT Router由於橫跨在內部網路與外部網路之間,因此就成為
現成的防火牆。雖然Win2000的IP封包過濾機制跟真正防火牆產品
比起來,操控性仍然相去甚遠,許多重要的防火牆功能還做不到,
但是要作一些簡易的網路應用還是可以的。

IP封包過濾方式可以分成正面表列與負面表列兩種,正面表列
是指所有封包通通擋掉,要放行的必須訂過濾規則;負面表列則相
反是指所有封包通通放行,要擋掉的才訂過濾規則。

舉例來說,如果想要強迫使用者一定要使用Proxy,不能直接存
取網頁。可以使用正面表列,在NAT Router上將放行規則設定在輸
入過濾器,規則設定如後:來源IP是內部Proxy的虛擬IP,目的IP
不需指定(任意IP),封包類型為TCP 80(HTTP)。這樣使用者就
必須透過內部Proxy才能存取網頁,但是因為使用正面表列,所以
管制比較嚴格,其它必要的通訊協定也要一起放行,否則……

其它常見的應用,還有防止ping of death攻擊、擋垃圾郵件、擋
網路上的芳鄰、禁止員工使用real看新聞、擋特定股票站台……等
等,都可以透過IP封包過濾來完成。分別敘訴如下:

防止ping of death攻擊:使用負面表列,在NAT Router上將攔
阻規則設定在輸入過濾器,規則:來源IP不指定(任意IP),目的
IP是內部網路,封包類型為ICMP 8(PING)。

擋垃圾郵件:使用負面表列,在NAT Router上將攔阻規則設定
在輸入過濾器,規則:來源IP不指定(任意IP),目的IP是內部網
路,封包類型為TCP 25(SMTP)。

擋網路上的芳鄰:使用負面表列,在NAT Router上將攔阻規則
設定在輸入過濾器,規則:來源IP不指定(任意IP),目的IP是內
部網路,封包類型為TCP 137、138、139(NBT)。

禁止員工看real新聞:使用負面表列,在NAT Router上將攔阻
規則設定在輸入過濾器,規則:來源IP是內部網路,目的IP不指定
(任意IP),封包類型為TCP 554、TCP 7070(RSTP)。

禁止員工看股票:使用使用負面表列,在NAT Router上將攔阻
規則設定在輸入過濾器,規則設定如後:來源IP是內部網路,目的
IP指定為股票站台的IP,封包類型為TCP 80(HTTP)。

Win2000的Port轉送機制由於只限於從外連入的封包轉送,尚
無法像UNIX上面的ip chain一樣,做到從內連出的封包也可以轉
送,因此想要做到通透式Proxy,讓所有使用者上網時自動繞去Proxy
快取,以目前Win2000所提供的功能來說是不可能的!

四、DHCP和WINS的問題

架設DHCP伺服器最主要的功能是作網路設定值的自動指派,
而架設WINS伺服器則主要用來提供電腦名稱服務與資源共享,在
Win2000裡面因為採用AD集中控管,所以WINS已經不再重要,但
如果想要和UNIX Like或Win98主機交換資料,那麼架設WINS伺
服器仍有其價值。

首先要了解DHCP並不是對外服務主機,所以不可擺放在NAT 
Router外面,同時不需要作真實IP的對應。因為當工作站開啟時,
會使用廣播位址去尋找DHCP伺服器,這時候如果DHCP位於NAT 
Router外面,就會收不到廣播封包而無法回應。

指派動態IP給伺服器或工作站時,因為這些機器都位於內部網
路,當然必須要指派虛擬IP。但是當使用DHCP來指派伺服器設定
值(例如:DNS、WINS……等等)給用戶端時,就必須視情況而定。
如果伺服器位於外部網路,就要設成真實 IP;如果是在內部網路,
就必須設成虛擬IP。雖然有些內部網路的主機因為有對外服務,所
以已經對應成真實IP,但在DHCP的設定上仍然必須使用虛擬IP。

在NAT Router上對應給對外服務主機的真實IP(210.243.22.128 
/ 255.255.255.128,參考前一小節之說明),其路由是由NAT機制處
理,並不是由Router機制處理,所以當封包由外向內轉送時(外部
網路來取用服務時)沒有問題,但由內向外輸出時(自己內部的工
作站以真實IP來要求伺服器服務時)則因為無法觸動NAT機制,封
包會先送到WAN Router上,不但造成對外網路頻寬的浪費,同時也
加重了NAT Router的負擔。

WINS伺服器雖然可以對外服務,但在設計上與DHCP一樣歸類
為網段內服務主機,原因是如果Win9x工作站未指定WINS伺服器
的位址時,會以廣播位址來尋找WINS。因此WINS不可以擺放在
NAT Router外面,同時應使用虛擬IP來提供服務,如果要對外服務
才需要作真實IP的一對一對應。

五、網路上芳鄰的問題

我們常常會透過「網路上的芳鄰」存取網路資源,這在NAT虛
擬網路裡也可以正常運作,但是當要提供資源給NAT Router外面的
機器使用,或是要存取NAT Router外面的網路資源時,就會發生問
題。

我們先來瞭解一下「網路上的芳鄰」如何運作,「網路上的芳鄰」
是使用NBT通訊協定來提供共享資源清單。當使用者打開「網路上
的芳鄰」時,工作站會透過廣播位址(TCP 137)來詢問主要名稱瀏
覽器(Master Browser)以取得電腦名稱(NetBios名稱)清單,主
要名稱瀏覽器收到要求後,會將儲存在記憶體裡面的電腦名稱清單
以UDP 137送回給工作站,這個過程中我們會在螢幕上看到手電筒
左右掃射的動畫。

主要名稱瀏覽器通常是網路上第一台開機的電腦,如果網域裡
面有作業系統版本較高的主機,將會在開機後自動成為主要名稱瀏
覽器,它會每隔十五分鐘選擇一台機器當備份名稱瀏覽器(Backup 
Browser),備份清單上的資料。

網域內的工作站會每隔12秒廣播自己的電腦名稱,以及存在的
分享資源,主要名稱瀏覽器收到後,就會整理清單。網域內如果電
腦數太多會造成廣播封包急速增加,而佔用頻寬,規劃上可以使用
橋接器或Layer 2的Switch管制廣播封包的流向,減輕網路負荷,
有許多網路系統就是因為規劃不當而造成廣播風暴,致使網路效能
不彰。

當電腦清單出現後,使用者可以直接在共享資源上點兩下連線
使用,這時候工作站會送出TCP 138與共享資源的提供者建立連線,
並使用TCP 139來傳輸檔案資料。這個過程有時需要等待很久的時
間,甚至是連線失敗。

NBT封包以廣播方式查詢主要名稱瀏覽器時,是無法穿越路由
器或防火牆的,如果想穿越路由器必須以點對點方式傳輸,而這個
時候就必須指定目的地IP,該IP所在的電腦名稱瀏覽器被稱為WINS
伺服器。因為WINS伺服器的架設,原本工作站會定期廣播的機制,
轉變成固定向WINS註冊及查詢,不再以廣播方式進行,這樣可以
有效減輕網路負擔。一台專職的WINS伺服器,其效能足以提供給
五個網域內一千台以上的工作站使用。

如果路由器後方有防火牆,必須將TCP137~139、UDP137~139
放行,才能通過防火牆的攔堵,通常在NAT虛擬網路裡面,需要一
併考慮這個問題。

當你想要透過「網路上的芳鄰」去存取遠端網路資源時,必須
要設定自己的工作站加入到對方的WINS中,這種情況對NAT虛擬
網路來說,是不可行的。原因是工作站會把自己使用的電腦名稱和
虛擬IP,加入到對方WINS所維護的共享清單裡,當你去取用對方
分享出來的資源時,會因為對方無法把封包送到虛擬IP,而造成電
腦得不到回應的現象。

反過來說,當你想要透過「網路上的芳鄰」來提供網路資源給
遠端電腦時,也會發生問題。因為使用NAT虛擬網路的關係,我們
自己的WINS伺服器,所記錄的共享清單也通通是虛擬IP,所以即
使遠端電腦從清單上得知我們有分享資源,但他們向虛擬IP所發出
的要求封包,無法送達我們內部網路。

這種遠端分享的應用,既然無法透過WINS來完成,那麼唯一
可行的辦法就是利用lmhosts組態檔。lmhosts與UNIX裡面的hosts
的功能一樣,但觀念不同(Lmhosts是專為LM通訊而設計的,而
hosts是專為hostname通訊而設計的),UNIX裡面也有lmhosts,如
果要啟用必須修改/etc/host.conf組態裡的order參數,懶得改用hosts
代替也可以。

WinNT或Win2000可以在網路組態裡編輯lmhosts清單,但是
Win9x必須要自己手動建立,可以參考C:\windows\lmhosts.sam檔案
的說明來建立清單,建好的檔案檔名就叫lmhosts,必須拷貝到
C:\windows目錄下,才會起作用。

lmhosts的作用是將遠端電腦的名稱與真實IP,以靜態方式作對
應,工作站會先去比對lmhosts,如果找不到才去問WINS,這樣就
可以避免得到遠端電腦的虛擬IP。

在WinNT網域裡,如果要整合WINS與DNS兩種名稱服務,來
達到動態DNS的效果,會因為虛擬IP的關係,而遭遇困難,這個問
題在後文探討。在Win2000網域裡,如果要整合DHCP與DDNS來
作自動名稱服務,也會因為虛擬IP的關係而無法達成。

註:網段是指網路上不需透過閘道來轉送封包的連線範圍,只
要是廣播位址到得了的地方都是屬於同一網段。

六、DNS的問題

DNS與WINS所提供的名稱服務是不同的,DNS是提供公共領
域上的階層式名稱服務,而WINS是提供私有網路的平面式名稱服
務。NetBios名稱的詳細運作情形,請參考前一章之說明,由於NetBios
名稱是造成頻寬壅塞的主因之一,所以在Win2000中已經計劃將它
淘汰,現在只是為了與NT和98相容而暫時留著。

當我們自己網路內沒有DNS,而必須使用外部網路的DNS服務
時,你會發現瀏覽外部伺服器的網頁沒有問題,但是連到自己內部
的Web伺服器時,卻發生找不到網站的現象,而必須使用虛擬IP才
連得上去。

DNS與WINS的問題是相反的,WINS的問題在於它對外界提
供虛擬IP,造成跨網段連線的困難;DNS的問題在於它提供真實IP,
造成從外部跨網段連線沒問題,但內部網路反而無法使用。

要解決這個問題,必須在內部網路裡自己架設一台未授權
DNS,透過這台DNS來提供虛擬IP的正反解查詢。架設未授權DNS
對內部有伺服器的NAT虛擬網路來說是必要的,即使目前公司的
DNS是由其它網路供應商來託管,自己不需架設授權DNS,也是如
此。

未授權DNS主要是提供虛擬IP的正反解服務,所以不對外提供
服務,不需對應真實IP,也不需要向上層DNS註冊。在前一小節中
曾介紹使用DHCP來自動指派網路組態給工作站,DHCP所指派的
DNS,最好就是未授權DNS,這樣才不會出現找不到網站的問題。

如果公司的DNS是自己架設授權DNS,自己來管理,那麼由於
授權DNS是要對外服務,必須提供真實IP的正反解查詢。同時授權
DNS本身,必須在NAT上對應到真實IP,才能讓外部網路存取得到。

特別要注意的是,在授權DNS這台電腦上面,其網路組態中的
預設DNS,不可以寫自己這台電腦的真實IP,而必須使用虛擬IP。
原因是,當你在授權DNS自己這台電腦上面作DNS查詢時,封包
會送到預設DNS所指定的真實IP,該封包會被送到WAN Router上,
再透過NAT機制處理後送回來給自己。這段旅程太長常會逾時,而
造成找不到DNS伺服器的錯誤。如果寫成虛擬IP,那麼就會透過
Loop back回路傳送封包(實際上沒有送出去),效能反而更高。

註:DNS是公共領域服務,由NIC組織負責管理,因此架設DNS
時必須向上層DNS註冊,取得自己領域的管理授權。這樣經過註冊
的DNS我們稱為授權DNS,未向上層註冊者稱為未授權DNS。

七、動態DNS的問題

在WinNT裡面的動態DNS,並不是真正的動態DNS。這是因為
DNS並沒有隨著主機的增減自動建立正反解紀錄,而只是在查不到
主機記錄的情況下,要求WINS來作解析,所以真正會隨狀況動態
改變紀錄的是WINS,而非DNS。

在Win2000裡面情形不同,Win2000的DNS遵守RFC對DDNS
的定義規格,可以讓授權過的DHCP將完成IP配置的主機資訊,傳
送給DDNS,接著DDNS就會自動建立或刪除正反解記錄。

如前面所說,WINS和DHCP會將虛擬IP反映在紀錄上,所以
當它們與DNS合作時,就會把主機名稱對應成虛擬IP,這會造成授
權DNS的紀錄不一致,有的對應真實IP,有的對應虛擬IP,這種情
況造成外界有時無法連線到伺服器上。

然而如果讓WINS或DHCP與未授權DNS一起使用,就可以發
揮動態DNS的作用。反正未授權DNS本來就是作虛擬IP對應的,
現在WINS或DHCP正是提供這種資訊,所以雙方可以合作的很好,
並且使用動態DNS機制,可以讓未授權DNS完全零管理。

將來如果有主機需要使用真實IP時,再到授權DNS去增加一筆
紀錄就可以了。所以系統管理師只要將授權DNS管好就好了。

八、Web虛擬站台的問題

使用IIS虛擬站台,最主要的目的是作Web Hosting服務。也就
是在IIS上面設定多組IP導向到不同使用者的Web資料夾,然後在
DNS上面將這些IP對應給不同主機名稱,通常是使用者註冊的帳號
名稱,這樣就可以造出每個使用者都有一台專屬Web Server的假象。

舉例來說,例如:使用者John的專屬Web Server是在
john.tp.edu.tw,而使用者Mary 則是在mary.tp.edu.tw,但是事實上
這些服務是由同一台電腦來提供。

當你需要設定Web虛擬站台時,只能使用在一對一對應場合;
換句話說,使用Port轉送機制是無法設定IIS虛擬站台的。這一點
與前面所談論過的各種伺服器不同,它們都可以應用在NAT機制裡
的一對一對應或是Port轉送兩種應用場合。

而port轉送無法做到虛擬站台的限制,主要是由於IIS的虛擬站
台機制,採用所謂IP base的機制所造成的。如果您是使用Apache
中的name base虛擬站台,就不會有這問題。想進一步瞭解Apache
的作法,可以連到http://www.apache.org去尋找相關資料,本文並不
打算討論Apache。

進一步來討論IIS虛擬站台機制,讀者必須先把虛擬站台與虛擬
目錄的觀念釐清,虛擬站台必須結合IP alias功能,而虛擬目錄則只
是單純的HTTP要求重導向,兩者差別非常大。因為IIS會依據目的
地IP來作虛擬站台導向,如果使用Port轉送機制,因為只能對應單
一IP(也就是NAT Router的IP),而使得虛擬站台無法設定。

可能讀者也感受到Apache的確是優於IIS,雖然IIS因為ASP
流行的關係一時之間喧囂日上,但是在網路安全與ISP應用的層面
而言,IIS是不及格的。

九、SNMP的問題

一般說來,系統管理師會使用SNMP監視工具來進行網管,例
如:使用MRTG來監測流量……等等。由於SNMP是IP通訊協定的
一種,在NAT虛擬網路裡面也會因為虛擬IP的關係,而造成一些問
題。

在探討這個問題之前,我們先來瞭解一下SNMP的運作方式。
提供詳細資訊供人以SNMP查詢或設定的主機,可以稱為SNMP 
Server,而收集SNMP Server的訊息來加以分析的監視站,稱為SNMP 
Agent。SNMP 查詢要求是使用 TCP 161 Port,SNMP Server 收到要
求後會將要求的資訊以 UDP 1024 以後的 Port 傳送回 SNMP 
Agent。如果有使用正面表列來過濾封包,要記得將封包放行。

由於NAT虛擬網路使用虛擬IP,所以位於內部網路的SNMP 
Agent送封包到外部網路的SNMP Server時,該封包的來源位址會被
NAT Router改寫成真實IP(一般是直接採用NAT Router的IP,除
非你有設定多對多或另行對應到其它IP)。

Windows平台上的SNMP Server,會對SNMP Agent的IP進行
反查,因此您必須在授權DNS上面,將上述NAT Router的真實IP
登錄上去,否則就會造成SNMP Server拒絕SNMP Agent要求的現
象。反過來說,如果你要查詢的SNMP Server不是Windows平台,
也不會對SNMP Agent進行反查,那麼上述問題就不會發生。

再進一步來探討,如果你的SNMP Agent是Windows平台的話,
也會針對SNMP Server的IP進行反查,當然反查會透過未授權DNS
來進行,但由於未授權DNS查不到真實IP,所以會透過上層DNS
去向授權DNS查詢,如果這個查詢過程太久則會造成TimeOut,最
後導致SNMP封包回應失敗。

綜上所論,無論是SNMP Server或SNMP Agent(包含NAT Router
本身)都必須在授權DNS上面作註冊。如果SNMP查詢會跨過NAT 
Router,最好先經過實際測試,證實不會造成TimeOut問題才採購,
否則就必須考慮改採UNIX Like平台,以避免發生困擾。

十、如何進行網路偵錯

網路偵錯的第一步,就是釐清問題的來源。NAT虛擬網路的環
境,因為比一般網路環境要來得複雜,所以可能出錯的環節比較多,
因此仔細去追蹤網路上每件工作進行的路徑,有助於釐清問題關
鍵。以下就說明網路應用程式不能正確執行時,該如何處置!

舉例來說,當外界無法存取公司網頁,但是又可以ping到該Web
主機,問題出在哪裡呢?我們先把存取網頁的工作路徑列出來,如
下:

1. 工作站向Proxy要求網頁資料
2. Proxy向預設DNS伺服器查詢正解
3. 預設DNS向上層DNS查到公司授權DNS真實IP
4. 預設DNS向公司授權DNS的真實IP送出查詢要求
5. 公司授權DNS的真實IP被NAT Router對應成虛擬IP
6. 預設DNS取得公司Web真實IP
7. Proxy向公司Web的真實IP要網頁資料
8. 公司Web的真實IP被NAT Router對應成虛擬IP
9. Proxy取得公司網頁資料
10. 工作站取得公司網頁資料

從以上的工作路徑,我們整理出幾個關鍵:首先需排除Proxy
的問題,排除方法是在瀏覽器裡面將Proxy功能關閉。接著排除DNS
的問題,直接以打IP的方法來讀取網頁,看看讀取是否成功。第三
個關鍵是檢查NAT Router的一對一對應是否正確。最後是檢查Web 
Server本身是否設定有問題,服務有否運行。

以上描述的偵錯過程,其順序可以由上而下,以擴散方式來作
問題檢測,也可以由下而上,以收斂方式來檢測問題。當然實際會
遇到的問題,諸如:收不到郵件、信寄不出去、FTP要等很久……等
等問題,遠比上面的例子複雜。系統管理人員或許因為不明白工作
路徑,而無法排解疑難,這時候就必須進行路徑勘查。

在WinNT或Win2000裡面可以使用網路監視工具,來追蹤封包
傳遞的流程。監視工具可以指定要萃取的來源IP、目的地IP以及封
包類型,當然如果不指定就會監視全部封包,使用此工具可以明瞭
網路上發生每件事情,實際上到底是如何進行的。這個工具必須在
平常沒問題的時候使用,這樣才能看到完整的工作路徑。

除了上述網路應用程式的問題以外,有時候也會發生更低階的
問題,例如:ping不到主機、連線中斷或無回應……等問題。這類
問題的發生,大致上有底下五種可能。

一、 實體線路連接問題:

檢查近端網路設備(例如:集線器、路由器、數據機)的燈號,
Link(LNK)燈必須恆亮,而Action(ACT)燈必須閃爍,如果機器燈號
不正常,必須將機器重開機,讓機器進行自我測試以恢復狀態,有
些廠牌的網路設備,重開機後並不會立刻將韌體也一起重新啟動,
而需要以人工方式進入主控台(把這個設備連接在一台工作站的
COM埠,然後用終端機軟體簽入該設備),下指令將韌體重新啟動。
如果不是機器的問題,請將無法連線的設備更換網路線,再以Ping
指令測試是否線路有通。

二、 網路卡測試:

測試網路卡晶片是否能正常工作,一般網路卡會附贈偵錯程式
(有些直接執行Setup就可以看到偵錯選單),萬一沒有附偵錯程式
給你,也可以使用windows系統的內建偵錯工具, net diag指令來
偵錯。

三、 TCP/IP通訊協定偵錯:

以 ipconfig /all(UNIX使用ifconfig)檢查網路組態是否設定正
確,要檢查的項目是 IP 位址,網路遮罩,GATEWAY 的位址,DNS
設定。接著以 ping 127.0.0.1 測試loop back是否有回應,接著 ping 
自己的 IP 是否有回應,如果沒有問題接著 ping GATEWAY ,看看
是否有回應,如果沒問題,接著 ping 自己的DOMAIN NAME 看看
是否有回應,假如這些都沒問題,表示網路組態設定是正確的,如
果沒有得到預期的結果,請檢查網路組態,看看是哪個部分有問題。

四、 ROUTING TABLE偵錯:

以 netstat -r 檢查路由設定,可以了解本地網域(LAN)路由設
定是否正確(請參考拙作路由設定一文),如果設定上沒有問題,那
有可能是遠端網域的路由出狀況,由於遠端路由是由別人所管理,
同時有可能穿越一個以上的區域網路,所以管理的單位及人員非常
多,到底是誰的問題,應該聯絡誰處理,必須要追蹤路由,以釐清
問題點出在那兒,可以使用 tracert(UNIX使用traceroute)指令追
蹤路徑。

五、 Netbios名稱服務偵錯:

如果在網路上的芳鄰看不到正確的電腦列表,或是看到了但無
法存取,那就表示Netbios名稱服務出了問題。我們可以使用 nbtstat 
-n 查看目前的電腦列表,或使用 nbtstat -r 來送出廣播封包以更新
電腦列表的內容。

網路偵錯必須使用相當多的偵錯工具,這些工具的詳細用法與
結果判斷,可以參考筆者發表於市網中心網站的文章(Windows網
路管理,http://www.tp.edu.tw/documents/win-network.htm)

在Win2000裡面增加了一個新的偵錯工具pathping,這個指令
是ping和tracert的融合體,而最重要的是它包含了RSVP檢測功能。
讀者們應該還記得,RSVP通訊協定是用來作QoS服務的,想要在
網路上保留頻寬,必須所有躍點(jump point,指傳輸過程中封包所
經過的每個轉送閘道)都有支援RSVP,如果不清楚是否支援,我們
可以使用pathping –R gateway_ip來檢測該IP是否支援RSVP通訊協
定。

關於Win2000上面的網路偵錯工具,還有一項新特色。Win2000
裡面的WSH已經發展成標準shell承載體(Shell Loader),可以在上
面載入bash來執行,支援bash約25個指令,其中也包括基本的網
路偵錯工具,對於習慣使用telnet來進行管理的系統管理人員來說,
的確是一項福音。

十一、結語

NAT虛擬網路的盛行,除了是因應IP不足不得不然的作法,換
另一個角度來看,也是網路安全受到重視、網路管理更為細緻的表
徵。透過NAT Router的控管,網路安全可以提升,所有不對外服務
的內部機器因為使用動態虛擬IP,被入侵的機率幾乎是零(從內部
來的破壞例外),而所有對外服務因為都需流經NAT Router,所以也
可以很輕易透過IP封包過濾來保護。

但是相對的,要讓上述工作可行,就必須仰賴更細緻的網管技
術,並無法像過去一樣,線路接好就通。而是需要深入瞭解更多的
網路機制,作更精細的規劃,更多必要的設定,在網路偵錯上的功
夫也倍增於以往。相對於一般網路的管理,NAT虛擬網路對網管人
員的要求更為嚴苛,這也是本文之所以誕生的原因。

網路資源

1. 市網中心技術文件:http://www.tp.edu.tw/documents/
2. Windows 2000技術文件:http://www.microsoft.com/TechNet/win2000/
3. RFC組織:http://www.rfc-editor.org
4. Apache:http://www.apache.org