Ubuntu:多个 NIC,一个仅用于 LAN 唤醒

Jam*_*ack 1 ubuntu wake-on-lan interface

这与其他一些问题类似,但我有一个特定的需求,其他问题没有涵盖。

我有一个带有两个 NIC 的 Ubuntu 服务器 (11.10)。一个内置于主板中,另一个是 PCI Express 卡。我想让我的服务器通过我的 NAT 路由器连接到互联网,并且还能够使用 Magic Packet(以下称为 Wake-On-LAN,WOL)从挂起状态中唤醒。我不能只用一个 NIC 来做到这一点,因为每个 NIC 都有一个问题 - 如果内置 NIC 处于高负载(通常是下载数据)下会使系统崩溃,而 PCI express NIC 会使系统崩溃,如果它用于 WOL。我花了一些时间调查这些个别问题,但无济于事。

因此我的计划是:将内置网卡用于 WOL,并使用 PCI express 卡进行除 WOL 之外的所有其他网络通信。由于我将 WOL Magic Packet 发送到特定的 MAC 地址,因此没有遇到错误 NIC 的危险,但存在使用内置 NIC 进行一般网络访问、使其过载并导致系统崩溃的危险。

两个 NIC 都连接到地址空间为 192.168.0.0/24 的同一个 LAN。在 Ubuntu 的 udev 持久规则中,内置以太网卡的接口名称设置为 eth1,PCI express 卡设置为 eth0(因此它们在重新启动时保持不变)。

我一直在尝试使用 /etc/network/interfaces 文件进行设置。这是我目前的位置:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.3
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

auto eth1
iface eth1 inet static
address 192.168.0.254
netmask 255.255.255.0
Run Code Online (Sandbox Code Playgroud)

我认为通过不为 eth1 指定网关,我可以防止它被用于传出请求。我不介意它是否可以在 LAN 上的 192.168.0.254 上访问,即通过 SSH——它的 IP 与基于 MAC 地址的 WOL 无关——我只是不希望它被用来访问互联网资源。

我的内核路由表(来自 route -n)是

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
Run Code Online (Sandbox Code Playgroud)

我的问题是:这足以满足我想要实现的目标吗?我的研究提出了使用静态路由来指定 eth1 应仅用于本地网络上的 WOL 的想法,但我不确定这是必要的。

我一直在使用 iptraf 监视接口的活动,似乎 eth0 接收了绝大多数数据包,但我不确定这是否会根据我的配置保持一致。鉴于如果我弄乱了配置,我的系统可能会崩溃,正确设置对我来说很重要!

Sve*_*ven 6

对于 WOL,您不需要将接口集成到系统中,它不需要 IP 地址或其他任何东西。所需要的只是系统在接收到 WOL 信号时唤醒,该信号由 BIOS 处理,不受任何操作系统的控制。

因此,在 Linux 中只需配置您需要的接口即可。