24.9. 複数のデフォルトゲートウェイによる予期しないルーティング動作の修正

マルチパス TCP を使用する場合など、ホストで複数のデフォルトゲートウェイが必要なシナリオはそれほどありません。多くの場合、ルーティングの動作や非同期ルーティングの問題を回避するために、1 つのデフォルトゲートウェイのみを設定します。

注記

異なるインターネットプロバイダーにトラフィックをルーティングするには、複数のデフォルトゲートウェイの代わりにポリシーベースのルーティングを使用します。

前提条件

  • ホストは NetworkManager を使用してネットワーク接続を管理します。これはデフォルトです。
  • ホストには複数のネットワークインターフェイスがある。
  • ホストには複数のデフォルトゲートウェイが設定されている。

手順

  1. ルーティングテーブルを表示します。

    • IPv4 の場合は、次のコマンドを実行します。

      # ip -4 route
      default via 192.0.2.1 dev enp1s0 proto static metric 101
      default via 198.51.100.1 dev enp7s0 proto static metric 102
      ...
    • IPv6 の場合は、次のコマンドを実行します。

      # ip -6 route
      default via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref medium
      default via 2001:db8:2::1 dev enp7s0 proto static metric 102 pref medium
      ...

    default で開始するエントリーはデフォルトのルートを示します。dev の横に表示されるこれらのエントリーのインターフェイス名を書き留めます。

  2. 以下のコマンドを使用して、前の手順で特定したインターフェイスを使用する NetworkManager 接続を表示します。

    # nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp1s0
    GENERAL.CONNECTION:      Corporate-LAN
    IP4.GATEWAY:             192.0.2.1
    IP6.GATEWAY:             2001:db8:1::1
    
    # nmcli -f GENERAL.CONNECTION,IP4.GATEWAY,IP6.GATEWAY device show enp7s0
    GENERAL.CONNECTION:      Internet-Provider
    IP4.GATEWAY:             198.51.100.1
    IP6.GATEWAY:             2001:db8:2::1

    この例では、Corporate-LANInternet-Provider という名前のプロファイルにはデフォルトのゲートウェイが設定されています。これは、ローカルネットワークでは、通常、インターネット 1 ホップ近いホストがデフォルトゲートウェイであるため、この手順の残りの部分では、Corporate-LAN のデフォルトゲートウェイが正しくないことを想定するためです。

  3. NetworkManager が、IPv4 および IPv6 接続のデフォルトルートとして Corporate-LAN 接続を使用しないように設定します。

    # nmcli connection modify Corporate-LAN ipv4.never-default yes ipv6.never-default yes

    ipv4.never-default および ipv6.never-defaultyes に設定すると、対応するプロトコルのデフォルトのゲートウェイ IP アドレスが、接続プロファイルから削除されることに注意してください。

  4. Corporate-LAN 接続をアクティブにします。

    # nmcli connection up Corporate-LAN

検証

  • IPv4 および IPv6 ルーティングテーブルを表示し、プロトコルごとに 1 つのデフォルトゲートウェイのみが利用可能であることを確認します。

    • IPv4 の場合は、次のコマンドを実行します。

      # ip -4 route
      default via 192.0.2.1 dev enp1s0 proto static metric 101
      ...
    • IPv6 の場合は、次のコマンドを実行します。

      # ip -6 route
      default via 2001:db8:1::1 dev enp1s0 proto static metric 101 pref medium
      ...