Linuxでネットワークインターフェースを追加・削除するときは、IPアドレスの追加、仮想リンクの作成、接続プロファイルの作成を区別します。例えばip addr addは既存インターフェースへアドレスを付ける操作であり、新しいNICやeth0:1という独立したリンクを作る操作ではありません。
この記事では、確認コマンド、一時的なIP設定、検証用仮想リンク、NetworkManager・Netplanなどの永続設定の違いを整理します。設定変更は通信を切断する可能性があります。SSH接続中の管理用NICでは試さず、ローカルコンソールやクラウドのコンソールなど復旧経路を確保してください。例の名前とアドレスは実環境へそのままコピーしないでください。
最初に決める:何を追加・削除したいか
・既存NICへ追加IPを付ける/外す:ip address add/del。
・dummy、veth、VLANなどの仮想リンクを作る/消す:ip link add/delete。
・物理NICを有効化/無効化する:ip link set up/down。NIC自体を取り外す操作ではありません。
・再接続や再起動後の設定を保存する:NetworkManager、Netplan、systemd-networkd、ifupdownなど、対象インターフェースの管理方式で設定。
物理NIC名はeth0とは限らず、enp3s0、ens160など環境ごとに異なります。仮想マシンでは仮想化基盤側でNICを追加してから、ゲストOSで認識を確認する場合もあります。インターフェースはアドレスなしで存在することもあり、1つに複数のIPアドレスを付けることもできます。
変更前の確認と記録
ip -br link
ip -br address
ip route show
ip -6 route showリンク名、UP/DOWN、アドレスとプレフィックス、デフォルトルートを控えます。UPは管理上の有効状態であり、それだけでケーブル接続・DNS・インターネット到達性が正常とは限りません。IPアドレス、ルート、DNSを分けて確認してください。
ip address show dev enp3s0
ip -s link show dev enp3s0enp3s0は例です。ip -br linkで実在する名前を確認して置き換えます。NetworkManagerを使っている環境では、次の読み取りコマンドでデバイスと保存された接続設定を確認します。コマンドがない環境へ、確認のためだけに別のネットワーク管理サービスを追加する必要はありません。
nmcli device status
nmcli connection show
nmcli connection show --activeプロファイルのNAME・UUIDと、デバイス名は別物です。同じNIC向けに複数のプロファイルがあっても、単に名前を増やしただけではNICが増えるわけではありません。Netplanが設定の入口になっている環境では、バックエンドにNetworkManagerやsystemd-networkdを使う場合もあります。サービスの稼働状況だけで管理元を決めず、既存設定を確認します。
作業前に変更する設定ファイルやプロファイル、元のアドレス・ルート・DNSを記録し、復元手順を準備します。管理接続が切れたときに同じSSHから直せる前提にはしないでください。共有・本番環境では管理者の変更手順に従います。
既存インターフェースへIPアドレスを一時的に追加する
以下は、ローカルコンソールから操作する検証用NICの例です。実行前にenp3s0が対象であること、例示アドレス192.0.2.10/24が既存設定や経路と競合しないことを確認します。192.0.2.0/24は文書・検証の説明用で、実ネットワークで使う割当てアドレスとは別です。
sudo ip address add 192.0.2.10/24 dev enp3s0
ip address show dev enp3s0この操作はenp3s0にアドレスを追加します。独立した仮想インターフェースeth0:1を作る操作ではありません。アドレスラベルや従来のエイリアス表記と、カーネル上のリンクを混同しないでください。また、アドレス追加に伴う接続ルートの変化も確認します。
追加したアドレスだけを取り消す場合は、同じアドレス・プレフィックス・デバイスを指定します。既存の管理用アドレスや、他の作業で設定されたものを削除しないでください。
sudo ip address del 192.0.2.10/24 dev enp3s0
ip address show dev enp3s0ipによる変更は通常、カーネルの現在状態に対するものです。再起動やネットワーク管理サービスによる再適用で消えたり戻ったりします。永続設定が残っていれば、ip address delだけで削除を完了したとはいえません。全アドレスをまとめて消すflush操作を、追加IP1つの削除の代わりに使わないでください。
物理NICの有効化・無効化は「削除」ではない
次は検証用NICを管理上UP/DOWNにする例です。DOWNにすると、そのNICを通る管理・業務通信が切れます。別の経路またはコンソールで作業し、未使用と確認できた対象だけに適用してください。
sudo ip link set dev enp3s0 up
# 無効化が必要なときだけ実行
sudo ip link set dev enp3s0 downDOWNは物理NICの取り外しでも、保存された接続プロファイルの削除でもありません。管理サービスが再び有効化する場合もあります。物理NICをOSから隠すためのドライバー解除や、稼働中のハードウェア取り外しをこの手順の続きとして行わないでください。
仮想インターフェースを実際に作成・削除する
dummyリンクで作成と削除を確認する
以下は権限とカーネルの対応がある使い捨て検証環境向けです。管理用NICには触れず、実在しない固有名dummy-demoを確認して使います。dummyは外部ネットワークへつながる物理NICの代わりにはなりません。
ip link show dev dummy-demo
# 存在しない名前であることを確認してから作成
sudo ip link add name dummy-demo type dummy
sudo ip link set dev dummy-demo up
ip -d link show dev dummy-demo最初の確認で「存在しない」と出るのは、この例では作成前の確認結果です。既に存在する場合はそのリンクを削除せず、別の検証名を選びます。Operation not permittedなどのエラーは権限・コンテナ制限等を確認し、システムの保護を解除して強行しないでください。
# この例で作成したリンクだけを削除
sudo ip link delete dev dummy-demo
ip link show dev dummy-demo削除後はリンクが見つからないことを確認します。仮想リンクに付いていたアドレスや、そのリンクに依存する通信も失われるため、実運用のリンクに読み替える場合は影響を調べてください。
vethは対で作られる
コンテナなどで使うvethは、対になった仮想Ethernetデバイスです。次は作成と確認だけの例で、VMへ自動接続したり、外部通信を可能にしたりする設定ではありません。名前が未使用であることを確認して検証環境で実行します。
sudo ip link add name veth-demo0 type veth peer name veth-demo1
ip -d link show dev veth-demo0
ip -d link show dev veth-demo1
# 作成した対を片付ける。片側を消すと相手側も削除される
sudo ip link delete dev veth-demo0永続化:管理方式を混在させない
NetworkManagerではプロファイルと実際の状態を分ける
保存設定を調べるには、一覧で確認したUUIDを指定します。以下のYOUR_PROFILE_UUIDは実際のUUIDに置き換える記号で、そのままの文字列で実行するものではありません。
nmcli connection show uuid "YOUR_PROFILE_UUID"既存プロファイルに追加IPを保持する必要がある場合、NetworkManagerではipv4.addressesのリストを変更できます。次の例は指定した追加アドレスだけの追加・取り消しです。先に現在のIPv4方式、既存アドレス、DHCPとの併用条件を確認し、設定全体を置き換えないようにします。
sudo nmcli connection modify uuid "YOUR_PROFILE_UUID" +ipv4.addresses "192.0.2.10/24"
# 追加を取り消す場合
sudo nmcli connection modify uuid "YOUR_PROFILE_UUID" -ipv4.addresses "192.0.2.10/24"これは保存プロファイルの変更で、接続中の実行状態へ必ず即時反映されるとは限りません。反映には対応するdevice reapplyや接続の再有効化などが必要な場合があり、変更内容とバージョンに依存します。再有効化では通信が途切れ得るため、管理経路から安易に実行しないでください。適用後はip addressとルート、必要な通信を確認します。
nmcli connection add type ethernetは物理NICの作成ではなく、そのNIC向けの接続プロファイルの作成です。既存NICへ追加IPを付けたいだけなら、同じNICのプロファイルを無闇に増やさず既存設定を確認します。connection deleteは保存プロファイルの削除であり、アドレス1つだけの削除とは異なります。不要・非稼働と確認したものだけ、UUIDと復旧手段を確認して管理手順から削除します。
Netplanは既存YAMLとバックエンドを確認する
Netplanを使う環境では、/etc/netplan/の設定とrenderer、既存のaddresses・DHCP・routes・nameserversを確認します。同じインターフェースを別のYAMLへ重複定義してよいとは限りません。元のファイルを保管し、対象設定へ必要な変更だけを加えます。
例えばaddressesリストへ追加する場合も、既存アドレスを残す必要があるのか、DHCPと併用するのかを確認します。デフォルトルートやDNSは追加IPとは別の判断です。サンプルのgateway4や外部DNSを理由なくコピーせず、現在のNetplan文書と実環境の指定値を使います。
sudo netplan generate
# 構文等の確認後、コンソールと復旧手段を確保して実施
sudo netplan try --timeout 120generateはバックエンド設定を生成する工程で、通信が成功することを保証しません。tryは設定を試し、期限内に確認しなければ戻す機能ですが、公式文書にはロールバックの既知の注意点があります。戻ったと決めつけず、実際の通信状態とディスク上の設定を確認します。tryで確定できた後に、同じ目的でapplyを重ねる必要はありません。
ifupdown・systemd-networkdなどの場合
/etc/network/interfacesはifupdown系の管理で使う設定です。Debian系・Ubuntuという名前だけで、このファイルが対象NICの有効な管理元だとは判断できません。systemd-networkdを直接使う場合や、cloud-initなどが生成する構成もあるため、ディストリビューションと構築方式の公式手順へ合わせます。
汎用手順としてsystemctl restart networkingを実行しないでください。そのサービスがない環境もあり、存在しても複数の通信へ影響する可能性があります。対象を管理しているサービス・プロファイルを特定してから、変更の反映方法を選びます。
トラブルシューティングはリンク・アドレス・経路・DNSの順に
リンクがない場合は、物理接続、仮想化基盤のNIC割当て、カーネルの認識とドライバーを確認します。リンクがある場合は、まず管理状態とキャリア、次にアドレス・プレフィックス・重複、ルート、DNSを分けて調べます。
ip -br link
ip -br address
ip route show
ip -s link show dev enp3s0
# ethtoolが導入済みで対象NICが対応する場合
ethtool enp3s0速度・duplexの確認と、値を強制変更する操作は別です。相手機器とのネゴシエーション条件を確認せず、1000Mbps・fullへ固定する対処は行いません。通信量の観測には既存の監視ツールも使えますが、通信量が多いことだけで原因のプロセスまで特定できるとは限りません。
DNSでは/etc/resolv.confが管理サービスの生成物やシンボリックリンクの場合があります。読み取って現在の参照先を確認することと、直接編集して永続化することは別です。systemd-resolvedを使う環境ならresolvectl statusも確認し、変更が必要な場合は管理元で設定します。
ログは利用中のNetworkManagerやsystemd-networkdなど実在するサービスに絞って確認します。network.serviceという名前や/var/log/syslogがすべてのLinuxにあるとは限りません。アドレス・内部ホスト名などを含む出力は、公開する前に不要な情報を除いてください。
bond・bridge・ポリシールーティングは別の設計が必要
bondは複数NICをまとめますが、active-backupは主に冗長化の方式で、単一通信の帯域が自動的に合算されるわけではありません。モード、リンク監視、スイッチ側の要件、既存IPをどこへ移すかを確認します。
bridgeへ物理NICを参加させる場合、ホストのIPやルートをブリッジ側へ移す設計が必要になることがあります。管理用NICをそのままbridgeへ追加すると、接続を失う恐れがあります。vethの作成だけでもVM・コンテナへの接続は完成しません。名前空間、ブリッジ、アドレス、フィルターを含めて設計します。
複数のルーティングテーブルへデフォルトルートを登録しただけでは、期待した負荷分散にはなりません。ip rule、マーク、戻り経路などが関係します。追加IPの説明と混ぜて、iptablesや経路設定の一部だけをコピーしないでください。
セキュリティ設定を同時に変更しない
NIC追加の作業に合わせて、ファイアウォールのDROPルール追加、ufwの有効化、SSHポート変更をまとめて実行すると、どの変更で接続を失ったか分かりにくくなります。必要なアクセス制御は、既存ルール、IPv4/IPv6、管理経路、復旧方法を別途確認して変更します。
不要と思われるNICでも、管理・クラスタ・ストレージなどの経路で使われる場合があります。役割を確認してから対象を限定してください。パケット監視ツールの導入も本作業の必須条件ではありません。組織の許可範囲と情報の取り扱いを守ります。
まとめ
IPを追加するならip address、仮想リンクを作るならip link、永続化は現在の管理方式を使います。削除も「アドレス」「リンク」「保存プロファイル」のどれを消すのか明確にしてください。作業後は実行状態と保存設定の両方を確認し、管理接続を失わない復旧経路を準備してから変更しましょう。



コメント