アドレス設定
ifconfig を打ったら command not found と返ってくる。壊れているのではなく、もう入っていないのです。net-tools は開発が停滞し、現在の標準は iproute2 の ip と ss です。この対応がそのまま出題されます。
旧 net-tools と現行 iproute2 の対応
| 旧 (net-tools) | 現行 (iproute2) | 何をするか |
|---|---|---|
ifconfig | ip addr show | インターフェースとアドレスの一覧 |
ifconfig eth0 up | ip link set eth0 up | リンクの有効化。down で無効化 |
ifconfig eth0 <IP> netmask <MASK> | ip addr add <IP>/24 dev eth0 | アドレスを付ける |
route -n | ip route show | ルーティングテーブルを見る |
arp -a | ip neigh show | ARP テーブルを見る |
netstat -tuln | ss -tuln | 待ち受けポートの一覧 |
特に arp と ip neigh の対応は、neigh という綴りが見慣れないぶん間違えやすいところです。neighbour (近隣) の略です。netstat の後継が ip ではなく ss である点も狙われます。
ip は オブジェクト + コマンド の形
ip は ip [オプション] オブジェクト コマンド という形で、オブジェクトは link addr route neigh などです。先頭から一意に決まれば省略でき、ip a は ip addr と同じです。
ターミナル
ip addr show # 全インターフェースのアドレス
ip -br addr # 1行1インターフェースの簡潔表示
ip link show # リンク層の状態。MAC アドレスと UP/DOWN
ip -s link # 送受信パケット数などの統計付き-br は brief の略で、縦に長くなりがちな ip addr の出力を1行にまとめます。-4 と -6 を付ければ IPv4 と IPv6 を選べます。
プレフィックス長を書かないと /32 になる
ターミナル
ip addr add 192.168.1.10/24 dev eth0 # 付ける
ip addr del 192.168.1.10/24 dev eth0 # 外す
ip link set eth0 up # リンクを上げる
ip link set eth0 down # リンクを下げるip addr add にはプレフィックス長が必須です。/24 を書かないと /32 として扱われ、同じセグメントの相手と通信できません。ここを欠いた選択肢が誤答として並びます。ip link set はリンクを上げるだけでアドレスは付かない、という点も問われます。
1つのインターフェースに複数のアドレスを付けられるのも ip の特徴で、ifconfig の時代に要った eth0:0 のようなエイリアスは不要です。ただし ip で加えた設定は再起動すると消えます。恒久的に残すには設定ファイル側に書きます。
恒久設定は3つの方式がある
Debian 系の伝統的な方式が ifupdown で、設定は /etc/network/interfaces です。デスクトップや RHEL 系では NetworkManager が /etc/NetworkManager/system-connections/ を持ち、nmcli で操作します。サーバー向けの軽量な方式が systemd-networkd で、/etc/systemd/network/*.network に書きます。
/etc/network/interfaces は次のように書きます。
プレーンテキスト
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1inet static を inet dhcp にすれば DHCP で取得します。auto を付けた行は起動時に自動で有効化されます。反映は ifup と ifdown です。
インターフェース名は、systemd 環境では enp0s5 ens33 のような規則的な名前になります。先頭の en が Ethernet、wl が無線 LAN、続く p がバス番号、s がスロット番号です。ループバックだけは今も lo です。名前は機械ごとに違うので、打つ前に ip -br link で確かめてください。