У меня Linux сервер А с блоком из 5 публичных IP-адресов, 8.8.8.122/29
. В настоящее время, 8.8.8.122
назначен на eth0
, и 8.8.8.123
назначен на eth0:1
.
У меня есть другая машина Linux B в удаленном месте, за NAT. Я хотел бы создать туннель между ними, чтобы B может использовать IP-адрес 8.8.8.123
как его основной IP-адрес.
OpenVPN, вероятно, является ответом, но я не могу понять, как это настроить (topology subnet
или topology p2p
может быть уместным. Или мне следует использовать мост Ethernet?). На данный момент безопасность и шифрование не являются большой проблемой, так что GRE тоже подойдет - машина B будет поступать с известного IP-адреса и может быть аутентифицирован на его основе.
Как я могу это сделать? Может ли кто-нибудь предложить конфигурацию OpenVPN или какой-либо другой подход, который мог бы работать в этой ситуации? В идеале он также сможет обрабатывать несколько клиентов (например, совместно использовать все четыре резервных IP-адреса с другими машинами), не позволяя этим клиентам использовать IP-адреса, на которые они не имеют права.
Я остановился на мосте Ethernet. Множество чрезвычайно подробных примеров, которые можно найти в Интернете, но это оказывается довольно легко:
Во-первых, на А, /etc/network/interfaces
был изменен с:
auto eth0
iface eth0 inet static
address 8.8.8.122
netmask 255.255.255.248
gateway 8.8.8.121
кому:
auto br0
iface br0 inet static
address 8.8.8.122
netmask 255.255.255.248
gateway 8.8.8.121
pre-up openvpn --mktun --dev tap0
bridge_ports eth0 tap0
bridge_fd 3
чтобы навести мост eth0
(настоящий WAN-интерфейс) с tap0
(новый туннельный интерфейс) при загрузке.
Затем на А, запустите сервер openvpn с помощью:
openvpn --dev tap0
На B, подключитесь к нему с помощью:
openvpn --remote 8.8.8.122 --dev tap0 --route-gateway 8.8.8.121 \
--redirect-gateway def1 --ifconfig 8.8.8.123 255.255.255.248
Это супер простая конфигурация Искал, и работает - B теперь общедоступен по адресу 8.8.8.123, а исходящие соединения происходят с того же адреса.
Добавить безопасность (--secret
, --tls-server
и т. д.) по мере необходимости, конечно.
Думаю, тебе придется нелегко. У большинства брандмауэров возникнут трудности с маршрутизацией трафика OpenVPN, если обе стороны VPN находятся в одной подсети.
Если вы пытаетесь выполнить маршрутизацию для общего доступа, я бы переместил оба сервера в разные подсети с ваших общедоступных адресов, а затем использовал виртуальные IP-адреса (от 1 до 1 Nat) для их подключения. Для соединения двух сайтов будет работать OpenVPN или туннель IP-Sec.
Виртуальные IP-адреса: http://doc.pfsense.org/index.php/What_are_Virtual_IP_Addresses%3F
С сайта на сайт: http://doc.pfsense.org/index.php/VPN_Capability_IPsec
Редактировать на основе комментариев:
Я лично установил pfSense на A box и дал ему порт, который вы хотели для его WAN. Затем настройте сервер OpenVPN в локальной подсети (который полностью готов к работе в веб-интерфейсе pfSense) и настройте другой компьютер с виртуальным IP-адресом, указывающим на его локальный IP-адрес OpenVPN. Это даст вам возможность для расширения позже (добавьте больше машин с виртуальными IP-адресами, логически перенаправьте определенные порты на разные серверы, действительно получите полноценную настройку LAN / WAN / DMZ с OpenVPN для виртуального доступа. Не говоря уже о том, что у вас будет полноценный маршрутизатор, поэтому он, вероятно, будет более безопасным.