DHCP接続ではデフォルトゲートウェイが自動的に設定されません

DHCP接続ではデフォルトゲートウェイが自動的に設定されません

Ubuntu 16.04 (Xenial) を新規インストールしました。DHCP/etc/network/interfacesを使用して wlan インターフェイスを自動的に起動するように設定しました。

auto lo
iface lo inet loopback

auto wlp2s0
iface wlp2s0 inet dhcp
  wpa-ssid SSID
  wpa-psk "password"

これは、ある程度動作します。IP は正常に構成されていますが、デフォルト ゲートウェイは設定されていません。起動後は常にroute add default gw 192.168.1.1手動で実行する必要があります。何が間違っているのか、何か考えはありますか? この設定は、以前のバージョンでは正常に動作していたはずですが...

答え1

Ubuntu Server 16.04 でも同じ問題が発生しています。トラブルシューティングの結果、問題は、DHCP サーバーがrfc3442-classless-static-routesMicrosoft DHCP サーバー (Windows Server 2008 R2) からクラスレス静的ルート (ISC DHCP の DHCP オプション 121) も提供していることに起因していることがわかりました。

を見ると/sbin/dhclient-script、少なくとも 1 つのクラスレス静的ルートが DHCP クライアントに提供されている場合、ルーターの設定は無視され、デフォルト ルートは設定されません。

# if we have $new_rfc3442_classless_static_routes then we have to
# ignore $new_routers entirely

私の「修正」は、Windows DHCP サーバーに別のクラスレス静的ルートを追加することです。つまり、

  • 宛先: 0.0.0.0
  • ネットワークマスク: 0.0.0.0
  • ルーター: 192.168.1.1

(追加されると、ネットワーク マスクは自動的に 255.255.255.255 に変更されます)

DHCP リースの有効期限は短く (15 分)、新しいルートを追加してからネットワーク上の他の Linux または Windows ユーザーから苦情は受けていないので、この変更によって大きな問題は発生しないと考えています。

私はまだ初心者なのでコメントできませんが、

  • @t11z 私のリースファイルは であり/var/lib/dhcp/dhclient.ens32.leasesoption routers存在し、有効です。
  • @Jos 回避策ではありますが、あなたの提案は、DHCP を使用してネットワーク設定をプロビジョニングする目的に反します。将来、デフォルト ゲートウェイの IP アドレスが変更された場合、影響を受けるマシンを手動で更新する必要があります。

答え2

Raspberry Pi をルーターとして設定しているのですが、同じ問題が発生しました。/etc/dhcpcd.conf ファイルを編集して修正しました。

ファイルを開いて次の行を探します:

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes

私は単に「option classless_static_routes」をコメントアウトしました

# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
# option classless_static_routes

現在、DHCP サーバーによって自動デフォルト ルートが設定されています。

/etc/dhcp/dhclient.conf ファイルを編集して次の行を探すことで、dhclient でも同様のことを試すことができます。

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, domain-search, host-name,
        dhcp6.name-servers, dhcp6.domain-search,
        netbios-name-servers, netbios-scope, interface-mtu,
        rfc3442-classless-static-routes, ntp-servers;

rfc3442-classless-static-routes の要求を削除します。

関連情報