DHCP 连接不会自动设置默认网关

Jon*_*ark 4 wireless networking dhcp 16.04

我刚刚全新安装了 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"
Run Code Online (Sandbox Code Playgroud)

这种工作方式:IP 配置正常,但未设置默认网关。启动后我总是必须route add default gw 192.168.1.1手动运行。知道什么可能是错误的吗?我可以发誓这个设置曾经在旧版本上运行良好......

小智 9

我在 Ubuntu Server 16.04 上遇到了同样的问题。故障排除后,我的问题源于我的 DHCP 服务器还提供了rfc3442-classless-static-routes来自 Microsoft DHCP 服务器(Windows Server 2008 R2)的无类静态路由(DHCP 选项 121,在 ISC DHCP 中)。

看一下/sbin/dhclient-script,如果至少有一个无类静态路由提供给 DHCP 客户端,它会忽略路由器设置,因此没有设置默认路由。

# if we have $new_rfc3442_classless_static_routes then we have to
# ignore $new_routers entirely
Run Code Online (Sandbox Code Playgroud)

我的“修复”是向 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 地址发生更改,则需要手动更新受影响的机器。