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 服务器设置的自动默认路由。

可以尝试使用 dhclient 进行类似操作,通过编辑文件 /etc/dhcp/dhclient.conf 并查找以下行:

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 的请求。

相关内容