Ubuntu:多个 NIC,其中一个仅用于局域网唤醒

Ubuntu:多个 NIC,其中一个仅用于局域网唤醒

这与其他一些问题类似,但我有一个其他问题未涉及的特定需求。

我有一台带有两块网卡的 Ubuntu 服务器 (11.10)。一块内置在主板上,另一块是 PCI Express 卡。我希望我的服务器通过 NAT 路由器连接到互联网,并且能够使用 Magic Packet(以下称为 Wake-On-LAN,WOL)从挂起状态唤醒。我无法仅使用其中一块网卡来实现这一点,因为每块网卡都存在问题 - 如果内置网卡承受高负载(通常是下载数据),则会导致系统崩溃;而如果 PCI Express 网卡用于 WOL,则会导致系统崩溃。我花了一些时间调查这些单独的问题,但无济于事。

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

两个网卡都连接到同一个 LAN,地址空间为 192.168.0.0/24。在 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

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

我的内核路由表(来自路由-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

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

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

答案1

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

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

相关内容