Я следил за этим руководством http://wiki.debian.org/OpenVPN#TLS-enabled_VPN и этот http://users.telenet.be/mydotcom/howto/linux/openvpn.htm чтобы создать подключение openvpn к моей удаленной локальной сети.
Но оба примера предполагали, что обе локальные сети имеют разные адреса (например, 192.168.10.0/24 и 192.168.20.0/24, посмотрите это изображение i.stack.imgur.com/2eUSm.png).
К сожалению, в моем случае и локальный, и удаленный LAN имеют адреса 192.168.1.0/24. Я могу подключиться напрямую к серверу openvpn (я могу пинговать его и входить в систему с помощью ssh), но я не вижу другие устройства в удаленной локальной сети (не говоря уже о доступе к ним через браузер, что изначально было целью) . И не знаете, может ли быть причиной этого проблема адресации? Если нет - как определить маршруты, чтобы я мог пинговать другие устройства в удаленной локальной сети?
Даже если на этот вопрос уже дан ответ, есть еще один вариант:
NETMAP
цель в iptables, чтобы все перевестиЕсли вы выберете 192.168.2.0/24 в качестве альтернативной подсети с одной стороны, вы можете использовать это правило для преобразования сети:
iptables -t nat -A POSTROUTING -o tap0 -j NETMAP --to 192.168.2.0/24
Вы потоплены. Все машины используют одну подсеть. Как вы предполагаете, что они смогут отличать локальные хосты от удаленных? Единственным вариантом здесь, возможно, была бы какая-то форма или перенаправление портов с хостов VPN на каждом сайте. Это сработает для некоторых сервисов, но будет кошмаром для поддержки в долгосрочной перспективе.
Вам действительно просто нужно стиснуть зубы и изменить номер один из сайтов.
Я предполагаю, что вы плохо разбираетесь в некоторых основных сетевых принципах. Я очень рекомендую вам прочитать этот Serverfault Вопросы и ответы по подсетям IPv4. Это поможет вам лучше понять Зачем позади ваших нынешних трудностей.
На мой взгляд, NETMAP - действительно хороший способ убедиться, что сети не будут конфликтовать. Многие маршрутизаторы используют одно и то же частное адресное пространство, и иногда просто невозможно изменить настройку сети, которой вы не владеете (например, в интернет-кафе, общедоступной WLAN). Да, вы можете изменить свою собственную сеть, чтобы использовать довольно необычное адресное пространство, но некоторые провайдеры распространяют заблокированное оборудование без возможности его изменения, что потребует от вас добавления дополнительного сетевого оборудования. О, и иногда очень удобно вводить 10.0.0.x вместо, например, 192.168.214.x.
TL; DR: NETMAP не рекомендуется в профессиональных настройках, но может пригодиться.
Вот пример, который позволяет мне использовать 10.0.0.x с обеих сторон и при этом подключаться через OpenVPN. Вместо того, чтобы проталкивать реальный маршрут клиентам, вы используете необычную подсеть:
OpenVPN
push "route 10.11.12.0 255.255.255.0"
NETMAP
iptables -t nat -A PREROUTING -d 10.11.12.0/24 -j NETMAP --to 10.0.0.0/24
Источник NAT (при условии, что вы используете подсеть OpenVPN по умолчанию 10.8.0.0/24)
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j SNAT --to-source PUBLICIP
Это работает очень хорошо, даже при замене шлюза по умолчанию. Если вы используете собственный DNS, это может вызвать затруднения:
push "dhcp-option DNS 10.11.12.1"
Это потому, что, хотя вы сможете связаться с DNS-сервером (который находится на 10.0.0.1), он возвращает адреса на основе своей подсети, а не на основе NETMAPed. Есть способы обойти это. Я думаю о взглядах BIND, например, не знаю, способна ли Samba на что-то подобное.