網路管理


一、網路簡介


網路,就是利用實體線路或無線之通訊方式,將散布於各地之電腦連結起來,以達成資訊 交換及資源共享之目的。

以大家熟悉的電話系統來作比喻,每一台連上網路的電腦都要有一個獨一無二的「網路位 址」,這樣兩台電腦才能透過網路相互傳送訊息,就好比我必須知道你的電話號碼才能打 電話給你是一樣的道理。

因此,無論用的是什麼樣的線路 (乙太網路、光纖、無線電或雷射),走的是哪種通訊協定 (TCP/IP、IPX/SPX、NetBIOS、NetBEUI、OSI 或 SNA),一些基本的條件都是一樣的,只是 表示的方法有所不同。也好比同樣的觀念用中文和英文說或寫出來,其文字不同,但觀念 還是一樣的。

對於一個網路管理人員來說,所要負擔的工作並不是只有把 Hub 裝起來、線拉好,及架設 伺服器而已。網管人員必須保持網路的正常運作,並建立一個方便的環境提供使用者使用, 因為你不能期望使用者對電腦或網路這方面的知識跟你一樣多,辦公室內的其他人只是想 用電腦盡快完成他們的工作罷了,他們可一點也不想浪費時間在處理網路斷線的問題上。 這是所有網管人員應銘記在心的一舊。

在建構了一個可用的方便環境前,相關政策的制定亦是很重要的。這些政策除了使用各項服 務時須遵守的規定外,就是與安全相關的政策。這類的政策在建構防火牆時尤其有用。否則 你的防火牆不但防不了火,可能還讓你逃不出去。因此正確的政策是整個資訊管理中重要的 一環。

在這份講義中,我們的焦點是放在以 FreeBSD 的機器作為 TCP/IP 區域網路管理的主要工 具,讓管理者在平時能夠立即掌握自己區域網路的狀況,才方便做最佳的調整。


二、網路管理方法說明

  1. netstat

    netstat 這個指令就是用來顯示目前本機器所有的網路連線與其狀態。以下就介紹 幾個常用的範例。

    • netstat -f inet
      列出 Internet 所用的通訊協定(亦即 TCP/IP)目前的狀態為何。
    • netstat -i
      列出本機器上所有的網路介面以及其通訊狀況。可以搭配 -b 或 -d 兩個參數以觀察總共 流量大小等資訊。
    • netstat -m
      列出本機器用在網路上的記憶體分配狀況。
    • netstat -ss -p tcp
      列出本機器在 TCP 通訊協定上的統計狀況。-p 參數後面除了 tcp 以外,還可以換成 ip, udp, 及 icmp 等等。而 -ss 的功用是在於不把資料為 0 的項目顯示出來。
    • netstat -rs
      列出本機器對外路徑狀況統計,參數改成 -r 則是列出路徑表。
  2. ping

    ping 這個指令的用途在於確認網路上的某台機器是否正在網路上運作。其原理就像 潛水艇的聲納系統發出聲波並分析反彈回來的訊號以確定物體位置的方法相同。ping 程式 會丟出 icmp 要求回應的封包,並等候對方丟回相對應的 icmp 封包,還計算兩個動作間 所耗費的時間,以判斷兩台機器間的「距離」。

    • ping -c 10 ds2knt

      這個指令會丟出十個 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   
      

      從最後的數據可以看到兩台機器間的網路狀況。

  3. traceroute

    這個指令是用來將兩台機器間的路徑顯示出來,就好像你把從家裡到辦公室的路徑 畫在地圖上是一樣的意義。

    • traceroute www.x.com

      這個指令會顯示出從本機到 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 
      
  4. systat -net

    systat 這個指令可以顯示出各種系統狀況,其中的一個參數為 -net ,用來顯示本 機的網路狀況。直接輸入systat -net 即可。

  5. trafshow

    此指令用來顯示目前區域網路上的 TCP/IP 網路連線。並且隨時更新。

  6. bing

    bing 的用途在於測量網路上兩台機器間所能用的頻寬為多少。舉例說明。

    • bing nic 59h

      測量 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
                                                       
      
  7. tcplist

    本指令列出現在機器上的 tcp 連線狀態。


最後更動時間: