OS: Ubuntu 20.04.3、最新のアップデートがすべてインストール済み。
私はブリッジインターフェースを作成して、現在の(eno1)をスレーブ化しようとしています
Netplan 構成:
# This is the network config written by 'subiquity'
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: false
dhcp6: false
bridges:
br0:
interfaces: [eno1]
addresses: [10.20.0.21/24]
gateway4: 10.20.0.1
nameservers:
search: [example.com]
addresses: [10.20.0.1,10.20.0.10]
dhcp4: false
dhcp6: false
「netplan try」を実行すると、次のように表示されます。
** (generate:2332): WARNING **: 12:54:41.673: Problem encountered while validatingdefault route consistency.Please set up multiple routing tables and use `routing-policy` instead.
Error: Conflicting default route declarations for IPv4 (table: main, metric: default), first declared in br0 but also in eno1
システムを再起動すると、結果は次のようになります。
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.20.0.1 0.0.0.0 UG 0 0 0 br0
default 10.20.0.1 0.0.0.0 UG 0 0 0 eno1
10.20.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
10.20.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1
システムは引き続き使用可能ですが、構成は明らかに異常です。
$ networkctl
networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 eno1 ether routable configured
3 br0 bridge routable configured
$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether 18:c0:4d:63:da:da brd ff:ff:ff:ff:ff:ff
inet 10.20.0.21/24 brd 10.1.0.255 scope global eno1
valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 18:c0:4d:63:da:da brd ff:ff:ff:ff:ff:ff
inet 10.20.0.21/24 brd 10.1.0.255 scope global br0
valid_lft forever preferred_lft forever
inet6 fe80::700e:94ff:fea6:fc98/64 scope link
valid_lft forever preferred_lft forever
eno1 をスレーブにして、ルーティング エントリ/IP アドレスの重複を作成しないようにするにはどうすればよいですか?
1月21日の更新: 以下に他の設定ファイルはありません/etc/netplan
答え1
2022年1月22日の回避策:
netplan および/または networkd は現在バグが多く、IP/ルートを重複させずに前述の構成をサポートできないようです。
解決策は、NetworkManager に戻すことでした。
netplanの.yamlで、レンダラーの行を次のように置き換えてください。
renderer: NetworkManager
/etc/NetworkManager/NetworkManager.conf でネットワーク管理インターフェースが有効になっていることを確認してください (影響を受けるセクションは以下に記載)
[ifupdown] managed=true
etc/NetworkManager/conf.d/10-globally-managed-devices.conf でフィルタリングするインターフェース タイプを定義します。
[keyfile] unmanaged-devices=*,except:type:wifi,except:type:wwan,except:type:ethernet
注意: ファイル /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf が空 (サイズがゼロ) であることを確認してください。
NetworkManager を再起動するか、システムを再起動します。
sudo systemctl restart network-manager
注: GUI モードを使用する場合、NetworkManager が対応する接続をアクティブ化できないというエラーを継続的に表示しないようにするには、[設定] > [ネットワーク] で有線接続の自動起動を無効にする必要がある場合があります。
答え2
@KonstantinBoyandin - ここで提供されたシステムに関する情報は、どれでも結論。そうは言っても、あなたが遭遇した問題についての推測は次のとおりです。
IIRC 20.04 のデフォルト インストールではNetworkManager
既に使用されているはずです。つまり、すぐに使用できる状態で、観察したデフォルト ルートがNetworkManager
既に構成され、作成されている可能性が高いということです。eno1
default 10.20.0.1 0.0.0.0 UG 0 0 0 eno1
両方を使用することを妨げるものは何もありませんNetworkManager
そして systemd-networkd
- 思いつかない理由NetworkManager
そうすることはできますが、それを止めるものは何もありません。私はこれを利用して、すでに実行されているシステムにWireguardインターフェースを設定するときに対処しなくて済むようにしましたNetworkManager
。そうするときは、しなければならないこれらのツールは相互に作用する可能性があることに注意してください。たとえば、によって管理されている物理イーサネットアダプタがNetworkManager
ダウンした場合、何が起こるでしょうか。その物理アダプタに依存する仮想インターフェイスは、仮想アダプタの構成によって、失敗するかもしれませんし、しないかもしれません。外部のにNetworkManager
。
レンダラーを に切り替えた時点で、設定に をNetworkManager
使用したため、すべてが機能し始めました。netplan
NetworkManager
ネットワーク構成の唯一のサービスとしてあらゆる「クロス構成」を防止します。
この問題に遭遇した他のユーザーの場合、解決方法はいくつかあります。NetworkManager
別のレンダラーで構成したいインターフェイスの構成を停止するか、完全に無効にするかのいずれかです。私は、に切り替えてサーバー上で無効にし、デスクトップ Linux 上ではそのままにして、必要な場合にのみ他のネットワーク サービスを活用することNetworkManager
を好みます。netplan
systemd-networkd
NetworkManager
NetworkManager
一般的な Ubuntu 20.04 サーバーで、netplan を使用して OP の競合を回避する方法は次のとおりです。
- サーバーのプロビジョニング(Ubuntuのインストールなど)
- 必要なネットプラン構成を作成する
/etc/network/interfaces
で設定したインターフェースに適用されるセクションを編集してコメントアウトしますnetplan
。
# The primary network interface
# auto eno1
# iface eno1 inet dhcp
- 再起動(または停止)
NetworkManager
:sudo systemctl <restart|stop> NetworkManager.service
- 設定をテストします
netplan
。sudo netplan try
- すべてが正しく機能している場合は、
Enter
指示に従ってください
(オプション)
- 無効にする
NetworkManager
:sudo systemctl disable NetworkManager.service
(注記)
- 当然のことですが、上記では、ローカル コンソールにアクセスできる、または SSH 接続が構成しているインターフェイスに依存していないことを前提としています。接続が切断され、構成を完了できなくなる可能性があるためです。