Ubuntu:多个接口,只有一个局域网

Ubuntu:多个接口,只有一个局域网

我有2个接口:

  • wlan0:通过 DHCP 连接到正常网络(有互联网)
  • eth0:仅连接到 LAN。用于 PXE 启动和 NFS

此计算机上未安装网络管理器服务。

如果我将 /etc/network/interfaces 完全留空,两个接口都会正常运行,但每个接口都设置了一个默认网关。我运行ip route

default via 192.168.10.1 dev eth0 src 192.168.10.100 metric 202
default via 192.168.0.1 dev wlan0 src 192.168.0.20 metric 303
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.20 metric 303
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.100 metric 202

192.168.10.1 上的默认路由妨碍了互联网连接。如果我sudo route del default再次运行ip route

default via 192.168.0.1 dev wlan0 src 192.168.0.20 metric 303
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.20 metric 303
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.100 metric 202

一切都很好:

adam@sheep:~$ ping google.com
PING google.com (172.217.5.238) 56(84) bytes of data.
64 bytes from iad30s07-in-f238.1e100.net (172.217.5.238): icmp_seq=1 ttl=54 time=38.3 ms
64 bytes from iad30s07-in-f238.1e100.net (172.217.5.238): icmp_seq=2 ttl=54 time=38.7 ms

如果我在 /etc/network/interfaces 中输入任何内容,wlan0 将不会启动,并且机器会在此启动步骤挂起约一分钟:a start job is running for Raise network interfaces。即使这样也会失败:

auto wlan0
iface wlan0 inet dhcp


auto eth0
iface eth0 inet dhcp
  1. 我是不是漏掉了什么?我是不是配置错了什么?
  2. 我怎样才能让 eth0 上的默认路由从一开始就不被设置?

我感觉最终的解决方案看起来像这样:

auto wlan0
iface wlan0 inet dhcp


auto eth0
iface eth0 inet dhcp
up route del default

但我目前陷入困境,因为甚至更基本的配置也失败了。

答案1

我的问题出在 PXE 服务器上的 dnsmasq 配置上。它发送了一个网关地址,因此即使从客户端中删除了该地址,当客户端获得新的 DHCP 租约时,它最终也会被重新发送。Michael Hampton 建议的永久修复方法是阻止 DHCP 服务器建议网关。

我有

# DHCP server for PXE
interface=eno1
dhcp-range=192.168.10.50,192.168.10.150,12h
dhcp-option=66,192.168.10.1 #option 66 sets the address of the TFTP server

但需要明确禁用网关地址被发送:

interface=eno1
dhcp-range=192.168.10.50,192.168.10.150,12h
dhcp-option=66,192.168.10.1 # option 66 sets the address of the TFTP server
dhcp-option=3
dhcp-option=6

这会将网关(选项 3)和 DNS(选项 6)设置为 nil

相关内容