Linux: デフォルトゲートウェイの確認方法

Linux でデフォルトゲートウェイを確認するには、ip -4 route show default を実行します。出力内の via の後にあるアドレスが、そのデフォルトルートの次ホップゲートウェイであり、IPv6 は ip -6 route show default で別途確認できます。

デフォルトゲートウェイとは何ですか?

デフォルトゲートウェイは、宛先に一致するより具体的なルートが存在しない場合にパケットを転送するために使用される次のホップです。家庭や小規模なネットワークでは、これはしばしばルーターのアドレスですが、サーバー、仮想マシン、またはVPN環境では、別のデバイスや仮想インターフェースである場合もあります。ゲートウェイアドレスとコンピュータのIPアドレスは異なる値です。

以下のコマンドはルーティング情報を照会するもので、ネットワーク設定を変更するものではありません。通常、管理者権限なしで実行できます。例示のアドレスやインターフェース名は参考用であり、実際の環境での結果は異なる場合があります。

IPv4デフォルトルートの確認

ターミナルで次のコマンドを実行します。

ip -4 route show default

以下は、可能な出力例です。

default via 192.0.2.1 dev enp1s0 proto dhcp metric 100
  • default: デフォルトルートを示します。
  • via 192.0.2.1: パケットを転送する次のホップアドレス。
  • dev enp1s0: このルートで使用されるネットワークインターフェース。
  • proto dhcp: この例では、DHCPで取得したルートを示します。手動設定など、他の値も可能です。
  • metric 100: ルート優先度に使用される値。同じ条件のルートを比較する場合、一般的に小さい値が優先されます。

デフォルトルートが複数存在する場合があります。VPNや複数のインターフェースを使用している場合は、トラフィックの宛先やポリシールーティングも確認する必要があります。ルートやメトリックの意味についてはip-routeマニュアルを参照してください。

IPv6デフォルトルートの確認

IPv6ルートはIPv4ルートとは別に表示されます。

ip -6 route show default

例えば、次のように表示されることがあります。

default via fe80::1 dev enp1s0 proto ra metric 100

この例ではfe80::1はリンクローカルアドレスであるため、使用するインターフェースを示す dev enp1s0 と併せて確認します。IPv6が使用されていない場合やデフォルトルートが設定されていない場合、出力がないことがあります。IPv4とIPv6のゲートウェイは同一である必要はなく、同時に存在する必要もありません。

特定の宛先に使用するルートを確認する

デフォルトルートが表示されているからといって、すべての宛先がそのルートを使用するわけではありません。より特定のルートやポリシールーティングがある場合、選択されるルートは異なる場合があります。以下のコマンドは、サンプル宛先に対してカーネルが選択したルートを確認します。

ip route get 198.51.100.25

結果にviaが表示される場合、それは次のホップを示し、devは使用するインターフェイスを示します。直接接続された宛先にはviaが表示されないことがあります。この確認は実際にパケットを送信するものではないため、接続の成功を確認するテストではありません。宛先アドレスは、確認したい実際のアドレスに置き換えてください。

ポリシールーティングを使用する環境では、ip route show はデフォルトで main テーブルを表示しますが、ip route get は適用されるルールを使用してルート検索を実行します。次のコマンドを使用してルールとテーブル全体を確認し、必要に応じて送信元などの実際のトラフィック条件を考慮してルックアップを行ってください。

ip rule show
ip route show table all

出力がない場合やアクセスできない場合

  • デフォルトルートなし: インターフェースの接続状態とアドレスを ip addr show で確認し、DHCP またはネットワーク管理ツールの設定を確認してください。特定のルートのみが必要なシステムでは、デフォルトルートなしの構成が意図されている場合があります。
  • ルートは存在するが通信に失敗する: ゲートウェイのアドレスが表示されるからといって、インターネットや宛先への接続が保証されるわけではありません。インターフェース、ファイアウォール、次ホップ、DNSを順に確認してください。
  • 複数のデフォルトルート: インターフェース、メトリクス、ポリシールール、ip route get の結果を一緒に確認してください。VPNやコンテナは別のルートを使用する場合があります。

ping をゲートウェイに送信すると到達性を確認できますが、応答がブロックされるネットワークでは、失敗は必ずしも接続問題を意味するわけではありません。リモートサーバーのルーティング設定を変更する前に、切断の可能性と復旧経路を確認してください。

従来の route コマンドで確認する

古いシステムでは、route -nも使用できます。出力でDestinationが0.0.0.0である行のGatewayとIfaceを確認してください。-nは名前の代わりに数字のアドレスを表示します。

route -n

routeがインストールされていない場合は、新しいパッケージを追加する前に、すでに提供されているip routeを使用してみてください。ネットワークツールやディストリビューションの出力は、バージョンによって異なる場合があります。