1

У меня есть выделенный сервер, который я арендую в OVH, и у меня назначено /27 IP-адресов. На всех моих серверах установлен Debian 8, и я хотел бы использовать VPN (OpenVPN) для маршрутизации некоторых общедоступных IP-адресов в другое удаленное местоположение через VPN. Я знаю, что могу просто пересылать пакеты с использованием iptables на IP-адрес VPN-клиента, но я не об этом. Я хотел бы использовать свои IP-адреса OVH на своем удаленном сервере, в настройках, использующих контейнеры, чтобы каждый контейнер мог иметь свой собственный (защищенный от DDoS) IP-адрес OVH, и в контейнере было бы показано, что у него есть IP-адрес OVH, а не частный IP-адрес. Возможно ли это, и если да, то как?

2 ответа2

0

Это возможно с использованием интерфейса tap0 в openvpn.

Мне удалось выполнить то, что я попросил, поэтому я опубликую ответ для других.

Моя машина OVH имеет один назначенный IP-адрес в другой подсети, чем мои дополнительные распределения IP-адресов.

OVH: основной ip (158.69.1.18) OVH: дополнительная подсеть: 192.99.1.208-223

Сервер2: 72.34.43.34

Начните с выполнения инструкций по адресу: https://openvpn.net/index.php/open-source/documentation/howto.html#install.

Установите openvpn и создайте ваши ключи. Создайте ключи для клиента сервера 2/vpn и скопируйте их на сервер 2 в папке /etc /openvpn (или там, где вы хотите)

Найдите файл конфигурации сервера, упомянутый в приведенном выше URL-адресе, и скопируйте его из исходного расположения в /etc/openvpn/server.conf на своем сервере vpn.

Убедитесь, что он имеет следующие настройки:

dev tap0
server-bridge 10.8.0.0 255.255.255.0 10.8.0.5 10.8.0.5
push "redirect-gateway def1 bypass-dhcp"
client-to-client

Оставьте все остальное по умолчанию. 10.8.0.5 10.8.0.5 сделайте так, чтобы в его пуле было только 1 локальный ip. Это для VPN с 1 клиентом, соединенным мостом. Возможно, вам придется изменить это, но, вероятно, не будет

Настройте конфигурацию на вашем клиентском сервере

client
dev tap0
proto udp
remote 158.69.1.18 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
comp-lzo
verb 3
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client1.crt
key /etc/openvpn/client1.key  # This file should be kept

Запустите сервер и клиент.

Создайте мост на вашем ovh сервере

brctl addbr br0
brctl addif br0 tap0
brctl addif br0 eth0 (main ethernet interface)

Добавьте ip к вашему устройству крана и мосту

ip addr add 18.8.0.1 dev tap0
ip addr add 10.8.0.2 dev br0
route add -net 10.8.0.0/24 dev br0

Если ваш основной ip не находится в подсети распределения ip, добавьте ip из этой подсети в ваш мост. Если это так, пропустите это.

ip addr add 192.99.1.208 dev br0

Добавьте ip к вашему интерфейсу tap0 на клиенте vpn

ip addr add 10.8.0.6 dev tap0

Добавьте ваш OVH IP в интерфейс крана на клиенте vpn

ip addr add 192.99.1.210 dev tap0

Добавить шлюз по умолчанию к tap0

route add default gw 192.99.1.208 dev tap0

Войдите в OVH или SYS и перейдите туда, где вы управляете своими ip-адресами, выберите ip и создайте для него виртуальный mac, затем дождитесь появления mac и установите этот mac-адрес в качестве mac вашего интерфейса tap0 на вашем vpn-клиенте.

ifconfig tap0 hw ether 02:00:00:xx:yy:zz

Теперь ваш OVH IP должен работать на вашем VPN-клиенте.

0

Вы должны быть в состоянии сделать это, используя интерфейс TAP в OpenVPN - то есть соединить 2 сети вместе, но это может показаться медленным, подверженным ошибкам и вообще ужасным способом сделать это.

Альтернативой было бы разбить ваши /27 на 2/28 и направить один из /28 к удаленному месту. Это потеряло бы немало IP-адресов, но обеспечило бы приличную логическую структуру, которую вы можете использовать с интерфейсом TUN и некоторыми командами маршрутизации в вашей конфигурации.

Тем не менее, и, возможно, неправильные предположения о типе трафика, который вы планируете использовать, использование какого-либо балансировщика нагрузки (даже грубого, такого как iptables) - лучший способ сделать что-то подобное в 99 раз из 100.

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