web-dev-qa-db-ja.com

Ubuntu 18.04ネットプランの静的ルート

新しいネットプラン構成の静的ルートに関するヘルプが必要です。 2つのネットワークインターフェイス、 ethernet および wlan を備えたubuntuサーバー18.04を使用します。基本的な成功 configuring in/ etc/netplan/50-cloud-init.yaml私は両方のネットワークを持っています。ただし、enp3s0はイントラネットであり、wlp2s0はwifiルーターです。そして、私は無線LANでインターネットを作ることはできません。 Yaml fileを構成/再構成して数日後、動作させることができません。

デフォルトゲートウェイ/ sbin/route del default gw 1​​0.185.0.1の削除のみが機能しますが、イントラネットへのルーティングはありません。 Route -nlist

このルートを追加する方法はわかりません...

    network:
  version: 2
  renderer: networkd
  ethernets:
        enp3s0:
            addresses: []
            dhcp4: true
            gateway4: 10.185.0.1
            nameservers:
              addresses: [10.185.x.x, y.y.y.y]
            routes:
            - to: 10.185.0.0/0
              via: 10.185.0.1
              metric: 100
              table: 101
            routing-policy:
              - from: 10.185.0.0/24
                table: 101

  wifis:
        wlp2s0:
            addresses: []
            dhcp4: true
            optional: true
            gateway4: 192.168.8.1
            access-points:
                 "Wifi":
                    password: "password"
            nameservers:
              addresses: [8.8.8.8,8.8.4.4]
            routes:
            - to: 0.0.0.0/0
              via: 192.168.8.1
              metric: 90
              table: 91
            routing-policy:
              - from: 192.168.8.0/24
                table: 91

UPD:構成/etc/systemd/network/をオーバーライドします。 UseRoutes=falseを使用すると、起動時に無限のネットワーク検索が発生し、RouteMetric=700を設定すると動作が向上し、起動後にwifi経由でインターネットに接続できます。しかし、10.185.0.1を介した10.180.0.0/16のような新しいルートを追加しても、影響はなく、ルートカーネルルーティングテーブルには表示されません。
そして、tracerout 172.16.185.194が192.168.8.1を通過する理由を今でも誤解しています。 ip4テーブルについて読みましたが、- to: 172.16.0.0/12または/16が機能しません。

6
Elendiar

一般的に、ここで欲しいのは:

  • インターネットに接続するインターフェース上に、単一のデフォルトゲートウェイを(gateway4で)設定します。両方にデフォルトゲートウェイを設定すると、パケットの半分がイントラネットにルーティングされ、宛先に到達できなくなります。

  • イントラネットに複数のサブネットがある場合は、イントラネットに接続されたインターフェイスを介してそれらに到達するために静的ルートが必要です。 (1つの例は、 RFC1918 サブネットをそのインターフェースにルーティングすることです。これはおそらく良い考えです。)

今、あなたの特定の例では、イントラネットを完全には説明していませんが、イントラネットが10.185.x.yネットワーク、つまり10.185.0.0で構成されていると仮定しましょう。/ 16

また、イントラネットへのアクセスを提供するenp3s0インターフェイスが10.185.0.zサブネット、つまり10.185.0.0のIPを受信すると仮定します。/ 24 サブネット、およびそのサブネット内のゲートウェイが10.185.0.1であること。

したがって、残りの10.185に到達するには静的ルートが必要です。バツ.yサブネット。xは0ではありません。

これを設定するには、次のような構成を使用できます。

network:
  version: 2
  renderer: networkd
  ethernets:
        enp3s0:
            addresses: []
            dhcp4: true
            nameservers:
              addresses: [10.185.x.x, y.y.y.y]
            routes:
            - to: 10.185.0.0/16
              via: 10.185.0.1
  wifis:
        wlp2s0:
            addresses: []
            dhcp4: true
            optional: true
            gateway4: 192.168.8.1
            access-points:
                 "Wifi":
                    password: "password"
            nameservers:
              addresses: [8.8.8.8,8.8.4.4]

この編集された構成では、次のことに注意してください。

  • Enp3s0構成にはgateway4がありません。これは、静的ルートを介して設定されたイントラネット宛てのトラフィックである場合にのみ、デフォルトでトラフィックをそのインターフェースに送りたくないからです。

  • 逆に、wlp2s0には静的ルートが必要ありません。デフォルトゲートウェイが接続されているため、これで十分です。

  • ルーティングテーブルとルーティングポリシーは不要です。イントラネットの内部アドレスをカバーする静的ルート(またはいくつかの静的ルート)を設定し、そのネットワークのゲートウェイのIPを介してルーティングするだけです。直接接続していない他のサブネットにルーティングします。

この設定は、実際には、内部ネットワークのDHCPサーバーがプロビジョニングしているもの(たとえば、インターフェイスが10.185にあるなど)に依存することに注意してください。/ 24ネットワークとその10.185.0.1は、そのインターフェイスで使用できるゲートウェイです...そのため、おそらく、より良いセットアップは、イントラネット内のDHCPサーバーに静的ルートをプッシュすることです(ネットプランで構成する代わりに)。 )ゲートウェイのIPを変更するためにイントラネットを再構成する場合、または他のRFC1819プライベート範囲を含めるために拡張する場合、そのようにDHCPサーバーのみを再構成する必要があり、他のすべてではありません...

ただし、DHCPサーバーが制御できない場合は、ゲートウェイIPが変更されるように内部ネットワークがあまり頻繁に再構成されないと仮定すると、このセットアップは受け入れられる場合があります。すべてのRFC1918範囲に静的ルートを追加することを検討する必要があります。これらはインターネットでは無効になり、イントラネットでのみ有効になる可能性があるためです。

routes:
- to: 10.0.0.0/8
  via: 10.185.0.1
- to: 172.16.0.0/12
  via: 10.185.0.1
- to: 192.168.0.0/16
  via: 10.185.0.1

これがお役に立てば幸いです!

7
filbranden