Solaris のシステム管理 (第 3 巻)

ネットワークの状態を調べる方法

netstat コマンドを使用すると、ネットワークインタフェースやルーティングテーブルなどに関するネットワーク状態と、各種プロトコルについての統計情報を表示できます。


$ netstat [-i] [-r] [-s]

-i

TCP/IP インタフェースの状態を表示する 

-r

IP ルーティングテーブルを表示する 

-s

UDPTCPICMP、および IGMP プロトコルについての統計情報を表示する

詳細は、netstat(1M) のマニュアルページを参照してください。

例 - ネットワークの状態を調べる

次の表示例は、netstat -i コマンドの出力を示したものです。このコマンドは、TCP/IP トラフィックに使用されるインタフェースの情報を表示します。


$ netstat -i
Name  Mtu  Net/Dest    Address      Ipkts  Ierrs Opkts  Oerrs Collis Queue
lo0   8232 software    localhost     1280   0     1280     0       0    0
le0   1500 loopback    venus      1628480   0   347070    16   39354    0

上記の表示例は、マシンが各インタフェース上で送受信したパケット数を示しています。有効なネットワークトラフィックが存在するマシンでは、IpktsOpkts が継続的に増加しています。

ネットワーク衝突率は、衝突カウント (Collis) を出力パケットの数 (Opkts) で割ることにより算出できます。上記の例では、衝突率は 11%です。ネットワーク全体の衝突率が 5 〜 10 %を超える場合には、問題が発生している可能性があります。

入力パケットエラー率 (Ierrs/Ipkts) は、入力エラー数を合計入力パケット数で割ることにより算出できます。出力パケットエラー率 (Oerrs/Opkts) は、出力エラー数を合計出力パケット数で割ることにより算出できます。入力エラー率が高い場合 (0.25% を超えている場合)、ホストがパケットを落としている可能性があります。

次に、netstat -s コマンドの出力例を示します。このコマンドは、UPDTCPICMP、および IGMP についてプロトコル別の統計情報を表示します。


UDP
	udpInDatagrams      =196543	udpInErrors         =     0
	udpOutDatagrams     =187820

TCP	
	tcpRtoAlgorithm     =     4	tcpRtoMin           =   200
	tcpRtoMax           = 60000	tcpMaxConn          =    -1
	tcpActiveOpens      = 26952	tcpPassiveOpens     =   420
	tcpAttemptFails     =  1133	tcpEstabResets      =     9
	tcpCurrEstab        =    31	tcpOutSegs          =3957636
	tcpOutDataSegs      =2731494	tcpOutDataBytes     =1865269594
	tcpRetransSegs      = 36186	tcpRetransBytes     =3762520
	tcpOutAck           =1225849	tcpOutAckDelayed    =165044
	tcpOutUrg           =     7	tcpOutWinUpdate     =   315
	tcpOutWinProbe      =     0	tcpOutControl       = 56588
	tcpOutRsts          =   803	tcpOutFastRetrans   =   741
	tcpInSegs           =4587678
	tcpInAckSegs        =2087448	tcpInAckBytes       =1865292802
	tcpInDupAck         =109461	tcpInAckUnsent      =     0
	tcpInInorderSegs    =3877639	tcpInInorderBytes   =-598404107
	tcpInUnorderSegs    = 14756	tcpInUnorderBytes   =17985602
	tcpInDupSegs        =    34	tcpInDupBytes       = 32759
	tcpInPartDupSegs    =   212	tcpInPartDupBytes   =134800
	tcpInPastWinSegs    =     0	tcpInPastWinBytes   =     0
	tcpInWinProbe       =   456	tcpInWinUpdate      =     0
	tcpInClosed         =    99	tcpRttNoUpdate      =  6862
	tcpRttUpdate        =435097	tcpTimRetrans       = 15065
	tcpTimRetransDrop   =    67	tcpTimKeepalive     =   763
	tcpTimKeepaliveProbe=     1	tcpTimKeepaliveDrop =     0

IP	
	ipForwarding        =     2	ipDefaultTTL        =   255
	ipInReceives        =11757234	ipInHdrErrors     =     0
	ipInAddrErrors      =     0	ipInCksumErrs       =     0
	ipForwDatagrams     =     0	ipForwProhibits     =     0
	ipInUnknownProtos   =     0	ipInDiscards        =     0
	ipInDelivers        =4784901	ipOutRequests       =4195180
	ipOutDiscards       =     0	ipOutNoRoutes       =     0
	ipReasmTimeout      =    60	ipReasmReqds        =  8723
	ipReasmOKs          =  7565	ipReasmFails        =  1158
	ipReasmDuplicates   =     7	ipReasmPartDups     =     0
	ipFragOKs           = 19938	ipFragFails         =     0
	ipFragCreates       =116953	ipRoutingDiscards   =     0
	tcpInErrs           =     0	udpNoPorts          =6426577
	udpInCksumErrs      =     0	udpInOverflows      =   473
	rawipInOverflows    =     0

ICMP	
 icmpInMsgs          =490338	icmpInErrors        =     0
	icmpInCksumErrs     =     0	icmpInUnknowns      =     0
	icmpInDestUnreachs  =   618	icmpInTimeExcds     =   314
	icmpInParmProbs     =     0	icmpInSrcQuenchs    =     0
	icmpInRedirects     =   313	icmpInBadRedirects  =     5
	icmpInEchos         =   477	icmpInEchoReps      =    20
	icmpInTimestamps    =     0	icmpInTimestampReps =     0
	icmpInAddrMasks     =     0	icmpInAddrMaskReps  =     0
	icmpInFragNeeded    =     0	icmpOutMsgs         =   827
	icmpOutDrops        =   103	icmpOutErrors       =     0
	icmpOutDestUnreachs =    94	icmpOutTimeExcds    =   256
	icmpOutParmProbs    =     0	icmpOutSrcQuenchs   =     0
	icmpOutRedirects    =     0	icmpOutEchos        =     0
	icmpOutEchoReps     =   477	icmpOutTimestamps   =     0
	icmpOutTimestampReps=     0	icmpOutAddrMasks    =     0
	icmpOutAddrMaskReps =     0	icmpOutFragNeeded   =     0
	icmpInOverflows     =     0
IGMP:
        0 messages received
        0 messages received with too few bytes
        0 messages received with bad checksum
        0 membership queries received
        0 membership queries received with invalid field(s)
        0 membership reports received
        0 membership reports received with invalid field(s)
        0 membership reports received for groups to which we belong
        0 membership reports sent

次に、netstat -r コマンドの出力例を示します。このコマンドは、IP ルーティングテーブルを表示します。


Routing Table:
  Destination        Gateway           Flags  Ref   Use    Interface
------------------ -------------------- ----- ----- ------ ---------
localhost            localhost             UH       0   2817  lo0
earth-bb             pluto                 U        3  14293  le0
224.0.0.0            pluto                 U        3      0  le0
default              mars-gate             UG       0  14142  
 

表 37-2 は、netstat -r コマンドが出力するレポート中のフィールドを説明します。

表 37-2 netstat -r コマンドの出力

フィールド名 

 

説明 

Flags

U

ルートが正常に動作している 

G

ルートはゲートウェイを経由する 

H

ルートはホスト宛である 

D

ルートはリダイレクトを使用して動的に作成された 

Ref

 

同じリンク層を共有している現在のルート数を示す 

Use

 

送信されたパケット数を示す 

Interface

 

ルートに使用されるネットワークインタフェースを表示する