Назад | Перейти на главную страницу

Обмен данными между частными IP-адресами в двух отдельных сетях через OpenVPN

Я соединяю две сети (клиенты A и B) вместе с помощью OpenVPN. Допустим, клиент A находится за NAT с IP-адресами 192.168.20.x, а клиент B находится за NAT с IP-адресами 172.16.1.x. Есть ли способ настроить мою настройку так, чтобы клиенты могли общаться с машинами внутри подсетей друг друга через сервер OpenVPN (10.8.0.1, 255.255.255.0)?

Например, если внутренний IP-адрес клиента A - 192.168.20.50, а клиента B - 172.16.1.50, существует ли способ, которым клиент A может выполнить эхо-запрос или трассировку для клиента B, успешно используя его частный IP-адрес?

Да, это возможно.

Каждый конец туннеля должен иметь интерфейсы в частных сетях соответствующего конца. То есть например 10.8.0.1 должен иметь адрес в 192.168.20.0/24 сеть и 10.8.0.2 должен иметь адрес в 172.16.1.0/24 сеть (я предположил, что сетевые маски для сетей, например, ваша настройка может быть другой).

Затем вам нужно включить правильную маршрутизацию на устройствах.

Для клиентов в 192.168.20.0/24 сети, они должны иметь маршрут в своей таблице маршрутизации, который говорит им направлять пакеты в 172.16.1.0/24 через 192.168.20.x, где x октет, соответствующий другому интерфейсу 10.8.0.1 сервер.

Затем сервер в 10.8.0.1 должна иметь запись в таблице маршрутизации, которая сообщает, что пакеты 172.16.1.0/24 сеть должны быть отправлены через 10.8.0.2, то есть другой конец туннеля.

Затем вам нужно иметь соответствующие правила для другого конца туннеля, меняя местами сетевые адреса.

Самый простой способ реализовать это - запустить сервер / клиент OpenVPN на маршрутизаторе этой сети. Тогда нет необходимости добавлять правила маршрутизации для каждого клиента, поскольку маршрутизация обрабатывается шлюзом по умолчанию. В этом случае нужно только правило маршрутизации на сервере / клиенте OpenVPN.

Если сервер / клиент OpenVPN - это другой компьютер, чем маршрутизатор по умолчанию, то необходимо распределить сетевые маршруты клиентам. Один из способов сделать это - через DHCP. Один метод описан в Как я могу настроить свой DHCP-сервер для распределения IP-маршрутов?.