У меня проблема со следующей настройкой: у дружественного местного предприятия есть часы с отметкой времени на сайте A. Эти часы предоставляют данные через встроенный ftp-сервер. Также на сайте A: Raspberry Pi 3 под управлением Debian Wheezy, выступающего в качестве сервера OpenVPN. Переадресация портов на маршрутизаторе была настроена для включения соединений VPN и SSH из Интернета через динамический DNS-адрес. Это позволило пользователям с сайта B, где происходит магия расчета заработной платы, сначала установить туннель к сети сайта A, а затем получить данные часов с отметкой времени с помощью проприетарного программного обеспечения Windows с использованием (активного) протокола FTP.
Все работало нормально, пока они не сменили интернет-провайдера. Новый маршрутизатор (к которому у меня нет доступа) был настроен так же, как и старый, со всеми клиентами в сети, имеющими одинаковые IP-адреса, а также такие же настройки переадресации портов. После переключения я все еще могу подключиться к Raspberry по SSH, открыть туннель к сети сайта A и пропинговать часы с отметкой времени. Но всякий раз, когда я пытаюсь получить данные через FTP (независимо от того, пытаюсь ли я это сделать с проприетарным программным обеспечением от производителя или со стандартным FTP-клиентом), я выхожу с ошибками типа «LIST запрошенное действие не выполнено» или что-то подобное.
Я предполагаю, что это каким-то образом проблема активного протокола FTP, когда ответы часов с отметкой времени не маршрутизируются обратно через туннель должным образом. Но это всего лишь предположение - и я понятия не имею, как это отладить и исправить. Может кто здесь делает? Все, что подсказывает мне правильное направление, приветствуется!
Спасибо и привет из Германии!
Иногда случается следующая проблема: скажите, что:
Локальная сеть сайта A - 192.168.1.x, а адрес локальной сети RaspberryPi - 192.168.1.10. Локальный адрес часов времени - 192.168.1.11.
Теперь RaspberryPi раздает адреса OpenVPN своим клиентам (сайт B, скажем, с использованием 10.1.2.0), поэтому: клиент SiteB имеет 10.1.2.5, а сам RaspberryPi установлен как сервер как 10.1.2.1.
Теперь происходит то, что RaspberryPi направляет трафик 10.1.2.0 в сеть 192.168.1.0, что позволяет вам получить доступ к часам. Пока все хорошо (я полагаю, этого никогда не трогали). Затем этот трафик 192.168 обрабатывается маршрутизатором локальной сети для достижения таймера.
Проблема возникает, когда маршрутизатор LAN иногда видит пакеты как приходящие с адреса RaspberryPi 10.1.2.0 вместо адреса 192.168.1.10. Таким образом, он отправляет пакет на часы, но вместо этого ответы направляются на обычный интернет-шлюз.
Решением для этого является наличие статического маршрута на маршрутизаторе локальной сети, который устанавливает RaspberryPi 192.168.1.10. в качестве шлюза для всего трафика 10.1.2.0.
Другое решение, которое я ненавижу предлагать, - это настроить открытый VPN-клиент на часах времени, который подключается к RaspberryPi, полностью обходя проблемы с маршрутизатором LAN.