
Я использую сервер с демонами openvpn и pptp.
В iptables у меня есть правила, позволяющие некоторым клиентам pptp разрешать взаимодействовать с другими клиентами через туннели pptp или openvpn, доступные на сервере.
Elevated pptp client --> pptp server forward to --> pptp client
Elevated pptp client --> pptp server forward to --> openvpn client
Это работает довольно хорошо, но:
Время от времени я не могу связаться с клиентом openvpn. Когда я пингую ip клиента openvpn, я получаю тайм-аут, хотя я могу пинговать этот ip напрямую с сервера!
server --> openvpn client == 64 bytes from *** time *ms
Elevated pptp client --> server == 64 bytes from *** time *ms
Elevated pptp client --> pptp server forward to --> openvpn client == time-out
На сервере установлена ОС Ubuntu 14.04, но на моем последнем сервере с Ubuntu 10.10 была та же проблема.
Я думаю, проблема в следующем: сообщение ping выглядит так:
elevated client --> server routing --> openvpn daemon routing --> client
openvpn daemon routing <-- client
Демон OpenVPN не может найти IP-адрес для ответа в своем собственном пуле и сбрасывает сообщение.
Есть ли способ это подтвердить и, если это проблема, почему это происходит только с некоторыми клиентами и как мне найти решение?
решение1
Нашел ответ на этот вопрос.
Я отправляю маршруты клиенту. Клиент иногда раньше выполняет добавление маршрута, чем включается интерфейс TAP/TUN. Маршрут игнорируется.
Нет, я добавил для клиентов вторичный скрипт, который запускается при включении интерфейса, и в котором я могу размещать свои маршруты.
Теперь будем надеяться, что нам никогда не придется их менять, потому что для этого нам придется редактировать каждого клиента...