Linux のネットワークインターフェースは、ネットワーク名前空間を物理デバイス、ループバック経路、ブリッジ、トンネル、仮想デバイスなどのリンクへ接続します。インターフェース状態、アドレス、ルート、DNS、永続設定は互いに関係しますが、別々のものです。
ネットワーク設定 · レッスン 1
ネットワークインターフェース
Linux インターフェースの状態、アドレス、統計、永続設定の管理主体を調べる方法を学びます。
インターフェースを見つける
現代的な iproute2 ツールを使います。
$ ip -brief link show
$ ip -brief address show
インターフェース名には、enp1s0 のようなハードウェア由来の予測可能な名前、eth0 のような従来名、管理者が定義した名前があります。eth0 が必ず存在する、または特定のアダプターを示すとは決めつけないでください。
スクリプトで eth0 を決め打ちせず、検出すべきなのはなぜですか?
管理状態と動作状態
UP は、インターフェースが管理上有効であることを意味します。LOWER_UP は一般に、Ethernet のキャリアなど、下位層が動作可能と報告していることを示します。どちらか一方だけでは、IP アドレス、ルート、DNS、ファイアウォール、アプリケーション経路が機能するとは証明できません。
$ ip -details link show dev enp1s0
$ ip -s link show dev enp1s0
統計表示からエラー、破棄、カウンターを確認できますが、値を意味のあるものにするには観測期間と基準値が必要です。
管理状態が UP でも証明できないことはどれですか?
実行時の状態を変更する
実行時の操作には、次のようなコマンドがあります。
$ sudo ip link set dev enp1s0 up
$ sudo ip address add 192.0.2.10/24 dev enp1s0
これらは現在のカーネル状態を変更するため、後でプロファイルを再適用するネットワークマネージャーと競合する場合があります。リモート管理に使うインターフェースを停止すると、即座にアクセスを失う可能性があります。変更前に対象デバイスを確認し、コンソールアクセスを確保し、現在の状態を記録して、時間指定または検証済みのロールバックを用意してください。
ip address add だけで、再起動後も設定が残ると保証できますか?
設定の管理主体を特定する
永続設定の場所は、ディストリビューションやインストールごとに異なります。NetworkManager のプロファイル、systemd-networkd の unit、netplan の入力、/etc/network/interfaces、cloud-init、オーケストレーションなどが候補です。ファイルを編集する前に、どのサービスがデバイスを管理しているか確認します。
$ systemctl --type=service --state=running | grep -E 'NetworkManager|networkd|networking'
$ networkctl status
$ nmcli device status
特定した管理システムに存在するコマンドだけを使ってください。二つのマネージャーが同じリンクを制御すると競合し、互いの状態を上書きする場合があります。
インターフェースの永続設定を変更する前に、何をすべきですか?
変更を検証する
リンク状態、割り当てアドレスと有効期間、選択されるルート、リゾルバー状態、近隣への到達性、実際のアプリケーションを確認します。永続変更の場合、復旧経路があるときに限り、制御されたサービス再起動または再起動でテストしてください。
ip address に新しいアドレスが表示されることより、強い証拠になるのはどれですか?
レッスン完了
ネットワークインターフェース を完了しました
これで、実行時の状態と永続ポリシーを混同せず、インターフェースを調査・変更できます。
実際のインターフェース名とアドレスを検出する。
管理状態と運用上の接続性を区別する。
直接の
ip変更を現在のカーネル状態として扱う。永続設定の変更前に、稼働中の設定管理主体を特定する。
変更後にルーティング、名前解決、アプリケーション動作を検証する。