Это канонический вопрос о разрешении конфликтов подсети IPv4 между локальной сетью VPN-клиента и одной через VPN-канал от него.
После подключения к удаленному местоположению через OpenVPN клиенты пытаются получить доступ к серверу в сети, которая существует в такой подсети, как 192.0.2.0/24. Однако иногда сеть в локальной сети клиента имеет один и тот же адрес подсети: 192.0.2.0/24. Клиенты не могут подключиться к удаленному серверу, введя его IP-адрес из-за этого конфликта. Они не могут даже получить доступ к общедоступному Интернету при подключении к VPN.
Проблема в том, что эта подсеть 192.0.2.0/24 должна быть маршрутизирована с помощью VPN, но она также должна быть маршрутизирована как клиентская LAN.
Кто-нибудь знает, как решить эту проблему? У меня есть доступ к серверу OpenVPN.
У меня есть простое решение, которое я использую в коворкинге с конфликтующим диапазоном IP-адресов (10.x)
Я подключился к сети с помощью своего мобильного телефона, затем я поделился сетевым подключением через Bluetooth со своим ноутбуком. Теперь я могу использовать VPN для своего удаленного работодателя.
Я уверен, что это будет работать точно так же через USB, если вам потребуется более быстрое соединение.
Если вам нужен временный грязный обходной путь для одного или нескольких известных IP-адресов серверов, самым простым решением должна быть опция статической маршрутизации на стороне клиента.
В моем случае я добавил желаемое место назначения с сервера (192.168.1.100) в мою таблицу маршрутизации на моем Linux-клиенте через:
route add 192.168.1.100 dev tun0
После этого удалите этот статический маршрут с помощью команды удаления маршрута.
Я использую Mac под управлением El Capitan. Хотя приведенные выше предложения не сработали для меня, они привели меня к рабочему решению:
ifconfig
, запустите VPN, выполните ifconfig
и обратите внимание на то, что является новый интерфейс. В моем случае это был ppp0 с IP-адресом 192.168.42.74
ppp0: flags = 8051 mtu 1280
inet 192.168.42.74 -> 192.0.2.1 маска сети 0xffffff00
введите:
sudo route add 192.168.1.79 192.168.42.74
Сначала я протестировал ping
, а затем доказал, что он работает, обратившись к серверу git.
Когда я попытался использовать dev ppp0 в конце команды маршрута как упомянутое выше, оно жаловалось.
Если вам просто нужно выбрать несколько одного или двух IP-адресов, добавьте инструкцию маршрута в файл конфигурации ovpn следующим образом:
route 192.168.1.10 255.255.255.255
route 192.168 .1.11 255.255.255.255
Он добавит маршрут только для этих IP-адресов при подключении vpn и удалит его, когда vpn отключился.
В любом случае работал у меня в Windows.
Напоминаем, что вся эта проблема связана с многолетней нехваткой IPv4-адресов. , и широкое использование диапазона частных IP-адресов за NAT для обхода этой нехватки!
Идеальное и окончательное решение этой проблемы довольно простое (хотя это может и займет некоторое время, чтобы быть глобально развернутым) -out): IPv6 ...
В мире IPv6 нет дефицита общедоступных IP (и не будет, событие через несколько десятилетий). Таким образом, нет причин не иметь общедоступный IP-адрес на каждом устройстве в каждой сети. А если вам нужна изоляция сети, продолжайте фильтровать с помощью брандмауэра, но без уродливого NAT ...