DAurum писал(а):
Не вдаваясь в глубокий анализ, считаю, что после смены IP у клиента (с 93.74.111.111 на 93.74.222.222) сервер продолжает высылать UDP на старый адрес 93.74.111.111 (подозреваю, что никаких подтверждений от клиента он при этом не ожидает). И продолжаться это будет до тех пор, пока сам клиент не заявит о себе с нового адреса. При этом возможно 2 исхода: 1й - сервер принимает клиента с его нового IP (93.74.222.222); 2й - сервер отвергает клиента, аргументируя тем, что "ты у меня уже залогинился с IP 93.74.111.111".
Алгоритм обмена нашего устройства с сервером построен так, что динамическое изменение IP адреса на стороне устройства не препятствует дальнейшей работе. То есть, как только приходит пакет от устройства с новым адресом источника, дальнейший обмен происходит уже с учетом этого нового адреса. Алгоритм обкатан, поэтому проблема не в этом.
Проблема в том, что после переустановки соединения с провайдером,
модем больше не пропускает через сербя UDP пакеты от устройства, а просто их отбрасывает. Следовательно сервер уже ничего не получает от устройства и не может сам начать обмен, так как не знает нового адреса за которым теперь находится устройство.
DAurum писал(а):
Далее, строка
Код:
udp 17 587 src=192.168.1.5 dst=82.207.130.120 ... src=82.207.130.120 dst=93.74.111.111 ... [ASSURED] use=1
говорит о том, что в обратную сторону (от сервера к клиенту) ожидаются пакеты "src=82.207.130.120 dst=93.74.111.111", но приходить будут после смены внешнего IP "src=82.207.130.120 dst=93.74.222.222", так что срабатывать правило не будет. И удалено оно будет из таблицы NAT по причине отсутствия активности через 587 секунд.
Все так, но с одним "но". Активность присутствует, так как устройство продолжает попытки отправки данных. Но пакеты через модем не проходят, вероятно как раз по причине того, что в этом правиле dst=93.74.111.111 (старый адрес модема). А так как присутствует активность, то и запись не будет удалена до перезагрузки модема. Даже если бы она была удалена через 587 секунд, это долго с точки зрения охраны.
DAurum писал(а):
Кстати, если инициатором соединения является хост внутри сети (192.168.1.5), то могу предложить в настройках WAN установить птицу в "Dial on demand (with idle timeout timer)" (если у вас PPPoE или PPPoA). Что ожидается? После принудительного разрыва PPP-сессии, например, со стороны провайдера, маршрутизатор сам не пытается восстановить PPP-соединение, а ждёт инициативы изнутри сети (хост 192.168.1.5 хочет связаться с хостом 82.207.130.120). Вполне возможно, что за время, пока PPP-соединение будет неактивно, произойдёт очистка таблицы NAT. В этом случае может понадобиться увеличение таймаута в настройках клиента (192.168.1.5) на установку связи с сервером. Это больше похоже на пляску с бубном, но тем не менее, попробуйте.
Увы, скорее всего не применимо. Даже если увеличить таймаут на устройстве, через тот же самый модем может осуществлятся другая сетевая активность (серфинг, и т.п.), следовательно получим такой же результат.
DAurum писал(а):
Как вариант 2 - попробуйте более ранние версии прошивок.
Изначально пробовали с заводской прошивкой 1.00, сейчас 1.24. Почему-то сомневаютсь, что в какой нибудь промежуточной версии это исправлено
