Интернет-протокол смотрит только на IP-адрес назначения при маршрутизации пакетов. Им все равно, откуда пришел пакет. Им все равно, что пакет может быть частью более крупного сеанса, соединения или приложения. Единственное, что имеет значение, это IP-адрес назначения. Затем IP просматривает таблицу маршрутизации, чтобы определить, что делать с каждым пакетом, основываясь исключительно на адресе назначения. (Технически, такие вещи, как брандмауэры с отслеживанием состояния и контроль маршрутизации, могут сделать это ложью, но для текущих целей это подойдет.)
Как указывает @Nikita, и вывод маршрут(8)
шоу, ведущие лайкают 192.168.0.3
(и, предположительно, другие хосты в вашей сети) могут отправлять пакеты только на ваш маршрутизатор 192.168.0.1
. Им нечего сказать им, чтобы отправлять пакеты в вашу систему OpenVPN по адресу 192.168.0.2.
. Так .3
и друзья будут отправлять весь свой трафик на ваш роутер. Ваш маршрутизатор не знает о вашем VPN. Ваш маршрутизатор либо отбрасывает пакеты, либо отправляет их в общедоступный Интернет (где маршрутизатор следующего перехода, скорее всего, отбросит их).
Есть несколько возможных решений.
Решение №1 — простое, но неэффективное
Скажите своему маршрутизатору, что 10.8.0.0/24
доступен через шлюз в 192.168.0.2
. Это приведет к шпилечному маршруту — пакеты будут отправляться с таких хостов, как .3
, к интерфейсу LAN вашего маршрутизатора по адресу .1
, а затем вернитесь к тому же интерфейсу маршрутизатора и к шлюзу OpenVPN по адресу .2
. Это неэффективно, но должно работать.
Вы не говорите, какой у вас роутер, но если бы это был Linux, команда была бы примерно такой:
ip маршрут добавить 10.8.0.0/24 через 192.168.0.2
Решение № 2 — Ненавязчиво, но утомительно
Вы можете настроить статический маршрут на каждом хосте локальной сети, сообщая им тот же самый лакомый кусочек маршрутизации, что и № 1, но везде. Это было бы незначительной проблемой для настройки и обслуживания, но это было бы наиболее эффективным решением, сохраняющим существующую топологию сети. Та же команда, что и выше (для Linux), но вы должны запустить ее на каждом хосте локальной сети. Вам также необходимо сделать это на всех других устройствах, которые должны работать через VPN, включая коробки Windows, принтеры, планшеты, телефоны, лампочки Wi-Fi и т. д. В конце концов вы забудете одно и удивитесь, почему оно не работает, потратив время на волосы, а потом чувствуешь себя наркоманом, когда вспоминаешь, почему.
Решение № 3 — сложное, но разрушительное
Вы можете поместить свой VPN-шлюз на путь маршрутизации в Интернет. Здесь есть две подальтернативы.
Решение № 3A — VPN на маршрутизаторе
В наши дни даже потребительские маршрутизаторы иногда могут запускать реализацию OpenVPN, особенно если вы используете стороннюю прошивку (OpenWRT, DD-WRT и т. д.). Однако им часто не хватает мощности процессора для адекватной производительности. Вы также можете заменить потребителя чем-то лучшим — коммерческим маршрутизатором или другим Linux. Возможно, вы даже сможете переназначить свой VPN-шлюз как VPN+маршрутизатор+брандмауэр.
В этом сценарии VPN и маршрутизатор — это одно и то же, поэтому вам не нужно беспокоиться о том, что маршрутизатор взаимодействует с VPN-шлюзом. Это, вероятно, наиболее эффективный с точки зрения дизайна сети.
Решение № 3B — шлюз стека и маршрутизатор
Вы можете разместить VPN-шлюз между маршрутизатором и остальной частью локальной сети с разными IP-подсетями по обе стороны от VPN-шлюза. Все остальные узлы локальной сети отправляют данные на шлюз VPN, чтобы получить доступ в Интернет. Шлюз VPN отправляет и перенаправляет на маршрутизатор, чтобы получить доступ к Интернету.
Это потребует размещения двух сетевых интерфейсов в VPN-шлюзе — один для локальной сети и один для передачи обслуживания маршрутизатору. (Или сделать шпильку на VPN-шлюзе, что хуже, чем № 1, потому что теперь все Интернет-трафик зашкаливает).
Основные преимущества такого подхода: Вы можете оставить свой существующий маршрутизатор (возможно, ваш интернет-провайдер заставляет вас использовать свое оборудование, может быть, у него есть какие-то другие полезные для вас свойства). Если блок VPN сломается, вы можете вытащить его из картины и (возможно) быстро перенастроить маршрутизатор, чтобы он занял его место.