/sys/class/net でインターフェイスを調べる
このステップでは、/sys
ファイルシステムを探索して、ネットワークインターフェイスに関する情報(プロミスキャスモードの状態を含む)を見つけます。/sys
ファイルシステムは、Linux の仮想ファイルシステムで、カーネルやデバイスドライバとやり取りする方法を提供します。これは、ハードウェアデバイスとその設定に関する情報を公開します。
/sys
内のネットワークインターフェイスディレクトリに移動します。cd
コマンドを使用して現在のディレクトリを変更します。
cd /sys/class/net/
次に、ls
コマンドを使用してこのディレクトリの内容を表示します。
ls
ip link show
の出力と同様に、ネットワークインターフェイスのリストが表示されます。eth0
と lo
が表示されるはずです。
eth0 lo
ここでの各ディレクトリは、ネットワークインターフェイスに対応しています。eth0
のディレクトリの中身を見てみましょう。
cd eth0
次に、eth0
ディレクトリ内のファイルを表示します。
ls
eth0
インターフェイスに関する情報が含まれた多くのファイルとディレクトリが表示されます。私たちが関心を持っているのは、プロミスキャスモードの状態を示すファイルです。この情報は、デバイスのフラグや状態に関連するファイルに含まれることが多いです。
正確なファイル名はカーネルバージョンによって多少異なる場合がありますが、この情報を見つける一般的な場所は、フラグや状態情報が含まれている可能性のあるファイルの内容を調べることです。
状態やフラグを示す可能性のあるファイルの内容を読み取ってみましょう。cat
コマンドを使用してファイルの内容を表示します。たとえば、flags
という名前のファイルやそれに似たものを探すことができます。
cat flags
cat flags
コマンドの出力は 16 進数になります。この数値は、さまざまなインターフェイスフラグのビットマスクを表しています。これを解釈するには、通常、特定のフラグとそれに対応するビット値についてカーネルドキュメントを参照する必要があります。ただし、特にプロミスキャスモードを確認する場合は、/sys
内でより直接的な方法があることがよくあります。
/sys
内でプロミスキャスモードを確認するより信頼性の高い方法は、プロミスキャスフラグのカウントを明示的に示すファイルを探すことです。このファイルは通常 flags
などという名前で、その内容を正しく解釈すると、プロミスキャスフラグが設定されているかどうかがわかります。
まだいない場合は、/sys/class/net/eth0
ディレクトリに戻りましょう。
cd /sys/class/net/eth0
では、もう一度 flags
ファイルを調べてみましょう。flags
ファイルの 16 進数値は、さまざまなインターフェイスの状態を表しています。16 進数値を直接解釈するにはカーネルフラグの知識が必要ですが、ステップ 1 の ip link show
出力に PROMISC
フラグが含まれていることは、プロミスキャスモードを確認するより使いやすい方法です。/sys
ファイルシステムは、ip
などのツールが使用する生のカーネルデータを提供します。
/sys
内で直接確認する場合は、通常、プロミスキャスカウントまたは状態を明示的に示すファイルを探します。ただし、この環境では、標準ツールを使用してプロミスキャスモードを確認する最も簡単な方法は、ステップ 1 で示したように ip link show
を使用することです。/sys
ファイルシステムは基盤となるデータを提供しますが、特定のカーネルドキュメントがないと解釈するのはより複雑になります。
このステップでは、/sys
ファイルシステムがデバイス情報への低レベルアクセスを提供する方法を示しています。/sys
内の単一のファイルを介して直接プロミスキャスモードを確認することは複雑な場合がありますが、このファイルシステムを理解することは、高度な Linux システム分析にとって価値があります。
Continue をクリックしてこのステップを完了します。