На домашнем роутере "прокидываю" 33333 порт. На работе формирую WoL-пакет. Теперь пытаюсь настроить EProxy чтобы этот пакет попал на домашний роутер.
В UDPMap.txt прописываю:
33333;HomeRouterIP;33333;;;;;
Теперь запускаю сформированный пакет на порт 33333 на работе и вот что в логах 20071107UDPMAP.log:
13:31:37 520 UDP request processor started
13:31:37 520 UDP packet from: 192.168.42.72:33333, accepted by: 0.0.0.0:33333
13:31:37 520 Denied interface 0.0.0.0
13:31:37 520 STAT: 0:0:0:0:16
Если пробую прописать разрешённым интефейс 0.0.0.0, получаю:
13:24:54 214 UDP request processor started
13:24:54 214 UDP packet from: 192.168.42.72:33333, accepted by: 0.0.0.0:33333
13:24:54 214 Local Network
13:24:58 214 Map socket return: 3744624215
13:24:58 214 STAT: 102:0:0:102:4750
Домашнего роутера пакет не достигает.
Как и что правильно настроить
А с адресом 0.0.0.0 ситуация такая (насколько я понял всё написанное в MSDN) — имея на руках принятую датаграмму и слушающий все интерфейсы сокет, невозможно определить, на какой именно интерфейс пришёл пакет. Я такого способа не нашёл. Поэтому свободно слушающие сокеты не будут проверяться на разрешённый интерфейс. Если нужна защита — привязывайте сокеты к конкретным интерфейсам. Правда, в этом случае проверка вообще смысла не имеет (по крайней мере, в той логике, которая была у меня заложена изначально), поэтому буду додумывать.
Исправление (быстрофикс, проверять было не на чем): http://www.eserv.ru/download/PigMailPigProxy.1.32.fix20071108.zip
Распаковать в Eproxy\myconf\plugins\udpmap\ и перезапустить Eproxy.
Пакет дошёл до домашнего компьютера в целости и сохранности