ifconfigの出力結果に書いてあること

# まえがき(*´ω｀*)
Linuxお勉強中です。
ifconfigコマンドを使用したときに、出力結果の意味がわからなすぎたので、勉強がてらメモしていきます。

## ■経緯
1. VMwareを使用して、centos6の仮想環境をつくりました
2. WEBサーバーの立ち上げをするためIPを調べようとしました
3. 出力結果の意味がわからなくて戦慄しました
4. くやしいので調査した結果をまとめます

## ■よく分からなかったこと
- ens33とか、loとか何？どういう単位で括られてるの？
- それぞれの項目の内容ってどういう意味？
- 情報が羅列されてるけど、どういう塊りで見ればいいの？

## ■出力結果sample

```
[hogehoge@localhost ~]$ ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.124.132  netmask 255.255.255.0  broadcast 192.168.124.255
        inet6 fe80::c76c:cabd:65a6:8014  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:9a:c9:d9  txqueuelen 1000  (Ethernet)
        RX packets 228563  bytes 331521958 (316.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 131323  bytes 7977468 (7.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.121.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:9f:3c:38  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0-nic: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 52:54:00:9f:3c:38  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
```

# 本題

## ■概要理解

![スクリーンショット 2018-04-12 13.40.45.png](https://qiita-image-store.s3.amazonaws.com/0/63060/e4f8277d-4f7f-017d-577a-6ed2700f687f.png)

出力結果の内容は大体こんな感じのようです。

- インターフェース名（接続名）
    -  有線接続端子とか無線とかブルートゥースとか
- 概要情報
    - インターフェースの状態についての情報
- IPとか
    - IPv4とIPv6、MACアドレスについて
- 受信系
    - 受信パケットに関する統計
- 送信
    - 送信パケットに関する統計

## ■状態
ens33: flags=4163\<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

| 実例 | 項目名 | 意味 |
|:--|:--|:--|
| ens33 | インターフェース名 | インターフェースの名称。<br/>接続ポートなどの単位で切られる。 |
| flags | インターフェースの状態 | イコール以下がインターフェースの状態フラグですよ |
| 4163 | フラグの数値表示 | 括弧の中の状態フラグを数値化したもの |
| UP | インターフェースの起動状態 | UP=起動中、DOWN＝停止中 |
| BROADCAST | ブロードキャストの状態 | インターフェースがブロードキャストを利用できるか。有効か。<br/>できない時は表示されない。<br/>IPv4のみIPv6にはない |
| RUNNING | 転送の状態 | システムがパケットをインターフェース経由で転送しているかどうか。<br/>ドライバが正常にロードされて起動が可能な状態か。<br/>してない時は表示されない。 |
| MULTICAST | マルチキャストの状態 | インタフェースがマルチキャスト転送を利用できるか。有効か。<br/>してない時は表示されない。 |
| mtu 1500 | 最大転送単位  | １フレームの送信最大値（Maximum Transmission Unit）<br/>単位はバイト |

## ■アドレス
inet 192.168.124.132  netmask 255.255.255.0  broadcast 192.168.124.255
inet6 fe80::c76c:cabd:65a6:8014  prefixlen 64  scopeid 0x20<link>
ether 00:0c:29:9a:c9:d9  txqueuelen 1000  (Ethernet)

| 実例 | 項目名 | 意味 |
|:--|:--|:--|
| inet 192.168.124.132 | IPv4のIPアドレス | 現在のIPです<br/>静的独自IP or DHCP自動割り当て |
| netmask 255.255.255.0 | ネットマスク | インターフェースのIPv4ネットマスク<br/>IPのどこからどこまでが、ネットワークなのかホストなのかの定義<br/>ネットマスク＝サブネットマスク |
| broadcast 192.168.124.255 | ブロードキャストアドレス | ブロードキャスト用のIP<br/>ホスト部のビットが全て 1  |
| inet6 fe80::c76c:cabd:65a6:8014 | IPv6のIPアドレス | 現在のIPです<br/>静的独自IP or DHCP自動割り当て<br/>スコープの種類毎に複数の場合もあり |
| prefixlen 64 | プレフィックス長 | IPアドレスの中でネットワークアドレスを示す前のほうの部分<br/>前から何ビット目までがネットワークを表すか<br/>自動設定の場合は64 |
| scopeid 0x20<link> | スコープID | アドレスが有効である範囲についてのID<br/>パケットの到達範囲（スコープ）<br/>0x20の部分がID、<>の中がラベル |
| ether 00:0c:29:9a:c9:d9 | MACアドレス | インターフェース固有アドレス |
| txqueuelen 1000  (Ethernet) | パケットの送信キュー | 一つのキューにキューイングできるバッファ数のこと |

## ■受信と送信
RX packets 228563  bytes 331521958 (316.1 MiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 131323  bytes 7977468 (7.6 MiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

| 実例 | 項目名 | 意味 |
|:--|:--|:--|
| RX | 受信について | Receiver |
| packets 228563 | 受信パケット数 |  |
| bytes 331521958 (316.1 MiB) | 受信パケット(バイト) |  |
| errors 0 | エラーとなった数 |  |
| dropped 0 | 破棄した数 |  |
| overruns 0 | 遅滞した数 |  |
| frame 0 | 指定フレームを超過した数 |  |
| TX | 送信について | Transmitter |
| packets 131323 | 受信パケット数 |  |
| bytes 7977468 (7.6 MiB) | 受信パケット(バイト) |  |
| errors 0 | エラーとなった数 |  |
| dropped 0 | 破棄した数 |  |
| overruns 0 | 遅滞した数 |  |
| carrier 0 | キャリア数 |  |
| collisions 0 | 衝突を検知した数 |  |

# 補足

## ■インターフェース

よくあるやつ

- ens~ ：有線の接続ポート。大体、最初は勝手にensの後に数字が振られる。
- eth~ ：有線の接続ポート。上と内容は同じだが命名規則が変わった。こちらが旧。
- lo ：ループバックのこと。実際はインターフェースとして存在しないが、テスト用などに仮想として必ずある。
- virbr0 ：VMware使ってるから出てるらしい。
- virbr0-nic　：VMware使ってるから出てるらしい。nicはNetwork Interface Card

## ■ネットマスク、プレキャスト数

netmask 255.255.255.0の意味
![wi-fig03.gif](https://qiita-image-store.s3.amazonaws.com/0/63060/966816cd-8957-edc2-0fc0-063ff53004bb.gif)

## ■特殊IP

| 特殊IP | 説明 |
|:--|:--|
| 0.0.0.0/8 | Current network (only valid as source address) RFC 1122 |
| 10.0.0.0/8 | プライベートアドレス RFC 1918 |
| 127.0.0.0/8 | ローカルホストアドレス RFC 1122 |
| 169.254.0.0/16 | LINKLOCALアドレス（APIPA用） RFC 3927 |
| 172.16.0.0/12 | プライベートアドレス RFC 1918 |
| 192.0.0.0/24 | IETF Protocol Assignments RFC 5736 |
| 192.0.2.0/24 | テストネットワーク RFC 5737 |
| 192.88.99.0/24 | 6to4 IPv6からIPv4への変換方式の一つ RFC 3068 |
| 192.168.0.0/16 | プライベートアドレス RFC 1918 |
| 198.18.0.0/15 | ネットワーク性能試験 RFC 2544 |
| 198.51.100.0/24 | テストネットワーク RFC 5737 |
| 203.0.113.0/24 | テストネットワーク RFC 5737 |
| 223.255.255.0/24 | 予約 RFC 3330 |
| 224.0.0.0/4 | マルチキャスト（クラスD） RFC 3171 |
| 240.0.0.0/4 | 予約（クラスE） RFC 1112 |
| 255.255.255.255 | ブロードキャスト RFC 919,RFC 922 |