2

У меня есть homenetwork 192.168.1.0/24 со шлюзом 192.168.1.1 и удаленная сеть с теми же параметрами. Теперь я хочу создать туннель OpenVPN между этими сетями.

У меня нет проблем с Windows, потому что Windows маршрутизирует все в 192.168.1.0/24, кроме 192.168.1.1 через туннель.

В Mac OS X, однако, я вижу следующую строку в окне Details:

2010-05-10 09:13:01 ВНИМАНИЕ: потенциальный конфликт подсети маршрута между локальной сетью [192.168.1.0/255.255.255.0] и удаленным VPN [192.168.1.0/255.255.255.0]

Когда я перечисляю маршруты, я получаю следующее:

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.1        UGSc       13        3    en1
127                localhost          UCS         0        0    lo0
localhost          localhost          UH         12     3589    lo0
169.254            link#5             UCS         0        0    en1
192.168.1          link#5             UCS         1        0    en1
192.168.1.1        0:1e:e5:f4:ec:7f   UHLW       13       17    en1   1103
192.168.1.101      localhost          UHS         0        0    lo0
192.168.6          192.168.6.5        UGSc        0        0   tun0
192.168.6.5        192.168.6.6        UH          1        0   tun0

Мои интерфейсы

en1 - My local Wifi network
tun0 - The tunnel interface

Как видно из приведенных выше маршрутов, отсутствует запись для 192.168.1.0/24, которая маршрутизирует трафик через туннельный интерфейс.

Когда я вручную маршрутизирую один IP-адрес, например 192.168.1.16, через туннельный шлюз 192.168.6.6, это работает.

В: Как мне настроить мои маршруты в MacOS X для того же поведения, что и в Windows, чтобы маршрутизировать все, кроме 192.168.1.1 через туннель, но оставить шлюз по умолчанию моим локальным 192.168.1.1?

РЕДАКТИРОВАТЬ: я вновь открыл вопрос, потому что он не мог быть полностью отвечен в первый раз.

Машина VPN-клиента не нуждается в доступе к своей собственной подсети, за исключением маршрутизатора, а пакеты TCP должны проходить через туннель, за исключением самих туннелированных пакетов.

2 ответа2

2

У меня была какая-то проблема. Добавление следующего вызова сценария в моем файле настройки подключения ovpn решило эту проблему:

route-delay 2
route-up /Users/user/.local/bin/vpn-routes

Где сценарий переназначает маршрут по умолчанию вручную, как показано ниже:

#!/bin/bash

/sbin/route delete default
/sbin/route delete 0/1
/sbin/route add default $route_net_gateway

Это работало просто отлично, пока я не перешел на Mountain Lion. Я обновился до последней бета-версии Tunnelblick, но приведенный выше скрипт, похоже, не работает (думаю, из-за проблем с разрешениями, все еще изучаю это)

1

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

Я никогда не делал этого, но я думаю, что у вас есть несколько вариантов.

  • Настройте шлюзы OpenVPN в мостовом режиме. Пока нет конфликтов IP (один компьютер в каждой сети с одинаковым IP, например, 192.168.1.100), это должно работать. Если вы используете DHCP, вам придется иметь дело с потенциальным перекрытием; вам не нужны два DHCP-сервера в одной сети.

    По ссылке у вас есть два варианта распределения IP:

    • Позвольте OpenVPN управлять своим собственным пулом IP-адресов клиента с помощью директивы server-bridge, или
    • настройте DHCP-сервер в локальной сети, чтобы также предоставлять IP-адреса в аренду VPN-клиентам.


  • Настройте одну сеть на другой сетевой адрес. Просто измените 192.168.1/24 в одной сети на 192.168.7/24 (или какой-либо другой адрес). Это определенно будет работать, и вам нужно будет только перенастроить одну сеть.

  • Подсеть 192.168.1/24 в две /25 сетей (например, 192.168.1.0/25 и 192.168.1.128/25). Это также определенно будет работать, но вам придется перенастроить обе сети. (Для справки, маска сети в /25 равна 255.255.255.128).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .