У меня есть два сайта: MAIN (локальная подсеть 192.168.0.0/24, внешний IP: M.M.M.M) и CLIENT (10.0.0.0/24, внешний IP: C.C.C.C). Я создал туннель IPSec между сайтами, и оба сайта могут пинговать компьютеры в обеих подсетях. Все идет нормально.
# ipsec status
Security Associations (1 up, 0 connecting):
tunnel[1]: ESTABLISHED 7 minutes ago, 10.0.0.15[C.C.C.C]...M.M.M.M[M.M.M.M]
tunnel{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c7e6cd30_i ca170c58_o
tunnel{1}: 10.0.0.0/24 === 192.168.0.0/24
Внешний IP-адрес MAIN внесен в белый список некоторыми ресурсами в Интернете (доступ к ним возможен только с адреса MAIN). Я хотел бы настроить маршрутизацию таким образом, чтобы эти ресурсы были доступны сайту КЛИЕНТА через этот туннель и шлюз MAIN.
Обычно я бы пытался сделать это, настроив статическую маршрутизацию и NAT. Проблема здесь в том, что у меня нет интерфейса, который я мог бы использовать для определения маршрутов. Если бы у меня был VPN-сервер на ГЛАВНОМ сайте, а также VPN-клиент и сайт КЛИЕНТА, тогда у VPN-клиента был бы некоторый интерфейс tun, который я мог бы использовать для настройки того, что мне нужно.
Могу ли я добиться того же, используя туннель IPSec между двумя сайтами?
РЕДАКТИРОВАТЬ
Более подробная информация приводится ниже:
Итак, соединение выглядит так:
192.168.0.0/24 --- 192.168.0.1/M.M.M.M --- C.C.C.C/10.0.0.1 --- 10.0.0.0/24
(Main subnet) (Main router) (Client router) (Client subnet)
192.168.0.1/M.M.M.M
- Вездесущий роутер
C.C.C.C/10.0.0.1
- простой роутер с перенаправлением некоторых портов на 10.0.0.15
10.0.0.15
- Машина Ubuntu в клиентской подсети с туннелем IPSec на 192.168.0.1
Туннель работает. Оба сайта могут пинговать шлюзы друг друга и другие машины в сети.
Теперь я хочу добиться маршрутизации пакетов на определенные внешние IP-адреса из 10.0.0.15
через 192.168.0.1
.
Поэтому, учитывая топологию, я бы выбрал первый вариант, просто добавив статический маршрут на клиентских машинах в 10.0.0.0/24. Если удаленные ресурсы не находятся в одном диапазоне IP-адресов, вам потребуется добавить по одному маршруту для каждого ресурса.
Например, на компьютере с Windows: Ресурс 1 (скажем, 10.11.12.13):
route add 10.11.12.13 mask 255.255.255.255 10.0.0.15 -p
Ресурс 2 (скажем, 24.25.26.27):
route add 24.25.26.27 mask 255.255.255.255 10.0.0.15 -p
Затем повторите то же самое с 10.0.0.15, но на этот раз с таргетингом на 192.168.0.1.
Видеть Вот для добавления постоянных маршрутов в Linux (ubuntu).
Я понимаю, что этот подход является довольно детальным и не подходит для крупномасштабных сетей, но он должен хорошо работать для небольшого дома / офиса.
В качестве альтернативы, рассматривая выделенный Шлюз NAT будет более эффективным, если вы хотите проксировать весь трафик. Не только для внесения ресурсов в белый список.
Последней альтернативой, насколько мне известно, было бы создание сервера OpenVPN (вместо IPSec) в 192.168.0.0/24, который по умолчанию будет проксировать весь трафик. Отличный учебник Вот.
Дайте мне знать, если у вас возникнут вопросы.
Похоже, что осталось выполнить преобразование Source NAT, поскольку вы можете управлять своей стороной сетевого интерфейса по сравнению с их. Но есть новое расширение, о котором я не знал до сих пор, под названием NETMAP, которое, я считаю, лучше подходит для того, что вы хотите:
Для справки: https://netfilter.org/documentation/HOWTO/NAT-HOWTO-6.html#ss6.1 это SNAT https://netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-4.html#ss4.4 - это расширение NETMAP
109569 родственный.
Я ни в коем случае не специалист по сетям, но это звучит как сценарий принудительного туннелирования, относящийся к предприятиям, желающим контролировать трафик пользователей Интернета на управляемых удаленных клиентах через свои прокси. В общем случае вы можете добавить статический маршрут / маршрут по умолчанию для всего интернет-трафика на клиентском маршрутизаторе, который будет перенаправляться через туннель на ваш основной маршрутизатор, что подразумевает туннель Site-to-Site VPN. В вашем случае VPN типа «точка-сеть» я не вижу другого способа, кроме добавления определенного маршрута в локальную таблицу маршрутизации клиента с общедоступным IP-адресом в качестве пункта назначения, а следующим переходом является внутренний IP-адрес основного маршрутизатора.