Ubuntu で異なるネットワーク上の 2 つの NIC を同時に使用できない

Ubuntu で異なるネットワーク上の 2 つの NIC を同時に使用できない

Ubuntu 20.04.4 LTS を実行していますが、異なるネットワーク上で両方の NIC を同時に動作させるのに苦労しています。

インターネットに接続するネットワーク 1 と、NAS やその他のリソースに接続するネットワーク 2 があります。

片方を切断すると、それぞれが個別に動作します。ただし、同時には動作しません。他の古いスレッドで提案されているいくつかのことを試しました。サブネットが同じではないこと、デフォルトゲートウェイが 1 つだけであることを確認すること、IP が同じ範囲ではないことを確認することなどです。念のため、異なる MAC アドレスを使用していることも確認しました。

1 つのデバイスが動作を停止すると、実際に停止します。たとえば、ルーターではデバイスが表示されなくなります。

ネットワークのセキュリティのために、IP を DDoS や MAC アドレスに公開せずに、ifconfig やルートを安全に共有する方法がよくわかりませんが、誰かが手順を説明してくれれば、必要な情報を共有して助けてもらえると思います =)

私がすべきことは、それらを静的 IP として設定し、ネットマスクを別々にし、デフォルト ゲートウェイを 1 つだけ設定することだと思います。GUI ではこれを実現できないようです (または、実現できたかどうかを確認できません)。コマンド ラインでこれを実行できるようにサポートしていただけるとありがたいです。

このトピックに関する古いスレッドをいくつか見ましたが、それらは Ubuntu 12 と 14 のものであり、実用的なソリューションに従おうとすると、編集するように求められたファイルが存在しませんでした =(

** 質問から追加情報 / 安全を保つためのベストプラクティスを示してくれた@chili555に感謝します

両方が接続されているがネットワーク 1 のみが機能している場合の ifconfig:

eno8303: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.x.y  netmask 255.255.254.0  broadcast 10.10.a.b
        inet6 fe80::9b5a:98e3:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>
        ether XX:XX:XX:XX:XX:Xc  txqueuelen 1000  (Ethernet)
        RX packets 49005255  bytes 9779685701 (9.7 GB)
        RX errors 0  dropped 2  overruns 0  frame 0
        TX packets 17858283  bytes 3889222415 (3.8 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 48  

eno8403: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether XX:XX:XX:XX:XX:Xd  txqueuelen 1000  (Ethernet)
        RX packets 2107226  bytes 800274299 (800.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 67827  bytes 8155445 (8.1 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 134  

netplan は NetworkManager に過ぎないので、おそらく変更が必要なのはここでしょう。これが私の yaml です:

# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

ルート

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    100    0        0 eno8303
10.10.x.y       0.0.0.0         255.255.254.0   U     100    0        0 eno8303
10.244.x.y      0.0.0.0         255.255.0.0     U     0      0        0 zeroTeir
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 eno8303
172.17.x.y      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.x.y      0.0.0.0         255.255.0.0     U     0      0        0 br

コメントで Rinzwind によって解決されました。netplan のこのリンクがまさに私が必要としていたものでした -->https://serverfault.com/questions/939922/netplan-with-2-nics-each-connected-to-a-different-gateway/949447#949447

この質問に解決済みフラグを付ける方法がわかりませんが、解決済みです。

答え1

@Rinzwind と他の人達のおかげで、解決策はカスタムネットプランを作成することでした (https://netplan.io/)、最終的には自分の環境に固有のカスタム設定をいくつか追加しましたが、これが両方のネットワークと個別に通信するようになった基礎です。

network:
  version: 2
  renderer: networkd
  ethernets:
   eno8303:
    dhcp4: yes
    nameservers:
        search: [foo.local, bar.local]
        addresses: [8.8.8.8]
   eno8403:
    dhcp4: yes

関連情報