5

Название говорит само за себя, но вот длинная версия:

Я пытаюсь настроить способ автоматического включения домашнего сервера с помощью WakeOnLan, когда клиент пытается получить к нему доступ. Моя идея состоит в том, что маршрутизатор (OpenWRT 14.07, Barrier Breaker) отслеживает любые попытки подключения к хосту, который я хочу разбудить, используя iptables и в случае, если он регистрирует такое событие, он отправляет волшебный пакет для пробуждения хоста. После многих попыток и помощи по SF, я получил iptables для работы с мостовым устройством и, следовательно, с локальной сетью (см. Здесь).

К сожалению, теперь я столкнулся с проблемой, что, если хост выключен, для него не существует записи ARP, и, следовательно, локальные клиенты не будут отправлять пакеты, если они не могут разрешить IP (если я правильно понял проблему). Для внешних клиентов, получающих доступ из Интернета, это работает.

Если я правильно понимаю, решение должно заключаться в создании статической записи ARP, чтобы маршрутизатор отвечал на любые запросы, а затем клиенты отправляли свой пакет. После этого я попытался с помощью ip neigh add 192.168.1.20 lladdr 00:de:ad:be:ef:00 nud permanent dev br-lan и запустив arp Я вижу запись для сервера, но она все равно не работает.

Я подтвердил, что когда сервер включен или недавно был выключен (несколько минут до начала ), у клиентов посылать пакеты, которые записываемые iptables

Итак, вопросы:

1) Что я делаю не так?

2) Как мне добиться статической / постоянной записи ARP на?

2 ответа2

3

Я был в состоянии использовать

ip neighbor replace 192.168.0.1 lladdr 11:22:33:44:55:66 nud permanent dev eth0

или если не просили уже

ip neighbor add 192.168.0.1 lladdr 11:22:33:44:55:66 nud permanent dev eth0

Чтобы установить IP-адрес на MAC-адрес.

2

Правильный способ иметь статические записи ARP - это настроить внешний файл, обычно называемый /etc /ethers, в формате:

   00:11:22:33:44:55 192.168.1.2
   aa:bb:cc:dd:ee:ff 192.168.1.3

и так далее, чтобы добавить следующую строку

   post-up arp -f /etc/ethers

(Я не знаю iproute2, эквивалентный arp -f, но эта команда все еще работает на ядре 14.04) В разделе для интерфейса br-lan в файле /etc/network/interfaces.

Что касается того, почему ваша команда; Я не знаю, это выглядит нормально для меня. Как называется ваш мостовой интерфейс? В вашем примере это br-lan, вы должны были измениться в соответствии с вашими потребностями.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .