Вводная:
1. Есть контора, у которой имеется
- центральный офис (Ц), внутреняя сеть 10.2.1.0/255.255.255.0
- удаленный офис-филиал (Ф), внутренняя сеть 10.10.1.0/255.255.255.0
2. В обоих офисах есть два выхода в интернет через двух разных провайдеров: пров1 быстрый и дорогой, пров2 медленный и дешёвый.
Задача:
- поднять из удаленного офиса в ценетральный офис ДВА openvpn-туннеля, один пров1 (внешний IP XXX.XXX.XXX.XXX) , второй через пров2 (внешний IP YYY.YYY.YYY.YYY) для того, чтобы пустить разные виды трафика по разным туннелям (например, почту по медленному каналу, а видеоконференцию по быстрому каналу).
Трафик планируется делить посредством iptables, идентифицируя пакеты по портам и раскидывая их на нужный интерфейс (туннель).
Что имеем:
1. в центральном офисе поднят OpenVPN-сервер (конфиг /etc/openvpn/server.conf):
Код:
port 1194
proto udp
dev tun
ca ca.crt
cert vpnserver.crt
key vpnserver.key
dh dh1024.pem
server 10.50.1.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
route 10.10.1.0 255.255.255.0
route 10.50.1.0 255.255.255.0
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
tun-mtu 15002. На сервере имеется файл /etc/openvpn/ccd/client1:
Код: Выделить всё
ifconfig-push 10.30.1.8 10.30.1.1
iroute 10.10.8.0 255.255.252.03. В удаленном офисе поднят openvpn, вот клиентский конфиг /etc/openvpn/client1.conf:
Код:
client
dev tun1
proto udp
remote XXX.XXX.XXX.XXX 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3
tun-mtu 1500
Канал через провайдера пров1 поднимается, всё работает отлично.
Вопрос:
как поднять второй канал с этого же клиента к томуже самому серверу через другого провайдера пров2 ?
Проблема в том, что клиентские сертификаты и ключи привязаны к имени машины, и соответственно, на сервере клиенту задаются настройки из файла
/etc/openvpn/ccd/<CN из сертификата>, и для второго туннеля клиенту выдадутся IP-адреса и маршруты, аналогичные первому туннелю.
Как быть ?