Я пытаюсь запустить несколько экземпляров openvpn одновременно, все отлично работает с одним, но я хотел бы иметь несколько экземпляров, каждый из которых подключен к другому хосту, и оттуда можно будет использовать интерфейс, который я хотеть.
Пробую вот так:
France.ovpn
client
dev tun
proto udp
remote france.privateinternetaccess.com
lport 1190
resolv-retry infinite
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server
auth-user-pass /etc/openvpn/piaauth.txt
comp-lzo
verb 1
reneg-sec 0
crl-verify /etc/openvpn/crl.rsa.2048.pem
ca /etc/openvpn/ca.rsa.2048.crt
disable-occ
lport 1189
rport 1198
|
sudo /usr/sbin/openvpn --config /etc/openvpn/France.ovpn --dev tun0
Fri Dec 16 16:59:32 2016 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb 2 2016
Fri Dec 16 16:59:32 2016 library versions: OpenSSL 1.0.2g 1 Mar 2016, LZO 2.08
Fri Dec 16 16:59:32 2016 WARNING: file '/etc/openvpn/piaauth.txt' is group or others accessible
Fri Dec 16 16:59:32 2016 UDPv4 link local (bound): [undef]
Fri Dec 16 16:59:32 2016 UDPv4 link remote: [AF_INET]108.61.122.121:1198
Fri Dec 16 16:59:32 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Fri Dec 16 16:59:32 2016 [113b1963081eb5270c22e4405fb71051] Peer Connection Initiated with [AF_INET]108.61.122.121:1198
Fri Dec 16 16:59:34 2016 TUN/TAP device tun0 opened
Fri Dec 16 16:59:34 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Fri Dec 16 16:59:34 2016 /sbin/ip link set dev tun0 up mtu 1500
Fri Dec 16 16:59:34 2016 /sbin/ip addr add dev tun0 local 10.43.10.6 peer 10.43.10.5
Fri Dec 16 16:59:34 2016 Initialization Sequence Completed
После этого все работает. Но когда я запускаю следующий экземпляр ovpn, я получаю несколько ошибок.
Торонто
client
dev tun
proto udp
remote ca-toronto.privateinternetaccess.com
resolv-retry infinite
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server
auth-user-pass /etc/openvpn/piaauth.txt
comp-lzo
verb 1
reneg-sec 0
crl-verify /etc/openvpn/crl.rsa.2048.pem
ca /etc/openvpn/ca.rsa.2048.crt
disable-occ
lport 1192
rport 1198
|
sudo /usr/sbin/openvpn --config /etc/openvpn/Toronto.ovpn --dev tun1
Fri Dec 16 16:59:57 2016 OpenVPN 2.3.10 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Feb 2 2016
Fri Dec 16 16:59:57 2016 library versions: OpenSSL 1.0.2g 1 Mar 2016, LZO 2.08
Fri Dec 16 16:59:57 2016 WARNING: file '/etc/openvpn/piaauth.txt' is group or others accessible
Fri Dec 16 16:59:57 2016 UDPv4 link local (bound): [undef]
Fri Dec 16 16:59:57 2016 UDPv4 link remote: [AF_INET]172.98.67.16:1198
Fri Dec 16 16:59:57 2016 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Fri Dec 16 16:59:58 2016 [484ec5eff7d70137ae07ee3ec5e62b80] Peer Connection Initiated with [AF_INET]172.98.67.16:1198
Fri Dec 16 17:00:00 2016 TUN/TAP device tun1 opened
Fri Dec 16 17:00:00 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Fri Dec 16 17:00:00 2016 /sbin/ip link set dev tun1 up mtu 1500
Fri Dec 16 17:00:00 2016 /sbin/ip addr add dev tun1 local 10.84.10.6 peer 10.84.10.5
RTNETLINK answers: File exists
Fri Dec 16 17:00:00 2016 ERROR: Linux route add command failed: external program exited with error status: 2
RTNETLINK answers: File exists
Fri Dec 16 17:00:00 2016 ERROR: Linux route add command failed: external program exited with error status: 2
Fri Dec 16 17:00:00 2016 Initialization Sequence Completed
Вот IP ссылка и IP-адрес, оба терпят неудачу.
Это моя таблица маршрутов
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.43.10.5 128.0.0.0 UG 0 0 0 tun0
default 192.168.1.1 0.0.0.0 UG 0 0 0 enp3s0
10.43.10.1 10.43.10.5 255.255.255.255 UGH 0 0 0 tun0
10.43.10.5 * 255.255.255.255 UH 0 0 0 tun0
10.84.10.1 10.84.10.5 255.255.255.255 UGH 0 0 0 tun1
10.84.10.5 * 255.255.255.255 UH 0 0 0 tun1
108.61.122.121. 192.168.1.1 255.255.255.255 UGH 0 0 0 enp3s0
128.0.0.0 10.43.10.5 128.0.0.0 UG 0 0 0 tun0
link-local * 255.255.0.0 U 1000 0 0 enp3s0
172.98.67.16 192.168.1.1 255.255.255.255 UGH 0 0 0 enp3s0
192.168.1.0 * 255.255.255.0 U 0 0 0 enp3s0
И это мой ifconfig
enp3s0 Link encap:Ethernet HWaddr
inet addr:192.168.1.128 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::beae:c5ff:fe5a:7ec/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1146017 errors:0 dropped:0 overruns:0 frame:0
TX packets:727717 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1500194552 (1.5 GB) TX bytes:117446235 (117.4 MB)
Interrupt:40
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.43.10.6 P-t-P:10.43.10.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:2143 errors:0 dropped:0 overruns:0 frame:0
TX packets:1715 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2312566 (2.3 MB) TX bytes:170653 (170.6 KB)
tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.84.10.6 P-t-P:10.84.10.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Думаю, мне нужно настроить только некоторые маршруты, я прав?
Первый экземпляр VPN добавляет 2 маршрута, отправленных сервером с использованием push "redirect-gateway def1
. Вариант def1 отменяет шлюз по умолчанию, используя 0.0.0.0/1
и 128.0.0.0/1
.
Второй экземпляр VPN пытается сделать то же самое и не может добавить эти 2 маршрута, потому что они уже существуют. Разрешен только 1 маршрут по умолчанию.
У вас есть как минимум 2 варианта:
route-noexec
в конфигурацию клиента экземпляра VPN 2--route-noexec
Не добавляйте и не удаляйте маршруты автоматически. Вместо этого передайте маршруты сценарию --route-up, используя переменные окружения.
Теперь маршруты будут извлечены, но не добавлены в вашу систему. Вы можете сделать свою собственную маршрутизацию с помощью скрипта. Пример:
route-up add-routes.sh
route-noexec
в конфигурацию клиента обоих экземпляров VPNДобавьте сценарии маршрутизации и настройте маршрутизацию на основе политик.