web-dev-qa-db-ja.com

netplanを使用するubuntuサーバー18.04のdhcpからのデフォルトgwはありません

Ubuntuサーバー18.04のネットワーク構成に問題があります。私のホストは、dhcpサーバーからのデフォルトゲートウェイルートを適用しません。

私のネットプラン構成は:

network:
version: 2
ethernets:
    enp0s8:
       addresses: []
       dhcp4: true
       optional: true

iPルート:

172.16.0.0/22 via 192.168.26.1 dev enp0s8 proto dhcp metric 100 
172.20.0.0/24 via 192.168.26.1 dev enp0s8 proto dhcp metric 100 
192.168.0.0/16 via 192.168.26.1 dev enp0s8 proto dhcp metric 100 
192.168.26.0/24 dev enp0s8 proto kernel scope link src 192.168.26.227

netplan ipリースenp0s8:

ADDRESS=192.168.26.227
NETMASK=255.255.255.0
ROUTER=192.168.26.1
SERVER_ADDRESS=172.16.0.100
NEXT_SERVER=172.16.0.100
T1=1000000
T2=1750000
LIFETIME=2000000
DNS=172.16.0.250 172.16.0.100
NTP=172.16.0.1
DOMAINNAME=domain.name
ROUTES=172.20.0.0/24,192.168.26.1 172.16.0.0/22,192.168.26.1 192.168.0.0/16,192.168.26.1
CLIENTID=ffaf818f7d00020000ab11546f22c88c98f9a0

私はまた、netplan設定にgateway4オプションを追加しようとしました-それは効果がありません。

しかし、ルートをデフォルトのgwに手動で追加すると、すべてが正常に機能し始めます。

1
Pavel Krutikhin

問題は、DHCPが静的ルート(dhcpオプション121)のルールを設定していることであり、そのような場合、ルーターゲートウェイは説明されているように無視されます here

2行目から最後の行でどのnetplan ip leasesが返すかから、DHCPルールが静的ルートを設定していることがわかります。

@greecemonkeyの回答で説明されているように0.0.0.0の別のルーティングルールを追加することにより、Ubuntu 16で1つのオプションが機能するようです(Ubuntu 18のネットプランで機能するかどうかは確認できていません)

@ Flash5kの回答で説明されているように、DHCPサーバーが提供する静的ルートを無視することもできます。残念ながら、これはUbuntu 18.04のネットプランでは機能しません。 /etc/dhcpcd.confファイルを編集しても、netplanはこのファイルを使用していないため(内部dhcpクライアントを使用しているため)、影響はありません。

新しいバージョンのネットプランでは、DHCPサーバーによって提供されるルート(およびDHCPによって提供される他の設定)を無視できるdhcp-overridesの新しいオプションがあります。残念ながら現在のところ、これはUbuntu 18.04にバックポートされていません。

1
Zvi Bogen