MacなどUnix系のOSでは「ifconfig」というコマンドが用意されています。
これを使うと、現在どんなネットワークに接続しているかといった詳細情報を確認することができます。
その中には、lo, en, gif, stf, awdl, p2p, bridge, inet, inet6といった普段見慣れない記号がズラリと並んだりします。
ここではそれらが何を意味しているのかについてまとめています。
ifconfigコマンドの表示例
ifconfigコマンドを実行すると、以下のような表示が返ります。
$ ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=201<PERFORMNUD,DAD>
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=400<CHANNEL_IO>
ether f8:ff:c2:56:35:e8
inet6 fe80::cfb:70e3:8399:8de4%en0 prefixlen 64 secured scopeid 0x6
inet 192.168.3.7 netmask 0xffffff00 broadcast 192.168.3.255
inet6 2400:2412:6a60:bb00:15:a832:d64c:80a7 prefixlen 64 autoconf secured
inet6 2400:2412:6a60:bb00:3cf2:cef9:ebd7:60aa prefixlen 64 deprecated autoconf temporary
inet6 2400:2412:6a60:bb00:30e6:5275:ff96:4a02 prefixlen 64 autoconf temporary
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
ネットワークインターフェース毎に一塊となって出てきます。
実際には、lo0, gif0, stf0, en0, en1, en2, en3, en4, en5, p2p0, awdl0, bridge0など更にたくさんの情報が表示されます。
上記では主要な、lo0とen0のみピックアップしています。
lo0やen0がネットワークインターフェース名。アルファベットがインターフェースの種類、後の番号が接続した順番を表しています。
ネットワークインターフェースの意味
lo0, gif0, stf0, en0, p2p0, awdl0, bridge0などのネットワークインターフェース名は「インターフェースの種類 + 番号」で表示されます。
同じ種類のネットワークインターフェースがあると、0,1,2,,,といったように数値が増えていきます。
各インターフェースの記号は以下を表しています。
インターフェース名 | 概要 |
---|---|
lo | ローカルループバック。自分自身のIPアドレス(localhost) |
en | イーサネット。wifiや有線LAN |
gif | トンネルデバイス(Generic tunnel interface))。IPv4とIPv6を繋ぐ |
stf | Six to Four。IPv6からIPv4に変換する。 |
awdl | Apple Wireless Direct Link。iOSとの通信。iphoneと接続するなど。 |
p2p | awdlと類似した機能。 |
bridge | Dockerを使ったサーバー通信 |
lo(Local Loopback)とは何か?
lo0のは自分自身を表すネットワークです。
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP>
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
nd6 options=201<PERFORMNUD,DAD>
それぞれの項目の意味は以下のようになっています。
flags
インターフェースの状態を表しています。
項目 | 内容 | 詳細 |
---|---|---|
8049 | ステータス | <>の中身を数値化したもの |
UP | インターフェースの起動状態 | UP:起動中、DOWN:停止中 |
LOOPBACK | ループバック | ループバックであることを示す。 |
RUNNING | 転送の状態 | システムがパケットをインタフェース経由で転送していることを示す。 |
MULTICAST | マルチキャストの状態 | インタフェースがマルチキャスト転送をサポートすることを示す。 |
mtu 16384 | 最大転送単位(Max Transmission Unit) | 最大転送速度:16,384オクテット |
オクテットは8ビットのことです。
options
ネットワークインターフェースのオプションです。
項目 | 内容 | 詳細 |
---|---|---|
RXCSUM,TXCSUM | チェックサムオフロードの設定 | ユーザ設定可能なチェックサムオフロードをドライバがサポートする場合、 インタフェース上の受信 (または送信) チェックサムオフロードを有効にする。 |
TXSTATUS | 送信状況 | 送信状況を表示できる(?) |
TXとRXについて
通信管理用語。
Tx: 送信結果、送信機。transmitter
Rx: 受診結果、受信機。Reciever
xは以下省略の意味。
inet
IPv4のIPアドレスのことです。
項目 | 内容 | 詳細 |
---|---|---|
127.0.0.1 | ループバックアドレス | 自分に接続するためのアドレス。localhostと同じ |
netmask 0xff000000 | ネットマスク | ipv4ネットマスクのIPでネットワーク部とホスト部の区切りを定義 |
ループバックアドレスとは自分自身の環境を表すIPアドレスです。
仮想環境のサーバーにアクセスして、localhost:8080と入力してページが表示される時、127.0.0.1:8080としても同じページが表示されます。
inet6
IPv6のIPアドレスのことです。
項目 | 内容 | 詳細 |
---|---|---|
::1 | ループバックアドレス | 0:0:0:0:0:0:0:1の省略形。::は0が省略されているのを示す |
prefixlen 128 | プレフィックス長 | ネットワーク部とインターフェースIDの区切りを示す |
ループバックアドレスとは自分自身の環境を表すIPアドレスです。
ループバックアドレスはなぜ::1なのか?
IPv4だと127.0.0.1 、IPv6だと::1のようにループバックアドレスの末尾は0ではなく1となっています。
この理由はネットワークアドレスで説明できます。
IPアドレスはネットワーク部とホスト部で構成されます。
ネットワーク部とホスト部長さはIPアドレスにより変わります。IPv4だと127.0.0.1の場合は以下のようになります。
・ネットワーク部:127.0.0
・ホスト部:1
このとき、ホスト部が「0」の「127.0.0.0」はネットワーク部自体を指し、ネットワークアドレスと呼びます。
つまり、127.0.0.0はネットワークアドレスとなっているので、実際に割り当てられるIPアドレスは、127.0.0.1からとなります。
結果として、ループバックアドレスは、末尾が0ではなく、1になっています。
ブロードキャストアドレスとは何か?
127.0.0.0などホスト部が「0」のものをネットワークアドレスと呼ぶように、ホスト部が「255」のものをブロードキャストアドレスと呼びます。
ブロードキャストアドレスにデータを送ると、該当するネットワーク部の全てのIPアドレスにデータが送信されます。
ブロードキャストアドレスもネットワークアドレスと同じく既に決まっているため、割り当て用のIPアドレスには使用できません。
なお、127から始まるIPアドレスで、実際に割り当て可能なのは以下です。
127.0.0.1 ~ 127.255.255.254
en(ethernet)とは何か?
en(ethernet)とはイーサネットのことです。昔は有線LANでしたが、現在はwifiがほとんどです。
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=400<CHANNEL_IO>
ether f8:ff:c2:56:35:e8
inet6 fe80::cfb:70e3:8399:8de4%en0 prefixlen 64 secured scopeid 0x6
inet6 2400:2412:6a60:bb00:15:a832:d64c:80a7 prefixlen 64 autoconf secured
inet6 2400:2412:6a60:bb00:10e:cb65:fc27:e871 prefixlen 64 autoconf temporary
inet 192.168.3.7 netmask 0xffffff00 broadcast 192.168.3.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
各項目の基本的な読み方はloと同じです。
ここでは、inetに記載されている「192.168.3.255」について解説します。
プライベートIPアドレス
「192.168」で始まるIPアドレスをプライベートIPアドレスと呼びます。これは、実際にWEBとつながっているグローバールIPアドレスとは異なります。
wifiルーターなどを介して接続していることを示しています。
例えばフレッツ光だとグローバールIPアドレスとプライベートIPアドレスの違いは以下のようになります。
WEB
↑↓ (global IP address)
ONU-wifiルーター
↑↓ (Private IP address)
PC・スマホなど
プライベートIPアドレスを使うのは、限られたIPアドレスを有効活用するためです。
現在使用しているグローバルIPアドレスは、以下のサイトで確認できます。
>ラッコツールズ IPアドレス住所検索
プライベートIPアドレスの種類
192.168始まり以外に、10始まりや、172.16始まりも該当します。
クラス名 | IPアドレス範囲 | サブネットマスク | アドレス数 |
---|---|---|---|
クラスA | 10.0.0.0 – 10.255.255.255 | 255.0.0.0 | 16,777,216 |
クラスB | 172.16.0.0 – 172.31.255.255 | 255.240.0.0 | 1,048,576 |
クラスC | 192.168.0.0 – 192.168.255.255 | 255.255.0.0 | 65,536 |
企業など規模が大きく接続する人数が多い場合は10始まりを使うことが多です。
eather
インターフェースの中に記載されているeatherはMACアドレスを指します。
ether f8:ff:c2:56:35:e8
MACアドレスとは各ネットワーク機器に割り当てられた番号のことです。
wifiルーターや有線LANポートなどネットワークを繋ぐ一つ一つの機器にユニークな番号が割り当てられています。
IPv4とIPv6の比較
IPv4のIPアドレスの枯渇問題に対して、よりたくさんのIPアドレスを定義できるIPv6が使われるようになりました。
現在のwifiはIPv4とIPv6の両方を割り当てている場合が多いです。
IPv4とIPv6の主な違いは以下のようになります。
項目 | IPv4 | IPv6 |
---|---|---|
実例 | 192.168.3.7 | 2400:2412:6a60:bb00:15:a832:d64c:80a7 |
ビット数 | 32bit | 128bit |
区切りビット数 | 4bit | 8bit |
各区切りの桁数 | 3 | 16 |
進数 | 10進数 | 16進数(1~10 + a~f) |
構成 | ネットワーク部・ホスト部 | インターフェーID・プレフィックス |
IPv6はとにかく長いですが、基本的な構成概念はIPv4と同じです。