Назад | Перейти на главную страницу

Некоторые клиенты в сети VPN недоступны

Проблема этой модели в том, что некоторые (только некоторые) клиенты недоступны. См. Ссылку ниже для получения дополнительной информации о модели, которая описывается в следующем разделе.

Описание проблемы

Оба клиента (1.1 и 1.2.3) могут подключаться к серверу VPN (1). Сервер (1) не использует объявление клиент-клиент в файле conf OpenVPN.

Сервер (1) может пинговать обоих клиентов (1.1 и 1.2.3), оба клиента (1.1 и 1.2.3) могут пинговать друг друга и могут пинговать сервер (1). Локальные клиенты (1.1.1 и 1.1.2) за маршрутизатором (1.1) за NAT могут пинговать друг друга и могут пинговать маршрутизатор (1.1). То же самое касается другого netowrk (за 1.2), где все клиенты (1.2.1, 1.2.2 и 1.2.3) могут пинговать друг друга, а также могут пинговать маршрутизатор (1.2). Пока проблем нет.

Оба маршрутизатора (1.1 и 1.2) правильно настроили свои статические маршруты. Маршрутизатор в первой сети (1.1) не имеет установленных статических маршрутов, они отправляются с сервера VPN. Маршрутизатор во второй сети (1.2) не является шлюзом VPN, поэтому его маршруты следующие:

сеть 192.168.1.0/24 шлюз 192.168.2.103

сеть 192.168.10.0/24 шлюз 192.168.2.103

Затем VPN-клиент во второй сети (1.2.3) снова получает маршруты от сервера.

Вернемся к достижению клиентских станций - теперь эти клиенты за NAT не могут быть доступны из одной сети в другую; некоторые могут, другие нет. Приведу несколько примеров:

Временное исправление

Для некоторых клиентов я могу увидеть временное исправление при добавлении их маршрутов статистики, что можно сделать с машинами Linux. Их таблица маршрутизации (например, машина 1.1.2) может содержать информацию только для сети 1.1. Добавление статического маршрута для другой сети (1.2) заставляет его работать, но это не может быть сделано со всеми клиентами.

Еще одно очень временное исправление - это попытка выполнить команду traceroute с 1.2.2 по 1.1.2, которая может нормально добраться до машины, а затем я могу пропинговать ее в течение нескольких минут. Однако через короткое время маршрут исчез.

Однако ни одно из этих решений не является постоянным.

Некоторые вопросы, которые возникают

Я должен отметить, что недавно заменил маршрутизатор 1.2, но все маршруты возвращены, как и на предыдущей машине.

Возникает еще несколько вопросов:

Цель

Цель состоит в том, чтобы исправить это, чтобы все клиенты во всех сетях были доступны без статических маршрутов, размещаемых где-либо, кроме маршрутизатора.

Я сам нашел решение, это вызвано правилами iptables, установленными в роутере. Мой новый маршрутизатор - это ASUS RT-N12, и он содержит правило FORWARD, которое отбрасывает недопустимые пакеты. Это правило проблематично для статической маршрутизации.

Решение состоит в том, чтобы создать сценарий, который автоматически удалял бы правило FORWARD при запуске:

iptables -D FORWARD -m state --state INVALID -j DROP

Чтобы узнать больше об этой проблеме, прочтите ветка форума.