Linuxのデフォルトゲートウェイは、まずip routeで現在の経路を読み取り、設定を管理している仕組みを確認してから変更します。Ubuntuだから必ずinterfaces、Red Hat系だから必ずnetwork-scriptsという選び方はできません。Netplan、NetworkManager、systemd-networkd、ifupdownなど、実際の構成に合わせます。
最初は変更せずに確認する
ip -br address
ip -4 route show default
ip -6 route show default
ip rule show
ip route show table all
default viaの後が次のルーター、devの後がインターフェースです。IPv4とIPv6は別に確認します。複数NIC、VPN、ポリシールーティングがあると、メインテーブルのdefault一行だけでは実際の経路を説明できません。
ip route get 203.0.113.10
上の宛先は説明用です。調べたい実際の宛先IPへ置き換えると、カーネルが選ぶ経路を確認できます。このコマンドは疎通試験ではなく経路照会です。表示された経路があることと、通信先が応答することは別です。
出力の読み方
default via 192.168.1.1 dev enp1s0 proto dhcp metric 100
この例ではenp1s0から192.168.1.1を経由します。metricは候補経路の優先判断に使われますが、特定宛先の経路やip ruleの設定も影響します。数値の小さいdefaultだけを見て全通信の出口を決めつけないでください。
旧来のnetstat -rnやroute -nでも経路は表示できますが、net-toolsが入っていない環境もあります。確認目的だけなら、利用できるipコマンドを優先します。
変更前の安全確認
SSH接続中のゲートウェイ変更は接続を切断する可能性があります。コンソールなど別の復旧経路、変更前の設定、戻し方、保守時間を確保します。リモート接続しかなく戻せない場合は変更しません。記事のIP・接続名・NIC名は例なので、そのまま実行しないでください。
DHCPで配布されているのか静的設定なのかを確認し、クラウドイメージならcloud-initや管理サービスによる再生成も確認します。ゲートウェイ、端末IP、プレフィックス、DNSを別々の役割として扱います。名前解決だけの問題で経路を変更する必要はありません。
一時的なip routeの変更
以下は単一のIPv4デフォルト経路を設定する説明例です。変更対象を特定し、既存経路と同じ条件で戻せる場合に限って使います。replaceは既存の対象経路を変更するため、確認なしに実行しないでください。
sudo ip route replace default via 192.168.1.1 dev enp1s0 metric 100
ip routeによる変更はネットワーク管理ソフトの永続設定ではありません。再接続・DHCP更新・再起動で変わる場合があります。複数のdefault、別テーブル、VPN経路がある環境ではこの一行を流用せず、対象テーブルや経路を管理者と確認します。
NetworkManagerなら接続プロファイルを指定する
nmcli device status
nmcli connection show
nmcli connection show --active
デバイス名と接続プロファイル名は同じとは限りません。たとえばNICがenp1s0でも接続名は「Wired connection 1」の場合があります。次の例は、静的IPなどの既存構成を確認済みの対象プロファイルのゲートウェイだけを変更する例です。
nmcli connection show "Wired connection 1"
sudo nmcli connection modify "Wired connection 1" ipv4.gateway 192.168.1.1
sudo nmcli connection up "Wired connection 1"
connection upは再接続を伴い得ます。DHCPの経路やipv4.never-default、既存のルート設定と競合していないか確認し、適用後にip route getで実際の経路を確かめます。接続全体を初期化する手順ではなく、環境によってはDHCP配布元の修正が適切です。
Netplanならroutesでデフォルト経路を定義する
Netplanを使う構成では/etc/netplanの既存YAMLとrendererを確認します。gateway4/gateway6は非推奨で、現在の記法はroutesのto: defaultです。次は静的IPv4を使うnetworkd構成の例で、既存ファイルを丸ごと置き換えるためのテンプレートではありません。
network:
version: 2
renderer: networkd
ethernets:
enp1s0:
dhcp4: false
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
実際のNIC名・アドレス・rendererを使い、既存DNSや他のインターフェース設定を保持します。社内DNSを公開DNSへ置き換える必要はありません。複数YAMLの重複定義や、cloud-initが生成する設定にも注意してください。
sudo netplan generate
sudo netplan try --timeout 120
generateで構文を確認し、tryで一時適用して疎通を確認します。tryには未確認時に戻す仕組みがありますが、構成によってロールバックの制約があるため、復旧用コンソールの代わりにはなりません。通信と設定が正しいことを確認してから確定し、戻った場合も実際の経路とファイルを確認します。
旧設定ファイルやGUIを使う場合
/etc/network/interfacesはifupdownで管理する構成、ifcfgファイルや/etc/sysconfig/networkは対応する旧来の構成で使われます。現在使われていないファイルへ追記しても反映されません。networking・network・NetworkManagerなどのサービスを、ディストリビューション名だけで一律再起動しないでください。
GNOMEやKDEのGUIも、対象の接続プロファイルを選び、IPv4/IPv6のアドレス方式と経路を確認します。DHCPから手動に変更すると、ゲートウェイ以外のアドレスやDNSの準備も必要です。画面名や保存後の適用操作は環境で異なるため、既存値を記録してから変更します。
反映しないときの確認と戻し方
設定したプロファイルが実際に有効か、DHCP・VPN・別の管理ツールが経路を再設定していないかを確認します。「反映しないからネットワーク全体を再起動」を繰り返すのは避けます。ゲートウェイへ到達できない場合はNIC、IP/プレフィックス、接続先ネットワークも確認します。
変更後はIPv4/IPv6のdefault、目的の宛先へのip route get、実際の業務接続、名前解決をそれぞれ確認します。ping不通だけで故障と断定せず、許可された通信で検証します。遅いという理由だけでMTUを変更しません。
失敗した場合は、保存しておいた接続プロファイルやYAMLへ戻し、その管理方式で適用します。一時経路を変えた場合も変更した対象だけを戻し、全ルートをflushしないでください。永続設定は保守時間に再接続・再起動後も確認します。
公式・一次資料
ip-routeマニュアル
NetworkManager:nmcli
Netplan:YAML設定
Netplan:tryと制約



コメント