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-routes
Microsoft 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.leases
、option 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 の要求を削除します。