Назад | Перейти на главную страницу

Ubuntu: несколько сетевых карт, одна используется только для Wake-On-LAN

Это похоже на некоторые другие вопросы, но у меня есть особая потребность, которая не рассматривается в других вопросах.

У меня есть сервер Ubuntu (11.10) с двумя сетевыми адаптерами. Один встроен в материнскую плату, а другой - это карта PCI Express. Я хочу, чтобы мой сервер был подключен к Интернету через мой NAT-маршрутизатор, а также чтобы он мог выходить из режима ожидания с помощью Magic Packet (далее именуемого Wake-On-LAN, WOL). Я не могу сделать это только с одним из сетевых адаптеров, потому что у каждого из них есть проблема - встроенный сетевой адаптер приведет к сбою системы, если он находится под большой нагрузкой (обычно загружает данные), в то время как сетевая карта PCI Express приведет к сбою системы, если он используется для WOL. Я потратил некоторое время на изучение этих отдельных проблем, но безрезультатно.

Мой план таков: используйте встроенную сетевую карту исключительно для WOL и используйте карту PCI Express для всех других сетевых подключений, кроме WOL. Поскольку я отправляю пакет WOL Magic Packet на конкретный MAC-адрес, нет опасности попасть не в тот сетевой адаптер, но есть опасность использования встроенного сетевого адаптера для общего доступа к сети, его перегрузки и сбоя системы.

Обе сетевые карты подключены к одной и той же локальной сети с адресным пространством 192.168.0.0/24. Встроенная карта Ethernet имеет имя интерфейса eth1, а карта PCI Express - eth0 в постоянных правилах Ubuntu udev (поэтому они остаются неизменными при перезагрузке).

Я пытался настроить это с помощью файла / 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, я предотвращаю его использование для исходящих запросов. Я не возражаю, если его можно будет достичь по 192.168.0.254 в локальной сети, то есть через SSH - это IP не имеет отношения к WOL, который основан на MAC-адресах - я просто не хочу, чтобы он использовался для доступа Интернет-ресурсы.

Моя таблица маршрутизации ядра (из маршрута -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 принимает подавляющее большинство пакетов, хотя я не уверен, что это будет согласованно в зависимости от моей конфигурации. Учитывая, что если я испорчу конфигурацию, моя система, скорее всего, выйдет из строя, для меня важно правильно настроить это!

Для WOL вам не нужно интегрировать интерфейс в систему, ему не нужен IP-адрес или что-то еще. Все, что нужно, - это чтобы система просыпалась, если она получает сигнал WOL, который обрабатывается BIOS вне контроля какой-либо операционной системы.

Итак, в Linux просто настройте только тот интерфейс, который вам нужен, и все готово.