DHCP 連線不會自動設定預設網關

DHCP 連線不會自動設定預設網關

我剛剛全新安裝了 Ubuntu 16.04 (Xenial)。我已設定/etc/network/interfaces為使用 DHCP 自動啟動 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,如果至少向 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 的請求。

相關內容