Настроить:
Коробка с сервером OpenVPN и несколькими виртуальными машинами Vagrant
Проблема:
Я хотел бы получить доступ к ящикам Vagrant напрямую от клиентов VPN как к обычным машинам, а не только через несколько перенаправленных портов.
Конфигурация:
OpenVPN имеет интерфейс tun0:
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.69.69.1 P-t-P:10.69.69.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:110348 errors:0 dropped:0 overruns:0 frame:0
TX packets:89923 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:18322866 (18.3 MB) TX bytes:16651955 (16.6 MB)
Vagrant настроен на public_networks с определенным ip:
config.vm.network "public_network", :bridge => "tun0", ip:"10.69.69.101", :auto_config => "false", :netmask => "255.255.255.0"
Но это не работает, я думаю, потому что я не могу связать Vagrant с интерфейсом OpenVpn ?. Из журналов:
DEBUG network: Normalized configuration: {:auto_config=>"false", :bridge=>"tun0", :mac=>nil, :nic_type=>nil, :use_dhcp_assigned_default_route=>false, :ip=>"10.69.69.101", :netmask=>"255.255.255.0", :protocol=>"tcp", :id=>"9d8e9f11-8e10-442d-92a3-7c463e14cf24", :adapter=>2}
INFO subprocess: Starting process: ["/usr/bin/VBoxManage", "list", "bridgedifs"]
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stdout: Name: eth0
GUID: 30687465-0000-4000-8000-d43d7ee2ff6e
DHCP: Disabled
IPAddress: XXX.XXX.XXX.XXX
NetworkMask: 255.255.255.224
IPV6Address: 2a01:04f8:0200:6152:0000:0000:0000:0002
IPV6NetworkMaskPrefixLength: 64
HardwareAddress: d4:3d:7e:e2:ff:6e
MediumType: Ethernet
Status: Up
VBoxNetworkName: HostInterfaceNetworking-eth0
DEBUG subprocess: Waiting for process to exit. Remaining to timeout: 32000
DEBUG subprocess: Exit status: 0
DEBUG network: Bridge was directly specified in config, searching for: tun0
INFO interface: info: Specific bridge 'tun0' not found. You may be asked to specify
which network to bridge to.
[default] Specific bridge 'tun0' not found. You may be asked to specify
which network to bridge to.
DEBUG network: Only one bridged interface available. Using it by default.
INFO network: Bridging adapter 2 to eth0
DEBUG network: Adapter configuration: {:adapter=>2, :type=>:bridged, :bridge=>"eth0", :mac_address=>nil, :nic_type=>nil}
Должен ли я каким-то образом связать tun0 через Virtualbox? Или это не выполнимо? Я пробовал сделать что-то вроде этого:
v.customize ["modifyvm", :id, "--nic1", "bridged", "--bridgeadapter1", "tun0"]
Должен ли я создать виртуальный интерфейс eth1 (я не могу использовать bridge0, поскольку это общедоступный IP-адрес) и связать его с Vagrant, а затем создать правила маршрутизации для сервера OpenVPN?