Я настроил OpenVPN на моем сервере Linux и клиенте Windows в соответствии с инструкциями здесь . Мой клиент может получить доступ к серверу, но не может пройти дальше по локальной сети.
Мой сервер - 10.23.29.64/24, моя подсеть OpenVPN - 10.23.30.0/24, а мой клиент - 10.0.0.71/24, поэтому перекрытия нет.
Мой файл конфигурации сервера:
port 53
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.23.30.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.23.29.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
Мой клиентский конфиг
client
dev tun
proto udp
remote HOSTNAME_REMOVED 53
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 3
При подключении мой клиент получает 10.23.30.6/30 и добавляет 4 маршрута:
10.23.29.0 255.255.255.0 10.23.30.5 10.23.30.6 1
10.23.30.1 255.255.255.255 10.23.30.5 10.23.30.6 1
10.23.30.4 255.255.255.252 10.23.30.6 10.23.30.6 30
10.23.30.6 255.255.255.255 127.0.0.1 127.0.0.1 30
Мой сервер получает 10.23.30.1/32 (возможно, это проблема ?)
Мой клиент может пропинговать сервер 10.23.30.1 и 10.23.29.64, но дальше этого не может. Что еще мне нужно сделать, чтобы этот клиент получил доступ к остальной части моей локальной сети?
ОБНОВИТЬ:
Я добавил статический маршрут к маршрутизатору, чтобы таблица маршрутизации выглядела следующим образом
{admin}=>ip rtlist
Label Destination Gateway Interface Mtc Admin Oper
10.0.0.138/32 127.0.0.1 loop 0 UP [UP]
10.0.0.255/32 127.0.0.1 loop 0 UP [UP]
10.23.29.254/32 127.0.0.1 loop 0 UP [UP]
10.23.29.255/32 127.0.0.1 loop 0 UP [UP]
87.115.131.206/32 127.0.0.1 loop 0 UP [UP]
127.0.0.1/32 127.0.0.1 loop 0 UP [UP]
255.255.255.255/32 127.0.0.1 loop 0 UP [UP]
195.166.128.189/32 87.115.131.206 Internet 0 UP UP
212.159.6.9/32 Internet 10 UP UP
212.159.6.10/32 Internet 10 UP UP
10.0.0.0/24 10.0.0.138 LocalNetwork 0 UP [UP]
10.23.29.0/24 10.23.29.254 LocalNetwork 0 UP [UP]
10.23.30.0/24 10.23.29.10 LocalNetwork 0 UP [UP]
0.0.0.0/0 Internet 10 UP UP
но когда я сделал трассировку с 10.23.29.10 по 10.23.30.1, я получил:
traceroute to 10.23.30.1 (10.23.30.1), 30 hops max, 60 byte packets
1 dsldevice.lan (10.23.29.254) 2073.983 ms 2073.481 ms 74.545 ms
2 * * *
и все звезды, пока он не сдался. Это заставляет меня поверить, что пакеты traceroute не перенаправляются на 10.23.29.10, как в таблице маршрутизации сказано, что они должны быть.
Ответы:
Я наконец узнал, в чем проблема. Я использую опцию «маршрутизации» OpenVPN, которая создает новую подсеть для всех соединений OpenVPN. Моему клиенту был назначен IP-адрес из этой подсети, как и мой сервер, чтобы они могли общаться друг с другом через эту сеть. С включенной переадресацией IPv4 на моем сервере я также мог отправлять пакеты в свою локальную сеть и, очевидно, мог общаться с сервером через его IP-адрес в локальной сети.
Когда клиент пытался общаться с другими компьютерами в моей локальной сети, пакеты от моего клиента доходили до моих хостов локальной сети (я не проверял это, но я почти уверен, что они были), но адрес источника этих пакетов был адрес из сети OpenVPN. Хосты локальной сети знали, что это не было в их локальной сети, и единственное, что они знали, чтобы сделать в этом случае, было отправить их на шлюз по умолчанию, который был моим маршрутизатором. Я сомневаюсь, что с ними что-то произошло, поскольку отправка пакета на частный IP-диапазон в Интернет бессмысленна.
Решение состоит в том, чтобы добавить статический маршрут ко всем узлам локальной сети или использовать опцию OpenVPN «мост» вместо «маршрутизация». Я еще не сделал этого, но уверен, что это путь.
источник
Я не думаю, что вам нужно добавлять статический маршрут ко всем узлам локальной сети. Вы можете просто добавить статический маршрут в ваш шлюз в этой локальной сети, указав все адреса openvpn-сети на сервере openvpn "адрес lan-ip".
источник
Та же проблема с моим конфигом, но исправлена:
Поскольку вы используете настройки OpenVPN Road warrior, пакеты отмечаются как маршрутизированные, но с NAT. Вам следует настроить параметры исходящего NAT для преобразования любых исходных портов с виртуальных IP-адресов OpenVPN на интерфейсе LAN в любые порты назначения с адресом WAN NAT.
В pfSense вы должны отключить правило «Автоматический исходящий NAT» в правило «Ручной исходящий NAT» и просто добавить новое правило для внутренней сети OpenVPN.
источник
Была такая же проблема здесь (с помощью этого руководства по настройке: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14-04 )
Ответ Анони о статическом маршруте был ключевым. На настройке dd-wrt -> расширенная маршрутизация:
статическая настройка маршрута dd-wrt
где
Это помогло мне!
источник