網路,就是利用實體線路或無線之通訊方式,將散布於各地之電腦連結起來,以達成資訊 交換及資源共享之目的。
以大家熟悉的電話系統來作比喻,每一台連上網路的電腦都要有一個獨一無二的「網路位 址」,這樣兩台電腦才能透過網路相互傳送訊息,就好比我必須知道你的電話號碼才能打 電話給你是一樣的道理。
因此,無論用的是什麼樣的線路 (乙太網路、光纖、無線電或雷射),走的是哪種通訊協定 (TCP/IP、IPX/SPX、NetBIOS、NetBEUI、OSI 或 SNA),一些基本的條件都是一樣的,只是 表示的方法有所不同。也好比同樣的觀念用中文和英文說或寫出來,其文字不同,但觀念 還是一樣的。
對於一個網路管理人員來說,所要負擔的工作並不是只有把 Hub 裝起來、線拉好,及架設 伺服器而已。網管人員必須保持網路的正常運作,並建立一個方便的環境提供使用者使用, 因為你不能期望使用者對電腦或網路這方面的知識跟你一樣多,辦公室內的其他人只是想 用電腦盡快完成他們的工作罷了,他們可一點也不想浪費時間在處理網路斷線的問題上。 這是所有網管人員應銘記在心的一舊。
在建構了一個可用的方便環境前,相關政策的制定亦是很重要的。這些政策除了使用各項服 務時須遵守的規定外,就是與安全相關的政策。這類的政策在建構防火牆時尤其有用。否則 你的防火牆不但防不了火,可能還讓你逃不出去。因此正確的政策是整個資訊管理中重要的 一環。
在這份講義中,我們的焦點是放在以 FreeBSD 的機器作為 TCP/IP 區域網路管理的主要工 具,讓管理者在平時能夠立即掌握自己區域網路的狀況,才方便做最佳的調整。
netstat 這個指令就是用來顯示目前本機器所有的網路連線與其狀態。以下就介紹 幾個常用的範例。
ping 這個指令的用途在於確認網路上的某台機器是否正在網路上運作。其原理就像 潛水艇的聲納系統發出聲波並分析反彈回來的訊號以確定物體位置的方法相同。ping 程式 會丟出 icmp 要求回應的封包,並等候對方丟回相對應的 icmp 封包,還計算兩個動作間 所耗費的時間,以判斷兩台機器間的「距離」。
這個指令會丟出十個 icmp 封包給 ds2knt.foo.bar (158.9.1.246) 這台機器。
root(ttyp2)@nic{~}[10:05]#ping -c 10 ds2knt
PING ds2knt.foo.bar (158.9.1.246): 56 data bytes
64 bytes from 158.9.1.246: icmp_seq=0 ttl=128 time=0.588 ms
64 bytes from 158.9.1.246: icmp_seq=1 ttl=128 time=0.529 ms
64 bytes from 158.9.1.246: icmp_seq=2 ttl=128 time=0.571 ms
64 bytes from 158.9.1.246: icmp_seq=3 ttl=128 time=0.538 ms
64 bytes from 158.9.1.246: icmp_seq=4 ttl=128 time=0.527 ms
64 bytes from 158.9.1.246: icmp_seq=5 ttl=128 time=0.528 ms
64 bytes from 158.9.1.246: icmp_seq=6 ttl=128 time=0.549 ms
64 bytes from 158.9.1.246: icmp_seq=7 ttl=128 time=0.522 ms
64 bytes from 158.9.1.246: icmp_seq=8 ttl=128 time=0.536 ms
64 bytes from 158.9.1.246: icmp_seq=9 ttl=128 time=0.532 ms
--- ds2knt.csf.mil ping statistics ---
10 packets transmitted, 10 packets received, 0% packet loss
round-trip min/avg/max = 0.522/0.542/0.588 ms
從最後的數據可以看到兩台機器間的網路狀況。
這個指令是用來將兩台機器間的路徑顯示出來,就好像你把從家裡到辦公室的路徑 畫在地圖上是一樣的意義。
這個指令會顯示出從本機到 www.x.com 間的路徑以及 之間延遲的時間。
root(ttyp2)@nic{/usr/local/share/doc/tcptrace}[10:15]#traceroute www.x.com
traceroute to dod5.x.com (210.19.55.200), 30 hops max, 40 byte packets
1 router.foo.bar (158.9.1.254) 1.480 ms 1.372 ms 1.337 ms
2 158.9.2.80 (158.9.2.80) 3.671 ms 3.530 ms 3.081 ms
3 193.1.1.2 (193.1.1.2) 36.684 ms 36.614 ms 37.577 ms
4 210.19.55.200 (210.19.55.200) 43.258 ms 37.138 ms 37.538 ms
systat 這個指令可以顯示出各種系統狀況,其中的一個參數為 -net ,用來顯示本
機的網路狀況。直接輸入systat -net 即可。
此指令用來顯示目前區域網路上的 TCP/IP 網路連線。並且隨時更新。
bing 的用途在於測量網路上兩台機器間所能用的頻寬為多少。舉例說明。
測量 nic 到 59h 間的頻寬。
root(ttyp2)@nic{~}[10:53]#bing nic 59h
BING nic.foo.bar (158.9.1.253) and rs59h.foo.bar (158.30.0.253)
44 and 108 data bytes
1024 bits in 0.286ms: 3580420bps, 0.000279ms per bit
1024 bits in 0.314ms: 3261146bps, 0.000307ms per bit
1024 bits in 0.311ms: 3292605bps, 0.000304ms per bit
1024 bits in 0.335ms: 3056716bps, 0.000327ms per bit
1024 bits in 0.340ms: 3011765bps, 0.000332ms per bit
1024 bits in 0.364ms: 2813187bps, 0.000355ms per bit
1024 bits in 0.363ms: 2820937bps, 0.000354ms per bit
1024 bits in 0.356ms: 2876404bps, 0.000348ms per bit
1024 bits in 0.348ms: 2942529bps, 0.000340ms per bit
1024 bits in 0.349ms: 2934097bps, 0.000341ms per bit
1024 bits in 0.352ms: 2909091bps, 0.000344ms per bit
1024 bits in 0.351ms: 2917379bps, 0.000343ms per bit
1024 bits in 0.359ms: 2852368bps, 0.000351ms per bit
1024 bits in 0.360ms: 2844444bps, 0.000352ms per bit
1024 bits in 0.359ms: 2852368bps, 0.000351ms per bit
1024 bits in 0.360ms: 2844444bps, 0.000352ms per bit
1024 bits in 0.359ms: 2852368bps, 0.000351ms per bit
^C
--- nic.foo.bar statistics ---
bytes out in dup loss rtt (ms): min avg max
44 82 82 0% 0.182 0.202 0.350
108 82 82 0% 0.189 0.198 0.244
--- rs59h.foo.bar statistics ---
bytes out in dup loss rtt (ms): min avg max
44 82 82 0% 2.155 2.474 24.237
108 82 81 1% 2.521 2.581 3.687
--- estimated link characteristics ---
estimated throughput 2852368bps
minimum delay per packet 1.726ms (4924 bits)
average statistics (experimental) :
packet loss: small 0%, big 1%, total 0%
warning: rtt big host1 0.198ms < rtt small host2 0.202ms
average throughput 9570093bps
average delay per packet 2.025ms (5775 bits)
weighted average throughput 9511739bps
本指令列出現在機器上的 tcp 連線狀態。