私は2つのイーサネットネットワークカードでUbuntu 18.04を実行しています。両方のネットワークカードでDHCPを使用します。 netplanが両方のデバイスで0.0.0.0/0のデフォルトパスを生成しないようにするにはどうすればよいですか?一方のNICはゲートウェイを介して0.0.0.0/0にルーティングし、もう一方のNICは特定の/ 24サブネットにルーティングしたいと思います。 netplan設定にパスを追加できることはわかっていますが、常に0.0.0.0/0のデフォルトパスが作成されます。
答え1
~によるとこの回答、それしなければならないうまくいきますdhcp4-overrides
が、18.04 Ubuntu以降はこれをサポートしていません。私の回避策は、デフォルトの/etc/networkd-dispatcher/routable.d/
パスを削除するフックスクリプトを作成することでした。
#!/bin/sh
# Only remove the default route on the second interface, e.g. eth1
[ "$IFACE" != eth1 ] && exit 0
# delete the default route for this interface
ip route del default dev eth1
ファイル所有者とグループがroot
実行可能であることを確認してください。
ネットワークスケジューラの詳細については、こちらをご覧ください。https://gitlab.com/craftyguy/networkd-dispatcher
答え2
NICをより適切に制御するには、両方のアダプタを静的に保持するか、1つ以上のアダプタ。
これは、対応するMACアドレスに対して対応するDHCPサーバーに2つのIPを予約することで、特定の範囲内で簡単に実行できます。DHCPの制限事項 そのうちの全部または一部を手動で設定します。
(たとえば、会社のポリシーに基づいて固定IPを使用するときにまったく異なるIP範囲を使用する必要がある場合でも、上記のハイブリッド技術を使用できます。)
答え3
super@gitlab:~$ lsb_release -dc
Description: Ubuntu 18.04.4 LTS
Codename: bionic
super@gitlab:~$ cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
ens18:
addresses:
- 172.16.104.177/24
dhcp4: false
gateway4: 172.16.104.1
nameservers:
addresses:
- 172.16.104.1
search: []
ens19:
dhcp4: true
dhcp4-overrides:
use-routes: false
routes:
- to: 10.0.0.0/16
via: 10.0.90.1
version: 2
super@gitlab:~$ ip r
default via 172.16.104.1 dev ens18 proto static
10.0.0.0/16 via 10.0.90.1 dev ens19 proto static
10.0.90.0/24 dev ens19 proto kernel scope link src 10.0.90.21
172.16.104.0/24 dev ens18 proto kernel scope link src 172.16.104.177
super@gitlab:~$
答え4
dhcp4-overrides
Ubuntu 20.04では動作しません。
たとえば、さまざまなインターフェイス用に別々のファイルを作成します。
デフォルトパスを追加したい最初のインターフェイスについては、eth0を考えてみましょう。
/etc/netplan/00-eth0.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: true
その後、デフォルトパス eth1 を回避したい別のパスに別のファイルを作成します。
/etc/netplan/01-eth1.yaml
network:
version: 2
renderer: networkd
ethernets:
eth1:
dhcp4: true
その後、走ってsudo netplan apply
ルートを確認してください。ip r
ネットワークをレンダラーとして使用すると、デフォルトパスが生成されないようです。