Showing posts with label Network. Show all posts
Showing posts with label Network. Show all posts

Jan 14, 2009

PING 命令詳解

Ping是潛水艇人員的專用術語,表示回應的聲納脈衝,在網路中Ping 是一個十分好用的TCP/IP工具。它主要的功能是用來檢測網路的連通情況和分析網路速度。 Ping有好的善的一面也有惡的一面。先說一下善的一面吧。上面已經說過Ping的用途就是用來檢測網路的連同情況和分析網路速度,但它是透過什麼來顯示連通呢?這首先要了解Ping的一些參數和返回資訊。

以下是PING的一些參數:

ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list

-t

Ping 指定的計算機直到中斷。

將地址解析為計算機名。

-n count

發送 count 指定的 ECHO 數據包數。默認值為 4。

-l length

發送包含由 length 指定的數據量的 ECHO 數據包。默認為 32 字節;最大值是65,527。

-f

在數據包中發送"不要分段"標誌。數據包就不會被路由上的網關分段。

-i ttl

將"生存時間"字段設置為 ttl 指定的值。

-v tos

將"服務類型"字段設置為 tos 指定的值。

-r count

在"記錄路由"字段中記錄傳齣和返回數據包的路由。count 可以指定最少 1 台,最多 9 台電腦。

-s count

指定 count 指定的躍點數的時間戳。

-j computer-list

利用 computer-list 指定的計算機列表路由數據包。連續計算機可以被中間網關分隔(路由稀疏源)IP 允許的最大數量為 9。

-k computer-list

利用 computer-list 指定的計算機列表路由數據包。連續計算機不能被中間網關分隔(路由嚴格源)IP 允許的最大數量為 9。
-w timeout

指定超時間隔,單位為毫秒。

destination-list

指定要 ping 的遠程計算機。

Ping的返回資訊有"Request Timed Out"、"Destination Net Unreachable"和"Bad IP address"還有"Source quench received"。

"Request Timed Out"這個資訊表示對方主機可以到達到TIME OUT,這種情況通常是為對方拒絕接收你發給它的數據包造成數據包丟失。大多數的原因可能是對方裝有防火牆或已下線。

"Destination Net Unreachable"這個資訊表示對方主機不存在或者沒有跟對方建立連接。這裡要說明一下"destination host unreachable"和"time out"的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其他原因不可到達,這時候會齣現"time out",如果路由表中連到達目標的路由都沒有,那就會出現"destination host unreachable"。

"Bad IP address" 這個資訊表示你可能沒有連接到DNS伺服器所以無法解析這個IP地址,也可能是IP地址不存在。

"Source quench received"資訊比較特殊,它齣現的機率很少。它表示對方或中途的伺服器繁忙無法回應。

怎樣使用Ping命令來測試網路連通呢?

連通問題是由許多原因引起的,如本地配置錯誤、遠程主機協議失效等,當然還包括設備等造成的故障。

首先我們講一下使用Ping命令的步驟。

使用Ping檢查連通性有五個步驟:

1. 使用ipconfig /all觀察本地網路設置是否正確;

2. Ping 127.0.0.1,127.0.0.1 回送地址Ping回送地址是為了檢查本地的TCP/IP協議有沒有設置好;

3. Ping本機IP地址,這樣是為了檢查本機的IP地址是否設置有誤;

4. Ping本網網關或本網IP地址,這樣的是為了檢查硬體設備是否有問題,也可以檢查本機與本地網路連接是否正常;(在非局域網中這一步驟可以忽略)

5. Ping遠程IP地址,這主要是檢查本網或本機與外部的連接是否正常。

在檢查網路連通的過程中可能齣現一些錯誤,這些錯誤總的來說分為兩種最常見。

1. Request Timed Out

"request time out"這提示除了在《PING(一)》提到的對方可能裝有防火牆或已關機以外,還有就是本機的IP不正確和網關設置錯誤。

①、IP不正確:

IP不正確主要是IP地址設置錯誤或IP地址衝突,這可以利用ipconfig /all這命令來檢查。在WIN2000下IP衝突的情況很少發生,因為系統會自動檢測在網路中是否有相同的IP地址並提醒你是否設置正確。在NT中不但會齣現"request time out"這提示而且會齣現"Hardware error"這提示資訊比較特殊不要給它的提示所迷惑。

②、網關設置錯誤:這個錯誤可能會在第四個步驟齣現。網關設置錯誤主要是網關地址設置不正確或網關沒有幫你轉發數據,還有就是可能遠程網關失效。這裡主要是在你Ping外部網路地址時齣錯。錯誤表現為無法Ping外部主機返回資訊"Request timeout"。

2. Destination Host Unreachable

當你在開始PING網路計算機時如果網路設備齣錯它返回資訊會提示"destination host unreachable"。如果局域網中使用DHCP分配IP時,而碰巧DHCP失效,這時使用 PING命令就會產生此錯誤。因為在DHCP失效時客戶機無法分配到IP系統隻有自設IP,它往往會設為不同子網的IP。所以會齣現"Destination Host Unreachable"。另外子網掩碼設置錯誤也會齣現這錯誤。

還有一個比較特殊就是路由返回錯誤資訊,它一般都會在"Destination Host Unreachable"前加上IP地址說明哪個路由不能到達目標主機。這說明你的機器與外部網路連接沒有問題,但與某台主機連接存在問題。

舉例說明

我管理的網路有19台機,由一台100M集線器連接伺服器,使用DHCP動態分配IP地址。

有一次有位同事匆忙地告訴我"我的OUTLOOK打不開了",我到他機器檢查,首先我檢查了本地網路設置,我用ipconfig /all看IP分配情況一切正常。接著我就開始PING網路中的其中一台機器,第一次PING結果很正常,但OUTLOOK還是無法使用其他網路軟體和Copy網路文件都可以使用但網路速度很慢,第二次PING我用了一個參數-t(-t可以不中斷地PING對方,當時我想PING一次可能發現不了問題)發現有time=30ms和request time out,從伺服器PING這台機就更有趣,request time out比正常數據還多,在局域中竟然有time=30ms和request time out太不正常了。開始我認為是網卡的問題但換網卡後故障依舊,重做網線還是不能解決問題,這故障真有趣!最後我沒辦法了把它插在集線器端口上的另一端的網線換到另一個端口,哈!故障解決了。原來是集線器端口壞了。

如何用Ping命令來判斷一條鏈路的速度?

Ping這個命令除了可以檢查網路的連通和檢測故障以外,還有一個比較有趣的用途,那就是可以利用它的一些返回數據,來估算你跟某台主機之間的速度是多少字節每秒

我們先來看看它有那些返回數據。

Pinging 202.105.136.105 with 32 bytes of data:

Reply from 202.105.136.105: bytes=32 time=590ms TTL=114

Reply from 202.105.136.105: bytes=32 time=590ms TTL=114

Reply from 202.105.136.105: bytes=32 time=590ms TTL=114

Reply from 202.105.136.105: bytes=32 time=601ms TTL=114

Ping statistics for 202.105.136.105:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 590ms, Maximum = 601ms, Average = 593ms

在例子中"bytes=32"表示ICMP報文中有32個字節的測試數據(這是估算速度的關鍵數據),"time=590ms"是往返時間。

怎樣估算鏈路的速度呢?舉個例子吧。我們把A和B之間設置為PPP鏈路。

從上面的PING例子可以注意到,默認情況下發送的ICMP報文有32個字節。除了這32個字節外再加上20個字節的IP首部和8個字節的ICMP首部,整個IP數據報文的總長度就是60個字節(因為IP和ICMP是Ping命令的主要使用協議,所以整個數據報文要加上它們)。另外在使用Ping命 令時還使用了另一個協議進行傳輸,那就是PPP協議(點對點協議),所以在數據的開始和結尾再加上8個字節。在傳輸過程中,由於每個字節含有8bit數 據、1bit起始位和1bit結束位,因此傳輸速率是每個字節2.98ms。由此我們可以估計需要405ms。即68*2.98*2(乘2是因為我們還要 計算它的往返時間)。

我們來測試一下33600 b/s的鏈路:

Pinging 202.105.36.125 with 32 bytes of data:

Reply from 202.105.36.125: bytes=32 time=415ms TTL=114

Reply from 202.105.36.125: bytes=32 time=415ms TTL=114

Reply from 202.105.36.125: bytes=32 time=415ms TTL=114

Reply from 202.105.36.125: bytes=32 time=421ms TTL=114

Ping statistics for 202.105.36.125:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 415ms, Maximum = 421ms, Average = 417ms


看是不是差不多啊。

這裡大家可能要注意到,這估算值跟實際值是有誤差的,為什麼呢?因為我們現在估算的是一個理論值,還有一些東西我們沒有考慮。比如在網路中的其他干 擾,這些干擾主要來之別的計算機。因為在你測試時不可能全部計算機停止使用網路給你做測試,這是不實際的。另外就是傳輸設備,因為有某些設備如MODEM 它在傳輸時會把數據壓縮後再發送,這大大減少了傳輸時間。這些東西產生的誤差我們是不能避免的,但其數值大約在5%以內我們都可以接受(利用MODEM傳 輸例外),但是可以減少誤差的產生。比如把MODEM的壓縮功能關閉和在網路沒有那麼繁忙時進行測試。有時候誤差是無須消除的。因為我們需要這些誤差跟所 求得的理論值進行比較分析,從而找齣網路的缺陷而進行優化。這時測試網路的所有數據包括誤差都會成為我們優化的依據。

還要注意,這種演算法在局域網並不適用,因為在局域網中速度非常的快幾乎少於1ms,而Ping的最小時間解析度是1ms,所以根本無法用Ping命令來檢測速度。如果想測試速度那就要用專門儀器來檢測。

總的來說,Ping命令是一個在故障檢查方面很有用而且很便利的工具,你不應該忽視它的存在。


From http://fjtct.now.cn:7751/cs.now.cn/html/FAQ/VHost/200810/23-3253.html

Jan 12, 2009

FTP的工作方式:Active FTP 及 Passive FTP

為何常常連上 FTP 站台後,進去後就停留且無法列表?

防火牆有很多種,其中有一些會禁止那些不是從內部網路IP發出的連接請求。而FTP協議是個很老的東東,沒有考慮這個問題。可以這樣簡單描述一般FTP的 工作原理:Client對Server發出請求:「嗨,我的xx Port正等著你傳送資料呢,Sever聽到這個請求,就會建立一個連接,指向這個Port,並且開始傳送資料。這就回到了我們的問題,如果發出請求的 Client在防火牆的後面,而這個防火牆禁止外部IP建立連接,那麼當然Server(在外部)不能建立與Client的連接。

所以,過了幾年,人們修改了FTP協議以應付這種情況。這就是Passive Mode,工作原理如下:Client向Server發出Passive命令,Server回答說:「資料在xx Port等你,自己來拿。」而這回則由Client建立指向Server的連接,從而取得資料。這就避免了防火牆的限制。

FTP是一種文件傳輸協議,它支持兩種模式,一種方式叫做Standard(也就是Active,主動方式),一種是Passive(也就是PASV,被 動方式)。Standard模式FTP的客戶端發送PORT命令到FTP Server。Passive模式FTP的客戶端發送PASV命令到FTP Server。

而在大部份的防火牆設定中,使用 FTP 傳輸檔案時經常會遇到需要設定使用 Passive Mode 的 FTP,但大部份的 FTP client 軟體,default 大都是 Active Mode FTP,這二種 FTP 模式在傳輸上有何不同?先了解 FTP 的工作方式,有助於了解 active FTP 及 passive FTP 的不同。

一般的 FTP 使用 TCP port 20 及 21 二個 port,正常來說, port 20 是傳輸資料用,而 port 21 傳輸命令,但事實上並不是一直使用 port 20 來傳輸資料。

Active Mode FTP (主動模式 FTP)
在 Active 模式的 FTP client 一開始時會先使用一個大於 1024(N) 的 TCP port 連結至 FTP server 的port 21,然後 FTP client 會打開該 port 的下一個數字的 port (N+1) 並送至 FTPserver 說期望下次的溝通可以經由新的 port (N+1),這樣比較不會占用到 FTP server 的 port 21 而影響別的 FTP sessions,同時 FTP server 會使用 port 20 連結至 FTP client 新送過來的 port 號來傳資料。
所以在防火牆上需要打開:

FTP server port 21 from anywhere # 給 FTP client 開始連接
FTP server port 21 to port > 1024 # 給 FTP server 回應 client 命令
FTP server port 20 to port > 1024 # 給 FTP server 開始資料傳輸
FTP server port 20 from port > 1024 # 給 FTP cleint 傳送 data ACK 給 server

所以連接順序為:
1. FTP client use TCP port 1026 for command to FTP server command port 21
2. FTP server use TCP port 21 responed to FTP client command port 1026
3. FTP server use TCP port 20 for sending data to FTP client data port 1027 (1026 + 1)
4. FTP client use TCP port 1027 ( 1026 + 1) for data ACK to FTP server port 20

問題在於使用 Active Mode FTP 時主控權在 FTP client,FTP client 並不是真正的連至 FTP server 的data port (TCP port 20),它只是告訴 FTP server 它準備在那個 port 接收資料及port+1 傳送 ACK,並期望 FTP server 可以主動連接至 FTP client 所期望的 port,這在使用防火牆的環境中就會造成問題。

Passive Mode FTP (被動模式 FTP)
解決主動模式在防火牆外面時所發生無法連接的問題,可以用被動模式 FTP,在Passive Mode FTP 下,FTP client一開始和 Active Mode FTP 一樣,打開二個 port (N > 1024 及 N+1),使用第一個port 連接至 FTP server的 port 21,並送出命令 PORT 讓 server 連至 N port 再送出 PASV 命令給 server,這樣會造成 server使用 一個大於 1024 的 port 連接至 client 並送出命令 PORT N ( N >1024 ) 給client,這樣 client 就會使用 N + 1 並開始傳輸資料。

這樣子在防火牆上需要設定:

FTP server TCP port 21 from anywhere # FTP client 開始連接至 FTP server
FTP server TCP port 21 to port > 1024 # FTP server 回應 client 控制
FTP server TCP port > 1024 from anywhere # FTP client 資料傳輸
FTP server TCP port > 1024 to client port > 1024 # FTP server 回應資料 ACK至 client data port

連接順序為:
1. FTP client use TCP port 1026 to FTP server command port 21 via command PASV
2. FTP server use TCP port 21 to FTP client 1026 command port for reply data port 2024
3. FTP client use TCP port 1027 (N+1) to FTP server 2024 for data transmit and ACK
4. FTP server use TCP port 2024 to FTP client for data transmit and ACK

因為 Passive Mode FTP 是由 FTP server 發起一個大於 1024 的 port 至 client,在防火牆上的設定就相對簡單,而可以傳輸資料而不會被防火牆 block。因為FTP Server會開放一個隨機的高Port,儘管在IIS4和IIS5裡面Port的範圍是1024-5000,但是許多FTP Server的Port範圍卻可達到了1024-65535,這個時候在這個主動開放的隨機Port上是有完全的訪問權限喔,如果IIS也要設置成開放的 Port為1024-65535,設置方法如下:

1. regedt32
2. 找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. 編輯→新增→數值→ValueName:MaxUserPortDataType:REG_DWORDValue:65534

現在的FTP軟體裡面包括在IE5以上的版本裡面,也已經支持這兩種模式了。一般一些FTP客戶端的軟體就比較好設置了,一般都有一個PASV的選項,比 如CuteFTP,傳輸的方式都有Standard和PASV的選項,可以自己進行選擇;另外在IE裡面如果要設置成PASV模式的話,可以在工具→網際 網路選項→進階→使用被動式FTP(啟用),否則就採用Standard模式。

所以如果遇到了有防火牆或者怕配置麻煩的話,還是採用PASV模式比較好些,但是如果真的對安全的需求很高的話,建議採用Standard模式。如何設置 Standard模式?首先要建立一條規則就是允許內部的IP連接外部的IP的21 Port;第二條就是禁止外部IP的TCP 20 Port連接內部IP小於1024的Port,這條是為了防止外部連接內部的一般Port;第三條驗證ACK是否等於1,這個的原理就要參見TCP建立連 接的三方交握了。

在 Windows 下原來的 ftp client 並沒有 passive 這個指令,但可以利用 literal 指今來下給 FTP server FTP session 為 Passive Mode。方法如下:

C:\>ftp 10.10.100.121
Connected to 10.10.100.121.
220 (vsFTPd 2.0.1)
User (10.10.100.121:(none)): ftp
331 Please specify the password.
Password:
230 Login successful.
ftp> literal pasv
227 Entering Passive Mode (10,10,100,121,242,172)
ftp>

可以看到進入 Passive Mode 了.使用的 port 號碼是 (242*256)+172= 62124

若是 UNIX,但 FTP client 不支援 Passive Mode 指令,可以用 quote pasv。
Linux 作業系統的話,則可以利用 Passive 指令來切換。


#### ------ Active FTP VS Passive FTP ------ ######

Active FTP :
command : client >1023 -> server 21
data : client >1023 <- server 20

















Passive FTP : command : client >1023 -> server 21
data : client >1023 -> server >1023

Oct 22, 2008

add static route in windows

Add static route in windows:
1. route print -- show current routing table
2. route add 192.168.2.0 mask 255.255.255.0 192.168.0.1 metric 1
-- add connecting to 192.168.2.* through 192.168.0.1 gateway .
3. route -p add
--permanent add to routing table

Aug 12, 2008

ftp Illegal PORT command

ftp> LS
500 Illegal PORT command
425 Unable to build data connection: Connection refused
ftp>

FTP(File Transfer Protocol檔傳輸協定)服務是基於TCP協定的一種服務,用於電腦之間相互傳送檔,用戶通過它能夠獲取Internet中的資源。FTP提供 了登錄、目錄查詢、檔操作及其他會話控制功能。上傳或下載網站文件時也會用到它。
PORT模式:PORT模式建立的資料連結通道是由FTP伺服器端發起,FTP伺服器使用20埠連接用戶端的某一個大於1024的埠。
PASV模式:PASV模式的資料傳輸鏈路的建立是由FTP用戶端發起的,它使用一個大於1024的埠連接伺服器上1024以上的某一個埠。
用戶在登錄FTP的過程中,伺服器應該使用21埠(也可使用20埠和一些不固定的大於1024的埠),用戶端應該使用大於1024的埠。由於網路防火牆對埠的嚴格控制和複雜的網路環境,所以很容易就出現用戶無法登錄FTP伺服器的問題。
為了能成功登錄FTP伺服器,用戶端必須正確設置使用PASV或PORT模式登錄。
1.使用內部 Private IP位址
當用戶端使用PORT登錄方式時,FTP伺服器將無法連接用戶端建立資料連結。因為用戶端沒有公網IP位址,這種情況下,用戶端必須使用PASV登錄方式。這就是很多內網用戶不能登錄FTP伺服器的一個重要原因。
2.使用Public IP位址
當用戶端使用PASV登錄方式時,用戶端向伺服器發送連接請求,建立資料連結通道,這時可以順利登錄FTP伺服器。如果這時使用PORT登錄方式,在建立資料連結通道時,由伺服器向用戶端發送連接請求,此時連接請求會被防火牆攔截,除非開放大於1024的高端埠。

Ex.
IE -> 工具 -> 網際網路選項 ->進階 -> 瀏覽 -> 使用被動式FTP
Windows DOS doesn't support PASV mode.

Jun 24, 2008

Windows AD domain port and firewall

Windows AD/DNS 需在 Firewall 打開下列 port 與 Services

-------Port lists--------
53/udp
88/udp
135/tcp
137/udp
138/udp
139/tcp
389/udp
389/tcp
445/tcp
1025/tcp

8/icmp

--------------

1. ICMP : echo-request / 8

2. TCP 135 epmap, RPC
139 netbios-ssn,NetBIOS Session
389 LDAP, Lightweight Directory Access Protocol
445 microsoft-ds,SMB
1025 Remote Storm
3. UDP 53 domain,Domain Name Server
88 Kerberos
137 netbios-ns,NETBIOS Name Service
138 netbios-dgm,NETBIOS Datagram Service
389 Lightweight Directory Access Protocol

Mar 12, 2008

Router : show access-list result

# show access-list

Extended IP access list 100
10 permit ip 192.168.10.0 0.0.1.255 any ->10.* and 11.* can to any
20 permit ip 192.168.34.0 0.0.0.255 192.168.5.0 0.0.0.255 ->34.* can to 5.*
30 permit ip 192.168.36.0 0.0.0.255 192.168.5.0 0.0.0.255 ->36.* can to 5.*
40 deny ip 192.168.34.0 0.0.0.255 any ->Deny 34.* to any
50 deny ip 192.168.36.0 0.0.0.255 any ->Deny 36.* to any
60 permit ip any 192.168.1.0 0.0.0.255
70 permit ip any 192.168.2.0 0.0.0.255
80 permit ip any 192.168.50.0 0.0.1.255
90 permit ip any 192.168.58.0 0.0.0.255
100 permit ip any 192.168.61.0 0.0.0.255
110 permit ip any 192.168.20.0 0.0.1.255
120 permit ip 192.168.12.0 0.0.0.3 any
130 permit ip host 192.168.33.1 any ->192.168.33.1 can to any
140 permit ip any 192.168.3.0 0.0.0.3 -> any can to 3.1 and 3.2
150 permit ip host 192.168.4.1 any
160 permit ip any 192.168.52.0 0.0.0.3
170 permit ip host 192.168.56.1 any
180 deny ip any 192.168.0.0 0.0.63.255 -> Deny any to 1~63.*
190 permit ip any any -> Allow other IP , for internet route use

Mar 7, 2008

Router IP 流量流向指令

telnet 進入 router 後
> en
# config terminal
(config)# int s0/0/1 (or int FastEthernet0/0) -- 要查看的那個介面
(config-if)#ip accounting
(config-if)#end
(config)#show ip accounting --即可看到 IP 流向與流量資訊

最後記得將功能關閉,避免影響 Router 效能
(config-if)#no ip accounting

Mar 4, 2008

ping command,return error message:bad option specified

使用 PING 127.0.0.1
出現「bad option specified」的錯誤訊息,應該如何解決呢?

一般來說會出現這個問題是因為相關網路設備或軟體的 TTL 設定值錯誤所造成的,被設定成 > 255,此時是否針對 ping 的對象(目的地)進行檢查,以上面的例子來說,是 ping 本機,因此就從本機的 Windows 設定著手。

Windows 95/98/Me
找到:HKEY_LOCAL_MACHINESystemCurrentControlSetServicesVxDMSTCP
修改:DefaultTTL
資料型態:REG_SZ (字串)(1-255 十進位,預設值:64)

Windows 2000/XP/2003
找到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters
修改:DefaultTTL
資料型態:REG_DWORD (1-255 十進位,預設值:128)

Ping command result

Ping的返回信息有"Request Timed Out"、"Destination Net Unreachable"和"Bad IP address"還有"Source quench received"。

"Request Timed Out"這個信息表示對方主機可以到達到TIME OUT,這種情況通常是為對方拒絕接收你發給它的數據包造成數據包丟失。大多數的原因可能是對方裝有防火牆或已下線。

"Destination Net Unreachable"這個信息表示對方主機不存在或者沒有跟對方建立連接。這裡要說明一下 "destination host unreachable"和"time out"的區別,如果所經過的路由器的路由表中具有到達目標的路由,而目標因為其它原因不可到達,這時候會出現"time out",如果路由表中連到達目標的路由都沒有,那就會出現 "destination host unreachable"。

"Bad IP address" 這個信息表示你可能沒有連接到DNS服務器所以無法解析這個IP地址,也可能是IP地址不存在。

"Source quench received"信息比較特殊,它出現的機率很少。它表示對方或中途的服務器繁忙無法回應。

MTU

1.何謂MTU
MTU是最大傳輸單位(Maximum Transfer Unit)的英文縮寫。
你可以把他想像成一個郵政系統,當郵筒有一定數量的郵件,會有郵務車來把郵筒的信收走。那個郵筒到達一定的數量,就是MTU。

2.如何修改MTU
2.1.修改Windows XP的MTU
先打開登錄編輯程式:
按下"開始"→打開"開始功能表"→按下"執行"→在開啟那邊欄位輸入"regedit"→按下"確定"。
接著移動到:
"HKEY_LOCAL_MACHINE"→"SYSTEM"→"CurrentControlSet"→"Services"→"Tcpip"→"Parameters"→"Interfaces"。
在這邊,你應該會看到很多個像是亂數一樣的機碼(登錄編輯器顯示成目錄),每一個都點進去看,你應該會發現有一個機碼裡面的值與其他不同,可能會特別多值。那個就有可能是你的網路介面卡的機碼。點選機碼後,按下工具列的"編輯"→"新增"→"DWORD值",把此值的名稱取為"MTU",然後點兩下MTU值後,編輯MTU值,改成你想要的數值就可以。建議底數部分以十進位顯示,比較符合一般人看數字的習慣。改完機碼後,要記得重開電腦,設定才會成功套用。

3.MTU值要改多少才好?
請調小一點比較好。可是是無盡的調小調到0嗎?
首先先說,一般MTU預設值,乙太網路是1500,PPPoE(ADSL)用的是1492,古老的撥接是576。
又,根據微軟技術文章KB900926,我們可以知道,這個MTU的設定值最好是在1500到576之間。

4.MTU修改以後的影響
但是根據友人露露的實驗,香港的玩家修改MTU似乎產生的效果不大,推測是經過海底電纜的關係,所以MTU修改沒有用。

5.MTU修改以後,對整體網路的影響
5.1.修改MTU失敗
如果MTU修改失敗,最明顯的影響就是網路無法連線。
以前面比喻的郵務系統來說,就像你的信件裡面,全部都在寫郵件地址,而且還沒寫完。當然你要寄的內容根本就傳不出去,因為連地址都沒寫完怎麼寄。

5.2.修改MTU影響的網路傳輸速度以及網路反應速度
如果修改MTU成功,會影響到你網路的傳輸速度。如果你MTU開比較大,就像用大台郵務車在郵筒要塞到爆滿的時候才來收信,除非到指定的收信時間。你的郵件多的時候,就能夠很順利的寄出大量郵件;如果你的郵件少的時候,就會變成你的郵件要等一會兒才會被寄出去。

如果MTU開比較小,就像換一台150cc的機車當郵務車。
如果信少的話會很快就能送回郵局,但是信多好幾箱的時候……,請想像一台150cc機車拖著好幾箱信跑。也就是說,MTU開大,犧牲你的網路反應速度去換最大傳輸速度;MTU調小,就是犧牲你的最大傳輸速度去換取你的網路反應速度。但是MTU調小導致的最大傳輸速度改變我個人是沒感覺啦,所以我還是調小MTU的。至於修改MTU影響的網路速度,詳細計算的算式請參考SpeedGuide的資料。
5.3.因為MTU而導致網站連不上
根據其他網站的資料,MTU不夠大,可能會連不上一些網路;某些網路也會因為MTU太小連不上,似乎沒有定論。目前本人運氣比較好都沒有碰上這種情形,反而是台灣IP的比較多= =。

6.特別注意
修改MTU之後,重開機之前,請記得先把本頁的資料存到電腦裡面。免得網路連不上時改不回來。

測試 MTU 值的做法如下(請進入 DOS 模式):
ping -f -l [packetsize] [www.yourisp.com]
[packetsize]:看您是用何種的網路環境,從最大值開始試吧!可用的範圍是 1 ~ 1,500。[www.yourisp.com]:不限定啦!可以用你的 gateway IP,或是 gateway 之外的任何有效網址或IP。如果出現了 "Packet needs to be fragmented, but DF set",那就請你把 [packetsize] 的數值減小吧!直到不會出現此一訊息為止。在此另外說其它的東西。因為此封包(packet)包含了 20 bytes 的 IP header 及 8 bytes 的 ICMP header,所以上面得到的數值加上 28,才是我們要的 Maximum MTU。MSS 為 Maximum Segment Size 的縮寫,也就是實際傳輸的資料量。他和 MTU 的關係是 MTU = MSS + TCP&IP headers。而 TCP header 及 IP header 的大小均為 20 bytes,所以若是可以最大化的 PPPoE 環境,MTU 值為 1,492, 而我們用 ping 所得出來的數值是 1,492 - 28 = 1,464,而 MSS 為 1,492 - 40 = 1,452。

Feb 18, 2008

nslookup 使用說明(轉)

nslookup 使用說明

有些時候, user 可能會想要手動查詢 DNS 上一些資料, 或者是要看看 DNS 是否有問題, 此時我們最常用的工具就是 nslookup 了, 基本上 nslookup 會根據 /etc/resolv.conf 的內容去找到所要使用的 local DNS server.


使用說明

打入 nslookup 命令後, 會看到 > 提示符號, 此時打 ? 就會出現 nslookup 說明
Default Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

>?

$Id: nslookup.help,v 8.4 1996/10/25 18:09:41 vixie Exp $

Commands: (identifiers are shown in uppercase, [] means optional)
NAME - print info about the host/domain NAME using default server
NAME1 NAME2 - as above, but use NAME2 as server
help or ? - print info on common commands; see nslookup(1) for details
set OPTION - set an option
all - print options, current server and host
[no]debug - print debugging information
[no]d2 - print exhaustive debugging information
[no]defname - append domain name to each query
[no]recurse - ask for recursive answer to query
[no]vc - always use a virtual circuit
domain=NAME - set default domain name to NAME
srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc.
root=NAME - set root server to NAME
retry=X - set number of retries to X
timeout=X - set initial time-out interval to X seconds
querytype=X - set query type, e.g., A,ANY,CNAME,HINFO,MX,PX,NS,PTR,SOA,TXT,WKS,SRV,NAPTR
port=X - set port number to send query on
type=X - synonym for querytype
class=X - set query class to one of IN (Internet), CHAOS, HESIOD or ANY
server NAME - set default server to NAME, using current default server
lserver NAME - set default server to NAME, using initial server
finger [USER] - finger the optional USER at the current default host
root - set current default server to the root
ls [opt] DOMAIN [> FILE] - list addresses in DOMAIN (optional: output to FILE)
-a - list canonical names and aliases
-h - list HINFO (CPU type and operating system)
-s - list well-known services
-d - list all records
-t TYPE - list records of the given type (e.g., A,CNAME,MX, etc.)
view FILE - sort an 'ls' output file and view it with more
exit - exit the program, ^D also exits
>^D


Interactive/Noninteractive (交談式/非交談式)

執行 nslookup 時可以直接在後面跟著我們要查詢的資料, 那麼 nslookup 會直接把結果傳回來
如果只打入 nslookup [enter], 則進入交談模式, 出現提示符號 >, 此時 nslookup 會等待 user input command.

tung@traveler:~> nslookup www.yohoo.com
Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

Non-authoritative answer:
Name: yohoo.com
Address: 216.116.98.143
Aliases: www.yohoo.com

tung@traveler:~> nslookup
Default Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

> www.yohoo.com
Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

Non-authoritative answer:
Name: yohoo.com
Address: 216.116.98.143
Aliases: www.yohoo.com


Authoritative/Non-Authoritative

在查詢時有時會出現 Non-authoritative answer, 代表這個答案是由 local DNS 的 cache 中直接讀出來的, 而不是 local DNS 向真正負責這個 domain 的 name server 問來的.


常用的一些 option/command

1. set all
可以得知目前 nslookup 的一些 default 設定值
tung@traveler:~> nslookup
Default Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

> set all
Default Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

Set options:
nodebug defname search recurse
nod2 novc noignoretc port=53
querytype=A class=IN timeout=5 retry=4
root=a.root-servers.net.
domain=ee.ncku.edu.tw
srchlist=ee.ncku.edu.tw

2. server dns_server_ip
表示將內定的 local DNS 換成另一部 server
Ex: server 140.116.2.6

3. set type=any (set type=all)
表示在查詢某個 domain name 時, 將和這個 domain name 的一些相關資料一併顯示出來
> set type=any
> www.yohoo.com
Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

Non-authoritative answer:
www.yohoo.com canonical name = yohoo.com

Authoritative answers can be found from:
yohoo.com nameserver = ns1.netgateway.net
yohoo.com nameserver = ns2.netgateway.net
ns1.netgateway.net internet address = 216.116.98.7
ns2.netgateway.net internet address = 216.116.98.8

在上面的這個例子, 我們除了知道 www.yohoo.com 的 IP 外, 我們還得知了 yohoo.com 是由哪部 name server 在負責的. 因此如果想要知道 www.yohoo.com 真正在 yohoo.com 上的記錄是如何, 而不要有 local DNS cache 中傳回的資料, 我們可以配合使用 server 這個 command 將 default local DNS 改為負責 yohoo.com 的 DNS, 然後再查詢一次
> server 216.116.98.7
Default Server: ns1.netgateway.net
Address: 216.116.98.7

> www.yohoo.com
Server: ns1.netgateway.net
Address: 216.116.98.7

Name: yohoo.com
Address: 216.116.98.143
Aliases: www.yohoo.com

4. set type=ptr
本來要由 IP 反查 domain name時, 在直接打 IP 就行了, 但如果已經下了 type=any 的話, 要由 IP 反查時就沒那麼方便了, 此時 IP 4 個數字要倒著寫, 最後還要加上 in-addr.arpa. 以查 140.116.72.219 為例, 要輸入的就是 219.72.116.140.in-addr.arpa
tung@traveler:~> nslookup
Default Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

> 140.116.72.219
Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

Name: garfield.ee.ncku.edu.tw
Address: 140.116.72.219

> set type=any
> 140.116.72.219
Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

*** sun4.ee.ncku.edu.tw can't find 140.116.72.219: Non-existent host/domain
> 219.72.116.140.in-addr.arpa
Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

219.72.116.140.in-addr.arpa name = garfield.ee.ncku.edu.tw
72.116.140.IN-ADDR.ARPA nameserver = sun4.ee.ncku.edu.tw
sun4.ee.ncku.edu.tw internet address = 140.116.72.14

另外一個辦法就是先下 set type=ptr 或 set type=a 命令, 脫離 type=any 模式, 再進行 IP 反查 domain name 的 command
> set typr=ptr
> 140.116.72.219
Server: sun4.ee.ncku.edu.tw
Address: 140.116.72.14

219.72.116.140.in-addr.arpa name = garfield.ee.ncku.edu.tw
72.116.140.IN-ADDR.ARPA nameserver = sun4.ee.ncku.edu.tw
sun4.ee.ncku.edu.tw internet address = 140.116.72.14

5. ls domain
這個命令是要求 name server 將其負責的 zone 內容 show 出來, 這個動作相當於 name server 的整份記錄從 server 端傳回給 nslookup 這個程式, 這種傳回整個 zone 的動作叫作 zone transfer
> set type=any
> ee.ncku.edu.tw
Server: cs.ncku.edu.tw
Address: 140.116.2.6

ee.ncku.edu.tw nameserver = sun4.ee.ncku.edu.tw
ee.ncku.edu.tw preference = 1, mail exchanger = eembox.ee.ncku.edu.tw
ee.ncku.edu.tw internet address = 140.116.72.15
ee.ncku.edu.tw
origin = sun4.ee.ncku.edu.tw
mail addr = root.sun4.ee.ncku.edu.tw
serial = 1999033001
refresh = 3600 (1H)
retry = 900 (15M)
expire = 3600000 (5w6d16h)
minimum ttl = 3600 (1H)
ee.ncku.edu.tw nameserver = sun4.ee.ncku.edu.tw
sun4.ee.ncku.edu.tw internet address = 140.116.72.14
eembox.ee.ncku.edu.tw internet address = 140.116.72.15
> ls ee.ncku.edu.tw
Default Server: cs.ncku.edu.tw
Address: 140.116.2.6

> [sun4.ee.ncku.edu.tw]
$ORIGIN ee.ncku.edu.tw.
@ 1H IN A 140.116.72.15
hdlib4 1H IN A 140.116.72.4
ds114 1H IN A 140.116.72.114
hdlib5 1H IN A 140.116.72.5
ds115 1H IN A 140.116.72.115
yokoyama1 1H IN A 140.116.227.217
hdlib6 1H IN A 140.116.72.6
ds116 1H IN A 140.116.72.116
yokoyama2 1H IN A 140.116.227.218
ds117 1H IN A 140.116.72.117
ds120 1H IN A 140.116.72.120
ds118 1H IN A 140.116.72.118
ds121 1H IN A 140.116.72.121
ds119 1H IN A 140.116.72.119
ds122 1H IN A 140.116.72.122
ds123 1H IN A 140.116.72.123
intelab01 1H IN A 140.116.227.39
.....

What is DNS ??

作著::不詳
如果您為您的機器設定過internet連線﹐那麼您一定接觸過DNS了﹐但DNS又是什麼東東呢﹖說穿了﹐DNS是用來幫助記憶網路地址的﹐完全是為了遷就人類的記憶思維而設的。

DNS的全稱是Domain Name System﹐當您連上一個網址﹐在URL打上﹕www.hotmail.com的時候﹐可以說就是使用了DNS的服務了。但如果您知道這個www.hotmail.com的IP地址﹐直接輸入209.185.243.135 也同樣可以到達這個網址。其實﹐電腦使用的只是IP地址而已(最終也是0和1啦)﹐這個 www.hotmail.com只是讓人們容易記憶而來的。因為我們人類﹐對一些比較有意義的文字記憶(如﹕www.hotmail.com)﹐比記憶那些毫無頭緒的號碼(如﹕209.185.243.135)﹐往往容易得多。DNS的作用就是為我們在文字和IP之間擔當了翻譯﹐而免除了強記號碼的痛苦。

假如您的電話有名字記憶功能﹐您只需知道對方的名字﹐就可以撥號給友人了﹐我們可以說﹐這電話也具備如DNS的功能了呢﹗但是﹐我們在網路中使用的DNS系統﹐就是這麼簡單嗎﹖非也﹐複雜得很呢﹗下面﹐就讓我們一起去探索一下DNS的奧秘﹕

在早期的IP網路世界裡面﹐每台電腦都只用IP地址來表示﹐不久人們就發現這樣很難記憶﹐於是﹐一些UNIX的使用者﹐就建立一個HOSTS對應表﹐將IP和主機名字對應起來﹐這樣﹐用戶只需輸入電腦名字﹐就可以代替IP來進行溝通了。如果你安裝了Linux系統﹐在/etc下面就可以找到這個hosts檔案了﹔在NT的系統裡﹐你也可以在\winnt\system32\drivers\etc下面找到它。不過這個HOSTS檔是要由管理者手工維護的﹐最大的問題是無法適用於大型網路﹐而且更新也是件非常頭痛的事情。這就是DNS大派用場的時候了。

DNS的結構
DNS是一個分層級的分散式名稱對應系統﹐有點像電腦的目錄樹結構﹕在最頂端的是一個“root”﹐然後其下分為好幾個基本類別名稱﹐如﹕com﹑org﹑edu等﹔再下面是組織名稱﹐如﹕sony﹑toshiba﹑intel等﹔繼而是主機名稱﹐如﹕www﹑mail﹑ftp等。因為當初internet是從美國發起的﹐所以當時並沒有國域名稱﹐但隨著後來internet的蓬勃發展﹐DNS也加進了諸如tw﹑hk﹑au等國域名稱。所以一個完整的dns名稱就好像是這樣的﹕www.xyz.com.tw﹐而整個名稱對應的就是一個IP地址了。
在開始的時候﹐root下面只有六個組織類別﹕
類別名稱 代表意思
edu 教育﹑學術單位
org 組織﹑機構
net 網路﹑通訊單位
com 公司﹑企業
gov 政府機關
mil 軍事單位
不過﹐自從組織類別名稱開放以後﹐各種各樣五花八門的名稱也相繼涌現出來了﹐但無論如何﹐取名的規則最好儘量適合網站性質。除了原來的類別資料由美國本土的NIC(Network Information Center)管理之外﹐其它在國域以下的類別分別由該國的NIC管理。這樣的結構看起來就像這樣﹕

在結構中﹐各組織的DNS經過申請後由該組織或其委託機構管理﹐(通常當您申請註冊一個domain域名稱的時候﹐都要指定兩台DNS主機負責該域名的DNS管理)。

DNS的運作
在我們設定IP網路環境的時候﹐通常都要告訴每台主機關於DNS伺服器的地址﹐(我們可以手動的在每一台主機W面設置﹐也可以使用DHCP來設定)。

下面讓我們看看DNS是怎樣運作的﹕
1. 當被詢問到有關本域名之內的主機名稱的時候﹐DNS伺服器會直接做出回答﹔
2. 如果所查詢的主機名稱屬於其它域名的話﹐會檢查記憶體﹐看看有沒有相關資料﹔
3. 如果沒有發現﹐則會轉向root伺服器查詢﹔
4. 然後root伺服器會將該域名之授權(authoritative)伺服器(可能會超過一台)的地址告知﹔
5. 本地伺服器然後會向其中的一台伺服器查詢﹐並將這些伺服器名單存到記憶體中﹐以備將來之需(省卻再向root查詢的步驟)﹔
6. 遠方伺服器回應查詢﹔
7. 將查詢結果回應給客戶﹐並同時將結果儲存一個備份在自己的快取記憶裡面﹔
8. 如果在存放時間尚未過時之前再接到相同的查詢﹐則以存放於快取記憶裡面的資料來做回應。
從這個過程我們可以看出﹐沒有任何一台DNS主機會包含所有域名的DNS資料﹐資料都是分散在全部的DNS伺服器中﹐而NIC只需知道各DNS伺服器地址就可以了。

為了更好地理解一下 DNS 的運作﹐讓我們用下圖看看查詢www.home.netman.com.tw 這台主機位址的過程﹕

在這個例子中﹐http://www.home.netman.com.tw台主機....netman.com.tw 這個域名的DNS伺服器管理的。(在DNS術語中﹐我們稱一個域名為“zone”﹐這個zone可以是您從NIC申請回來的域名﹐也可以是從該域名之下延伸出來的“sub-zone”)。在這台DNS伺服器上面﹐必須有一個關於home.netman.com.tw這個zone的檔案﹐而這檔案裡面必須有一筆關於www的記錄(任何主機都是以“記錄”來表示)。這個記錄可以為一個IP地址﹐也可以以別名形式來對應一台主機名稱﹐但無論如何﹐所對應的主機名稱最終是要被一個IP地址所對應著就是了。

同時﹐DNS還能提供“反查詢”(reverse lookup)功能﹐也就是以IP來查詢主機名稱。網路上面的許多服務﹐如﹕FTP, IRC, WWW﹑等等﹐都需要到這個功能。其實﹐DNS服務本身就必須要使用反查詢功能﹐而且在設定上﹐也必須要為每個網路建立起reverse zone。雖然有些人發覺即使沒有reverse zone也可以利用到DNS服務﹐但其中弊端卻不容易被察覺到﹐在這個(中文)網頁﹕http://ns.nctu.edu.tw/Basic/WhenToUs...到忽略 revers zone所致一些問題。

DNS的名稱記錄
事實上﹐DNS不僅僅是用來解釋地址用的﹐而且還可以回答更多關於網路和主機的其它信息﹐其中很重要的一個功能就是可以供郵件系統進行路由。這些資料﹐通常會以不同的“記錄”名稱出現在DNS的資料檔案中。我們姑且不理會開頭那幾行的意思﹐那是給DNS系統本身使用的這裡我們只是看看幾個記錄名稱而已﹕

類別名稱 代表意思
TXT 只是一些說明文字﹐可以用來說明主機/網路環境設定。
NS 名稱伺服器﹐也就是該 zone 指定的授權 DNS 伺服器名稱。
MX 郵件伺服器﹐負責經由 DNS 查詢進行郵件傳遞的郵件伺服器。這樣的好處是﹕如果您要更換郵件伺服器的話﹐只需修改 DNS 記錄就可以了﹐而對方的郵件伺服器則無需理會您要使用的究竟是哪一台電腦來負責郵件交換。同時﹐您也可以指定多台郵件伺服器來分擔郵件交換工作﹐在 MX 後面的號數用來指定伺服器的使用順序﹐數字越低越優先。
A 用來對應主機名稱和其 IP 位址﹐這個記錄最常用﹐而且也是最重要的記錄之一。
HINFO 和 TXT 差不多﹐是回答"Host Information"查詢用的。
CNAME 是一個“別名”記錄﹐可以給 A 記錄使用另外一個(或多個)名稱讓外面查詢。CNAME 可以對應一個 A 記錄﹐但不鼓勵對應另一個 CNAME 記錄。
AAAA 和 A 記錄一樣﹐只不過對應的是 IP v6 格式

分擔DNS工作
Primary(master) DNS伺服器是架設在某一個網域下被主要授權並控制所有名稱記錄的主控制伺服器﹐管轄著所有該網域的記錄資料﹐這些記錄資料只有primary(master)可以修改。 但如果在一個比較大型的網路中﹐DNS伺服器就會變得很繁忙了﹐所以您可以設定多個DNS來分擔master的工作﹐但您或許不願意到每一個DNS伺服器去更新資料吧﹖而且就算您願意這樣做﹐也容易出現錯誤或資料不同步的情形。這樣您可以設定其它的伺服器為secondary (slave) DNS來複製master上面的記錄資料﹐這樣﹐其它的電腦可以被指定到不同的DNS做查詢﹐既可以分擔master的工作﹐而且資料也可以自動進行同步工作。您可以設定DNS資料同步的時間間隔﹐在dns檔案中的Refresh設定就是了。同時您還會看到Serial﹐當slave的上面的serial數字少於它﹐資料就會被複製﹐否則會被忽略。

驗證DNS工作
當您建立好一個DNS伺服器之後﹐除了可以直接使用命令 ping (這個會在後面章節說明)直接ping一下上面的記錄之外﹐最好還是使用 "nslookup" 這個命令進行檢測或除錯﹐(Windows9x系統並不包含此命令)。下面讓我們在Linux中驗證一下﹕當您輸入nslookup之後﹐您會看到您機器目前指定的DNS伺服器的回應﹕
Default Server: redhat52.siyongc.domain
Address: 192.168.0.17
然後您輸入欲查詢的主機或IP地址﹐您會看到從DNS回來的結果﹕
> pii266.siyongc.domain
Server: redhat52.siyongc
Address: 192.168.0.17

Name: pii266.siyongc.domain
Address: 192.168.0.15

www.hinet.net
Server: redhat52.siyongc.domain
Address: 192.168.0.17

Non-authoritative answer:
Name: w3c2.hinet.net
Address: 168.95.1.84
Aliases: www.hinet.net
這是一個標準模式下面的查詢﹐我們可以看到﹕不是這台DNS伺服器管理的查詢﹐而且已經在 cache 裡面了﹐會附加一個﹕"Non-authoritative answer:" 的回應信息。但如果我們先將查詢模式設為any之後﹐再輸入同樣的主機名稱﹕
> set q=any
> pii266.siyongc.domain
Server: redhat52.siyongc.domain
Address: 192.168.0.17

pii266.siyongc.domain preference = 20, mail exchanger = debian.home
pii266.siyongc.domain preference = 10, mail exchanger = redhat52.siyongc.domain
pii266.siyongc.domain internet address = 192.168.0.15
siyongc.domain nameserver = debian.home
siyongc.domain nameserver = redhat52.siyongc.domain
debian.home internet address = 192.168.0.2
redhat52.siyongc.domain internet address = 192.168.0.17
您就可以看到更多的資料了﹐例如﹕MX﹑NS﹑和它們的IP地址等信息。
假如您使用 "除錯模式" 的話﹐看到的資料還將更多﹗
> set debug
> www.hinet.net
Server: redhat52.siyongc.domain
Address: 192.168.0.17

;; res_nmkquery(QUERY,http://www.hinet.net,IN, ANY)
------------
Got answer:
HEADER:
opcode = QUERY, id = 3102, rcode = NOERROR
header flags: response, want recursion, recursion avail.
questions = 1, answers = 1, authority records = 3, additional = 3

QUESTIONS:
http://www.hinet.net, type = ANY, class = IN
ANSWERS:
->www.hinet.net
canonical name = w3c2.hinet.net
ttl = 76134 (21h8m54s)
AUTHORITY RECORDS:
-> hinet.net
nameserver = HNTP1.hinet.net
ttl = 162533 (1d21h8m53s)
-> hinet.net
nameserver = HNTP3.hinet.net
ttl = 162533 (1d21h8m53s)
-> hinet.net
nameserver = DNS.hinet.net
ttl = 162533 (1d21h8m53s)
ADDITIONAL RECORDS:
-> HNTP1.hinet.net
internet address = 168.95.192.1
ttl = 162533 (1d21h8m53s)
-> HNTP3.hinet.net
internet address = 168.95.192.2
ttl = 162533 (1d21h8m53s)
-> DNS.hinet.net
internet address = 168.95.1.1
ttl = 162533 (1d21h8m53s)

------------
Non-authoritative answer:
www.hinet.net
canonical name = w3c2.hinet.net
ttl = 76134 (21h8m54s)

Authoritative answers can be found from:
hinet.net
nameserver = HNTP1.hinet.net
ttl = 162533 (1d21h8m53s)
hinet.net
nameserver = HNTP3.hinet.net
ttl = 162533 (1d21h8m53s)
hinet.net
nameserver = DNS.hinet.net
ttl = 162533 (1d21h8m53s)
HNTP1.hinet.net
internet address = 168.95.192.1
ttl = 162533 (1d21h8m53s)
HNTP3.hinet.net
internet address = 168.95.192.2
ttl = 162533 (1d21h8m53s)
DNS.hinet.net
internet address = 168.95.1.1
ttl = 162533 (1d21h8m53s)
另外﹐您還可以用 set q=mx 或 set q=ptr 等模式來查詢特定的記錄﹐也可以用 ls 後接 domain name 來查看某個 domain 的所有主機記錄。善用 nslookup 我們可以找到許多 DNS 的信息﹐而當有問題發生的時候﹐這個工具就變得非常有用了。
同時﹐在設定 DNS 的時候﹐需要比較慎密的設計﹐以免不實資料的氾濫。
管理好 DNS 系統是每一個網路管理員應盡的義務來的。

Jan 28, 2008

TCP/IP IP address and subnet mask.

可查詢 subnet mask 計算 的網站 , http://grox.net/utils/whatmask/


Microsoft Windows 電腦上配置 TCP/IP 協定時,TCP/IP 配置設置中需要 IP 位址和子網路遮罩,

通常還需要一個默認閘道。

要正確配置 TCP/IP,有必要瞭解 TCP/IP 網路的定址方式以及網路和子網的劃分方式。本文旨在對 IP 網路和子網的概念進行一般性介紹。

更多資訊

作為 Internet 的網路協定,TCP/IP 的成功在很大程度上歸功於它將不同大小的網路和不同類型的系統連接在一起的能力。這些網路被強制定義為具有預定義大小的三個主要類(還有其他一些類別), 每一類都可以由系統管理員分成更小的子網。子網路遮罩用於將 IP 位址分成兩個部分。一部分標識主機(電腦),另一部分標識它所屬的網路。查看 IPInternet 協定)位址並研究它的組織方式可以幫助您更好地理解 IP 位址和子網路遮罩的工作方式。

IP 地址:網路和主機

IP 位址是一個 32 位元數位,它唯一地標識 TCP/IP 網路上的主機(電腦或其他設備,如印表機或路由器)。
IP
位址通常以點分十進位格式表示,四個數字由句點分隔,例如 192.168.123.132。要瞭解子網路遮罩如何用於區分不同的主機、網路和子網,請查看以二進位表示的 IP 位址。
例如,點分十進位 IP 位址 192.168.123.132 在二進位表示法中為 32 位元數字 110000000101000111101110000100。此數字的含義可能很難理解,因此它被分成四個部分,每個部分有八個二進位數字字。
這 些八位元部分稱為八位元組。示例 IP 地址於是變成 11000000.10101000.01111011.10000100。此數字表示的含義只是稍微明白了一點,因此在大多數應用中,會將二進位位址轉 換為點分十進位格式 (192.168.123.132)。點分十進位數字字是從二進位轉換為十進位表示法的八位組。
為了讓 TCP/IP 廣域網 (WAN) 以一個網路集的形式高效工作,在網路間傳遞資料包的路由器並不知道資訊包的目標主機的確切位置。路由器只知道主機是哪一個網路的成員,並使用存儲在路由表 中的資訊來確定如何將資料包送達目標主機的網路。當資料包被傳送到目標網路後,該資料包就會被傳送到相應的主機。
為了讓此過程順利進行,IP 位址分為兩個部分。IP 地址的前一部分作為網路位址,後一部分作為主機位址。以 192.168.123.132 為例,將它分為這兩個部分之後,會得到:

192.168.123. 網路

.132 主機

- -

192.168.123.0 — 網路位址。

0.0.0.132 主機位址。

子網路遮罩

第二項是子網路遮罩,它是 TCP/IP 正常工作所必需的。TCP/IP 協定使用子網路遮罩確定主機是在本地子網中還是在遠端網路中。

TCP/IP 中,將哪部分 IP 位址用作網路位址和主機位址並不固定,所以除非您掌握詳細的資訊,否則無法確定上述網路位址和主機位址。此資訊在另一個 32 位元數位中提供,稱為子網路遮罩。在本例中,子網路遮罩為 255.255.255.0。如果您不知道二進位表示法中的 255 等於 11111111,可能並不清楚該數字表示的含義;照此分析,子網路遮罩為:

11111111.11111111.11111111.0000000

IP 位址和子網路遮罩排列在一起比較,就可以分清該位址的網路部分和主機部分:

11000000.10101000.01111011.10000100 -- IP 地址 (192.168.123.132)

11111111.11111111.11111111.00000000 -- 子網路遮罩 (255.255.255.0)

24 位元(子網路遮罩中的數位 1)被標識為網路位址,後 8 位(子網路遮罩中剩餘的數位 0)被標識為主機位址。據此可以得到:

11000000.10101000.01111011.00000000 -- 網路位址 (192.168.123.0)

00000000.00000000.00000000.10000100 -- 主機位址 (000.000.000.132)

這 樣,我們就可以知道,在這個使用 255.255.255.0 子網路遮罩的示例中,網路 ID 192.168.123.0,主機位址為 0.0.0.132。當資料包到達 192.168.123.0 子網(從本地子網或遠端網路),而且它的目標位址為 192.168.123.132 時,您的電腦將從網路接收它並對它進行處理。

幾乎所有十進位子網路遮罩都轉換為左側全部是一、右側全部是零的二進位數字字。其他一些常見的子網路遮罩有:

十進位 二進位

255.255.255.192 1111111.11111111.1111111.11000000

255.255.255.224 1111111.11111111.1111111.11100000

Internet RFC 1878(從http://www.internic.net獲取)描述了可在 TCP/IP 網路中使用的有效子網和子網路遮罩。

網路類

Internet 地址由管理 Internet 的機構 InterNIC (http://www.internic.net) 來分配。這些 IP 位址分成若干類。其中最常見的是 AB C 類。也有 D E 類,但是最終用戶通常不會使用。每個位址類都有不同的默認子網路遮罩。可以通過查看 IP 位址的第一個八位組來識別該 IP 位址的類別。下面是 AB C Internet 位址的範圍,每一類位址都有一個示例:

A 類網路使用的默認子網路遮罩為 255.0.0.0,第一個八位組為 0-127。位址 10.52.36.11 就是一個 A 類位址。它的第一個八位組為 10,介於 1 126 之間(包括 1 126)。

B 類網路使用的默認子網路遮罩為 255.255.0.0,第一個八位組為 128-191。位址 172.16.52.63 就是一個 B 類位址。它的第一個八位組為 172,介於 128 191 之間(包括 128 191)。

C 類網路使用的默認子網路遮罩為 255.255.255.0,第一個八位組為 192-223。位址 192.168.123.132 就是一個 C 類位址。它的第一個八位組為 192,介於 192 223 之間(包括 192 223)。

在某些情況下,由於網路的物理拓撲或因為網路(或主機)的數目在默認的子網路遮罩限制之下並不適用,所以默認子網路遮罩值可能不適合機構的需要。下一部分將解釋如何使用子網路遮罩劃分網路。

子網配置

系統管理員可以進一步劃分 AB C TCP/IP 網路或對這些網路進行子網配置。當您將 Internet 的邏輯位址結構(IP 位址和子網的抽象世界)與真實世界中使用的物理網路進行協調時,就有必要進行子網配置。

接 受 IP 位址塊分配的系統管理員可以用輕鬆符合這些位址的方式管理未經組織的網路。例如,您有一個廣域網,在該廣域網中,TCP/IP 路由器連接的三個網路(位於不同城市)中有 150 個主機。這三個網路中的每個網路都有 50 個主機。向您分配了 C 類網路 192.168.123.0。(此地址是為了便於說明,實際上來自 Internet 中未分配的範圍。)這意味著可以將位址 192.168.123.1 192.168.123.254 用於您的 150 個主機。

在示例中不能使用的兩個位址為 192.168.123.0 192.168.123.255,因為主機部分全部為一和全部為零的二進位位址無效。零位址無效的原因是使用它在未指定主機的情況下指定了網路。255 位址(在二進位表示法中全部為一的主機位址)用來向網路中的每個主機廣播消息。只需記住,任何網路或子網中的第一個位址和最後一個位址不能分配給任何單獨 主機。

現在,您應該能夠將 IP 地址給予 254 個主機。如果所有 150 台電腦都在一個網路中,則此操作會進行得很順利。但是,您的 150 台電腦位於三個單獨的物理網路中。不用為每個網路請求更多位址塊,只需將網路分成使您可以在多個物理網路中使用一個位址塊的子網。

在此 情況下,使用使網路位址更大和可能的主機位址範圍更小的子網路遮罩將網路分成四個子網。也就是說,您正在借用某些通常用於主機位址的位元,並將它們用於地 址的網路部分。子網路遮罩 255.255.255.192 給予您四個網路,每個網路有 62 個主機。由於用二進位表示 255.255.255.192 1111111.11111111.1111111.11000000 相同,所以此操作可以順利進行。最後一個八位元組的前兩位元數字變為網路位址,所以您獲得了附加網路 00000000 (0)01000000 (64)10000000 (128) 11000000 (192)。(某些管理員只使用將 255.255.255.192 作為子網路遮罩的其中兩個子網。有關此主題的更多資訊,請參閱 RFC 1878。)在這四個網路中,最後 6 個二進位數字字可用於主機位址。

使 用子網路遮罩 255.255.255.192,則您的 192.168.123.0 網路變為四個網路 192.168.123.0192.168.123.64192.168.123.128 192.168.123.192。這四個網路將擁有以下有效主機位址:

192.168.123.1-62

192.168.123.65-126

192.168.123.129-190

192.168.123.193-254

再次重審,全部為一或全部為零的二進位主機位址無效,所以您不能使用最後一個八位組為 06364127128191192 255 的地址。

現 在,看兩個主機位址 192.168.123.71 192.168.123.133,您就會瞭解其原理。如果使用默認 C 類子網路遮罩 255.255.255.0,則這兩個位址都位於 192.168.123.0 網路中。但是,如果使用子網路遮罩 255.255.255.192,則它們位於不同網路中;192.168.123.71 位於 192.168.123.64 網路中,192.168.123.133 位於 192.168.123.128 網路中。

默認閘道

如果 TCP/IP 電腦需要與另一個網路中的主機進行通信,它通常通過稱為路由器的設備進行通信。在 TCP/IP 術語中,主機中指定的、用於將主機子網鏈結到其他網路的路由器稱為默認閘道。本節解釋 TCP/IP 如何確定是否將資料包發送到其默認閘道以到達網路中的另一台電腦或設備。

當主機嘗試使用 TCP/IP 與另一個設備進行通信時,它會使用已定義的子網路遮罩和目標 IP 位址針對子網路遮罩和其自己的 IP 位址進行比較。此比較結果會告訴電腦目標是本地主機還是遠端主機。

如果此過程的結果確定目標是本地主機,則電腦只將資料包發送到本地子網。如果比較結果確定目標是遠端主機,則電腦將資料包轉發到其 TCP/IP 屬性中定義的默認閘道。然後,路由器負責將資料包轉發到正確的子網。

疑難解答

TCP/IP 網路問題通常是由電腦的 TCP/IP 屬性中三個主要條目的錯誤配置導致的。瞭解 TCP/IP 配置中的錯誤如何影響網路操作後,您可以解決許多常見 TCP/IP 問題。

錯 誤的子網路遮罩:如果網路將默認遮罩外的其他子網路遮罩用於其位址類,而用戶端仍使用該位址類的默認子網路遮罩進行配置,則可以與遠端網路進行通信但無法與某些 附近網路進行通信。例如,如果創建四個子網(例如在子網配置示例中),但是在 TCP/IP 配置中使用錯誤的子網路遮罩 255.255.255.0,則主機將無法確定某些電腦是否在與它們自己的子網不同的子網中。當發生此情況時,發送到作為相同 C 類位址一部分的不同物理網路中的主機的資料包將不會發送到默認閘道來進行傳送。此問題的常見症狀是電腦可以與其本地網路中的主機以及所有遠端網路進行通 信,但無法與位置在附近並具有相同的 AB C 類位址的網路進行通信。要解決此問題,只需在該主機的 TCP/IP 配置中輸入正確的子網路遮罩。

錯 誤的 IP 地址:如果將那些 IP 位址在本地網路的不同子網中的電腦放在一起,則它們無法進行通信。它們會嘗試通過路由器相互發送資料包,而該路由器卻無法正確轉發這些資料包。此問題的 症狀是電腦可以與遠端網路中的主機進行通信,但是無法與其本地網路中的某些或全部電腦通信。要解決此問題,請確保同一物理網路中的所有計算機具有同一 IP 子網中的 IP 位址。如果一個網段中的 IP 位址已用完,還可使用一些解決方案進行處理,但已超出本文範圍。

錯誤的默認閘道: 使用錯誤的默認閘道配置的電腦能夠與其自己網段中的主機進行通信,但是無法與某些或全部遠端網路中的主機進行通信。如果一個物理網路有多個路由器,且將 錯誤的路由器配置為默認閘道,則主機能夠與某些遠端網路進行通信,但是無法與其他遠端網路進行通信。如果組織中有一個路由器連接到內部 TCP/IP 網路,另一個路由器連接到 Internet,則此問題很常見。

參考

TCP/IP 中的兩個常用參考是:

“TCP/IP Illustrated, Volume 1:The Protocols”
Richard StevensAddison Wesley1994

“Internetworking with TCP/IP, Volume 1:Principles, Protocols, and Architecture”
Douglas E. ComerPrentice Hall1995

極力建議負責 TCP/IP 網路的系統管理員至少使用其中一個參考。

術語表

廣播位址 -- 主機部分全部為一的 IP 位址。
主機 -- TCP/IP 網路中的電腦或其他設備。
Internet --
連接在一起並共用公共範圍的 IP 位址的全球網路集合。
InterNIC --
負責管理 Internet 中的 IP 地址的機構。
IP --
用於在 TCP/IP 網路或 Internet 上發送網路資料包的網路協定。
IP
位址 -- TCP/IP 網路或 Internet 主機的唯一 32 位位址。
網路 -- 在本文中,網路一詞有兩種含義。一種含義是指單一物理網段上的電腦組,另一種含義是指系統管理員分配的 IP 網路位址範圍。
網路位址 -- 主機部分全部為零的 IP 位址。
八位元組 -- 一個 8 位元數字,4 個八位組構成一個 32 IP 位址。它們的範圍是 00000000-11111111,對應於十進位值 0- 255
資料包 -- 通過 TCP/IP 網路或廣域網傳輸的資料單位。
RFC
Request for Comment,徵求意見檔)-- 用於定義 Internet 標準的文檔。
路由器 -- 在不同 IP 網路間傳輸網路通信的設備。

子網路遮罩 -- 一個 32 位元數字,用於區分 IP 位址的網路部分和主機部分。
子網 -- 通過將較大的網路分成相等的部分而創建的較小網路。
TCP/IP --
通常在 Internet 和大型網路中廣泛使用的協定、標準和實用工具的集合。
廣域網 (WAN) -- 大型網路,它是路由器分隔的較小網路的集合。例如,Internet 就是一個非常大的廣域網。