この記事では、主にroute、netstat、およびtcpdumpネットワーク管理テストツールの使用方法とそれらの達成可能な機能について説明します。 route routeネットワークを設定するとき、パケットを受信したときにパケットが通過するパスを指定する必要があります。 Linuxシステムでは、コマンドrouteが提供されていますこのコマンドは、ifconfigコマンドで設定されたNICに静的ルートを設定できます。この設定は通常/etc/rc.d/rc.inet1で導入されており、システム起動時に行われます。いくつかの例を使用してrouteコマンドの使用方法を説明します。route add -net 127.0.0.0このコマンドは、ルーティングテーブルまたは指定されたルートにルートを追加します。ネットワークはクラスAアドレスで、マスクは255.0.0.0に設定されていることに注意してくださいこの新しく追加されたエントリは、loデバイスに接続されています。
route add -net xxx.xxx.xxx.xxxネットマスク255.255.255.0 dev eth0
このコマンドは、IPアドレスxxx.xxx.xxx.xxxのホストへの経路を追加します。そのネットワークマスクは、 255.255.255.0。
route del -net xxx.xxx.xxx.xxx
このコマンドはネットワークxxx.xxx.xxx.xxxの経路を削除します。 routeコマンドを使用すると、ネットワーク全体のルーティング情報も簡単に管理でき、出力結果はネットワークのルーティングテーブルになります。以下に示すとおり:
------------------------------------------- ----------------------
[root @ lee /root] #route
カーネルIPルーティングテーブル
宛先ゲートウェイGenmaskフラグメトリック参照Use Iface 10.10.8.224 * 255.255.255.255 UH 0 0 0 eth0 10.10.8.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo
デフォルトdgc8.njupt.edu 0.0.0.0 UG 0 0 0 eth0
デフォルトdgc8.njupt.edu 0.0.0.0 UG 1 0 0 eth0
[root @ lee /root]#
----- -------------------------------------------------- ----------
出力結果の各フィールドの意味は次のとおりです。
宛先は、ルートの宛先IPアドレスを表します。 <ゲートウェイ>・ゲートウェイは、ゲートウェイで使用されているホスト名またはIPアドレスを示します。上記の "*"出力は、ゲートウェイがないことを示しています。 Genmaskはルートのネットワークマスクを表します。それを経路の宛先アドレスと比較する前に、カーネルはGenmaskのIPアドレスとパケットとのビットごとのAND演算によって経路を設定します。・フラグは経路を示すフラグである。使用可能なフラグとその意味は次のとおりです。Uはルートが開始され、Hはターゲットがホストで、Gはゲートウェイが使用され、Rは動的ルートがリセットされ、Dは動的ルーティングとMはルートが変更されます。経路が拒否されたことを示します。・メートル法は経路の単価を表す。・Refは、経路の現在の状態に依存する他の経路の数を示す。 <使用> - 使用されているルーティングテーブルエントリの数を示します。・Ifaceは、経路によって送信されたパケットの宛先ネットワークを表す。
これらの出力情報を見ることで、ネットワークのルーティングテーブルを簡単に管理できます。
netstat
netstatコマンドは、TCP /IPネットワークを監視するための非常に便利なツールで、ルーティングテーブル、実際のネットワーク接続、および各ネットワークインターフェースデバイスのステータス情報を表示できます。コンピュータでnetstatを実行すると、出力は次のようになります。
--------------------------------- --------------------------------
[root @ lee /root] #netstat
アクティブなインターネット接続(サーバーなし)プロトタイプ受信 - 送信 - ローカルアドレス外部アドレス状態 - アクティブUNIXドメインソケット(サーバーなし) - プロトタイプフラグフラグタイプ状態I - ノードパス - Unix 5 [] DGRAM 460 / dev / log Unix 0 [] STREAM CONNECTED 173 @ 00000014 UNIX 0 [] DGRAM 662 UNIX 0 [] DGRAM 631 UNIX 0 [] DGRAM 544 BR > Unix 0 [] DGRAM 484
Unix 0 [] DGRAM 470
[root @ lee /root]#
-------------------- ---------------------------------------------
全体から最初の部分:アクティブなTCP接続と呼ばれるアクティブなインターネット接続この部分には、まだTCP接続がないことを示す内容がありません。第二部:アクティブUNIXドメインソケット、アクティブUnixドメインソケットと呼ばれる。出力には、Unixドメインソケットの接続ステータスが表示されます。Protoは、接続で使用されるプロトコルを示します。・RefCntは、このソケットに接続されているプロセス番号を示す。
・種類はソケットの種類を示します。 <状態>には、ソケットの現在の状態が表示されます。 <パス>は、ソケットに接続されている他のプロセスが使用しているパス名を示します。
netstat -aを使用すると、すべてのソケットのステータスを表示できます。これは、ネットワークプログラムをデバッグするときに非常に便利です。 Netstat -rはルーティングテーブルの内容を表示しますが、通常は "-n"オプションも指定する必要がありますので、数値形式またはデフォルトルータのIPアドレスでアドレスを取得できます。 netstat -iを使用すると、すべてのネットワークインタフェース情報が表示されます。 netstatを使用すると、現在のネットワークの状態とネットワークのトポロジもわかります。これは実際には非常に便利です。 tcpdump tcpdumpコマンドは、TCP /IP接続を監視し、データリンク層のパケットヘッダーを直接読み取るために使用されます。どのパケットを監視し、どのコントロールをフォーマットするかを指定できます。たとえば、すべてのイーサネット間の通信を監視したい場合は、次のコマンドを実行します。tcpdump -i eth0比較的静かなネットワーク上にあっても、通信が多いので、私たちの興味を引くだけでよい場合があります。それらのパケットの情報。一般に、TCP /IPスタックはローカルホストへのインバウンドパケットバインディングのみを受け入れますが、ネットワーク上の他のコンピュータアドレス指定は無視します(ルーターを使用している場合を除く)。 tcpdumpコマンドが実行されると、TCP /IPスタックを無差別モードに設定します。このモードはすべてのパケットを受け入れ、それらを効率的に表示させます。ローカルホストの通信が気になる場合は、 " - p"パラメータを使用して無差別モードを無効にする方法と、ホスト名を指定する方法があります。
tcpdump -i eth0 host hostname
システムはhostnameという名前のホストの通信パケットのみを監視します。ホスト名は、ローカルホストまたはネットワーク上の任意のコンピュータです。次のコマンドは、ホストhostnameによって送信されたすべてのデータを読み取ることができます。
tcpdump -i eth0 srcホストhostname
次のコマンドは、ホストhostnameに送信されたすべてのパケットをモニターできます。
tcpdump -i eth0 dst host hostname
指定したゲートウェイを通過するパケットを監視することもできます。
tcpdump -i eth0ゲートウェイゲートウェイ名
指定したポート宛てのTCPまたはUDPパケットも監視する場合は、次のコマンドを実行します。
tcpdump -i eth0ホストのホスト名とポート80
このコマンドは、各パケットのヘッダとホストのホスト名のポート80のアドレスを表示します。ポート80は、システムのデフォルトのHTTPサービスポート番号です。ポート80に送信されたパケットを一覧表示するだけでよい場合はdst portを、ポート80を返すパケットだけを表示したい場合はsrc portを使用します。