はじめに
ここでは、Linuxコマンドの一つ「ifconfig」 について詳しく解説していきます。
わからないことを何とかわかる言葉に変換しているので、厳密に正確ではないかもしれません。
違っていたら優しく教えてください。
書こうと思ったきっかけ
ネットワークを理解したくて、手始めにifconfigの出力結果を理解しようと思い書きました。
ifconfigとは?
Mac OSでネットワークインターフェースの設定を表示するコマンドです。
ちなみにwindows OS の場合は 「ipconfig」です。
「ネットワークインターフェース」て何やねん。
パソコンがネットワークとやり取りするための「口(👄)」だと思ってください。
この「口」、いっぱいあります。
さてifconfigコマンド。
ifconfig [オプション] [インターフェース名] [パラメータ]
と後ろに色々付けてもいいみたいですが、今回はシンプルにifconfigだけを実行します。
実際にやってみた
▪️1つ目の👄
自分自身と通信するための👄みたいです。
細かく見ていきます。
まず、lo0
は口の名前です。ローカル0って感じですかね?
次、flags=8049 <UP,LOOPBACK,RUNNING,MULTICAST>
これは、lo0が起動しているかなどを教えてくれてます。
flags=8049 は 16進数 (0x8049) らしいので、2進数 に変換すると、
0x8049 = 1000 0000 0100 1001 (2進数)
このビットから、次のフラグが設定されているらしい。
フラグ名 | 値 (16進数) | 値 (2進数) | 説明 |
---|---|---|---|
UP | 0x1 |
0000 0000 0000 0001 |
インターフェースが 有効(動作中) |
LOOPBACK | 0x8 |
0000 0000 0000 1000 |
自分自身と通信 |
RUNNING | 0x40 |
0000 0000 0100 0000 |
インターフェースが現在 動作中 |
MULTICAST | 0x8000 |
1000 0000 0000 0000 |
マルチキャスト対応(マルチキャスト通信が可能) |
「マルチキャスト」とは「1対多の通信」って思ってください。
次、mtu 16384
1回の送信で扱える最大データサイズが 16,384 バイトです。
疲れてきたのでoptions以降は割愛します。
▪️2つ目の👄
ネットワーク通信を行うための👄みたいです。
細かく見ていきます。
flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST>
このen0は、
- UP=有効
- BROADCAST=ブロードキャスト対応(ネットワーク上の全デバイスへ送信可能)
- SMART=スマート機能(何らかの便利機能だと思ってください)
- RUNNING=動作中
- SIMPLEX=単方向通信対応(送信のみまたは受信のみの可能性)
- MULTICAST=マルチキャスト対応
次、mtu 1500
MTU (Maximum Transmission Unit) = 1500 バイト
1回の送信で扱える最大データサイズです。
optionsは割愛。
ether xx:xx:xx:xx:xx:xx
Macアドレスです。
inet6 xx:xx:xx:xx:xx:xx
IPv6アドレスです。
inet xxxxxxxxxxxxxx
IPv4アドレスです。
status: active
現在アクティブであり、ネットワーク接続が確立されていることを示しています。
まとめ
ifconfigの出力結果について、主なネットワークインターフェースに絞って紐解いてみました。次からは暗号の羅列に見えることはないよね?
参考文献