Я настроил сеть:
Соответствующие порты компьютеров в 192.168.87.0/24
пересылаются на TP-LINK router
быть увиденным «во всем мире».
Переадресация IP включена OpenVPN server
.
Я могу подключиться из OfficeB из client1
к OpenVPN server
в OfficeA. client1
и server
видят друг друга - отвечают на пинги (оба в 192.168.87.0/24
и 10.8.0.0/24
сеть), отправлять данные, создавать соединения (например, ssh).
Таблица маршрутизации на TP-LINK router
(a.b.c.d
это WAN IP):
DST MASK GATEWAY IFACE
a.b.c.d 255.255.255.255 0.0.0.0 WAN
192.168.87.0 255.255.255.0 0.0.0.0 LAN & WLAN
10.8.0.0 255.255.255.0 192.168.87.2 LAN & WLAN (route added by hand)
239.0.0.0 255.0.0.0 0.0.0.0 LAN & WLAN
0.0.0.0 0.0.0.0 a.b.c.d WAN
А теперь ... С ЛЮБОГО компьютера в 192.168.87.0/24
, Я могу пинговать 10.8.0.6
. К сожалению 10.8.0.6
может ТОЛЬКО пинговать 87.1
, 87.2
.
Но... 10.8.0.6
начнет пинговать компьютер в 87.0/24
(например 87.104
) только в том случае, если я сначала пингую с этого компьютера на 10.8.0.6
:
10.8.0.6
: ping 192.168.87.104
- не удалось, время истекло.192.168.87.104
: ping 10.8.0.6
-- хорошо.10.8.0.6
: ping 192.168.87.104
-- хорошо.Я проверил с tcpdump
, который 192.168.87.104
Всегда получает запросы на отправку ответов на пинги от 10.8.0.6
. Но ответы, кажется, не проходят через шлюз TP-LINK router
вернуться к 10.8.0.6
- Я не могу их видеть с tcpdump
на OpenVPN server
на обоих интерфейсах.
Я также проверил, что если я добавлю маршрут на 192.168.87.104
:
(1) route add 10.8.0.0 netmask 255.255.255.0 gw 192.168.87.2
затем 10.8.0.6
всегда будет получать ответ на пинг, даже если я не отправил его с 192.168.87.104
перед.
Еще кое-что, что я выяснил: пинг от 192.168.87.104
к 10.8.0.6
добавляет в кеш маршрутизации (route -C
) Вход (1)
. И в «первом пинге» (перед добавлением записи) я получаю:
PING 10.8.0.6 (10.8.0.6) 56(84) bytes of data.
64 bytes from 10.8.0.6: icmp_req=1 ttl=127 time=37.0 ms
From 192.168.87.1: icmp_seq=2 Redirect Host(New nexthop: 192.168.87.2)
64 bytes from 10.8.0.6: icmp_req=2 ttl=127 time=93.0 ms
Я читал, что это нормальное поведение, потому что шлюз к 10.8.0.0
находился в том же сегменте сети. И после icmp redirect host
в кэше маршрутизации была создана новая запись.
В TP-LINK router
в веб-панели настройки есть флажок SPI Firewall - Stateful Packet Inspection
. Отключение не решает проблему.
Я не могу понять, почему ответ на пинг 192.168.87.104 > 10.8.0.6
не проходит TP-LINK router
несмотря TP-LINK router
знает путь к 10.8.0.0
и запрос ping от 192.168.87.104
к 10.8.0.6
действительно проходит.
Итак, мой вопрос: в чем причина? Могу ли я что-нибудь сделать, чтобы разрешить ситуацию (кроме добавления маршрута (1)
на каждом компьютере в OfficeA ...)? Лично я считаю, что проблема в TP-LINK router
.
OpenVPN server
Файл конфигурации:
port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push "route 192.168.87.0 255.255.255.0"
client-to-client
keepalive 10 120
comp-lzo
persist-key
persist-tun
Я предполагаю, что TP-LINK изначально сбрасывает ответы ping от .87.104
к .0.6
из-за правила брандмауэра с отслеживанием состояния. Обратите внимание, когда .0.6
пинги .87.104
, маршрутизатор TP-LINK никогда не видит пакеты ping-запроса. С точки зрения брандмауэра с отслеживанием состояния вполне разумно отбрасывать ответы ping, если он никогда не видел, чтобы исходные запросы ping шли в противоположном направлении. Позже после .87.104
отправил несколько запросов ping на .0.6
, брандмауэр может разрешить пинг-ответы от .84.104
к .0.6
, так как он видел .87.104
начать общение с .0.6
в последнее время.
Возможно, можно будет изменить правила брандмауэра TP-LINK. Но поскольку это маршрутизатор «бюджетного» бренда, я подозреваю, что ваши возможности будут ограничены чем-то вроде флажка «Stateful Firewall on / off». Или вы можете даже этого не понять.
Одно из возможных решений - добавить вторую сетевую карту к серверу Debian OpenVPN и сделать ее маршрутизатором интернет-шлюза Office A. Таким образом, маршрут шлюза по умолчанию на клиентах Office A также будет работать для 10.8
трафик, и вам не придется добавлять дополнительную запись во все таблицы маршрутизации клиентов. И в качестве дополнительного бонуса у вас будет возможность использовать iptables
адаптировать правила брандмауэра к вашему желанию.