Всем привет!Народ помогите решить задачу.
Дано:
Тут на картинке изображено: http://s017.radikal.ru/i441/1208/ea/2e4a56f34f9d.jpg
_______
/ \
[сервер 1]---[eth0/192.168.0.100]------->[роутер 1/192.168.0.1]->[ПРОВАЙДЕР 1]->| И |
| | Н |
| | Т |
-----[eth1/192.168.1.100]------->[роутер 2/192.168.1.1]->[ПРОВАЙДЕР 2]->| Е |
| | | Р |--->[сервер 2]
| | | Н |
| | | Е |
| V | Т |
-[eth1:0/192.168.2.100] [роутер 3/192.168.2.1]->[ПРОВАЙДЕР 3]->| |
\_______/
Сервер 1:
- ОС Linux Debian:
- Две физические сетевые карты
- eth0: 192.168.0.100
- eth1: 192.168.1.100 и eth1:0 192.168.2.100
к eth0 подключен роутер 1 с выходом в инет от провайдера 1
к eth1 и eth1:0 подключен роутер 2 с выходом в инет от провайдера 2
и у роутеру 2 подключен роутер 3 с выходом в инет от провайдера 3
Необходимо от [сервера 1] к [серверу 2] установить через все три провайдера openvpn-соединение по разным портам. К примеру, на [сервере 2] стоит три openvpn сервера на портах 111,222,333.
То есть необходимо сделать на [сервере 1] маршрутизацию таким образом, чтобы для разных портов [сервера 2] выбирался свой провайдер. К примеру для порта 111 был провайдер 1, для порта 222 был провайдер 2, для порта 333 был провайдер 3.
Что имею:
в /etc/oproute2/rt_tables
200 PROV1
210 PROV2
220 PROV3
255 local
254 main
253 default
0 unspec
Вот скриптик:
-----------------------------------------------------------------------------------
#!/bin/bash
IPT="iptables"
ip route flush table PROV1
ip route flush table PROV2
ip route flush table PROV3
ip rule flush table PROV1
ip rule flush table PROV2
ip rule flush table PROV3
IF1="eth0" # PROV1
IF2="eth1" # PROV2
IF3="eth1:0" # PROV3
IP1="192.168.0.100"
IP2="192.168.1.100"
IP3="192.168.2.100"
P1="192.168.0.1"
P2="192.168.1.1"
P3="192.168.2.1"
P1_NET="192.168.0.0/24"
P2_NET="192.168.1.0/24"
P3_NET="192.168.2.0/24"
ip route add $P1_NET dev $IF1 src $IP1 table PROV1
ip route add default via $P1 table PROV1
ip route add $P2_NET dev $IF2 src $IP2 table PROV2
ip route add default via $P2 table PROV2
ip route add $P3_NET dev $IF3 src $IP3 table PROV3
ip route add default via $P3 table PROV3
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip route add $P3_NET dev $IF3 src $IP3
ip route add default via $P1
ip rule add from $IP1 table PROV1
ip rule add from $IP2 table PROV2
ip rule add from $IP3 table PROV3
ip route add $P1_NET dev $IF1 table PROV1
ip route add $P2_NET dev $IF2 table PROV1
ip route add $P3_NET dev $IF3 table PROV1
ip route add 127.0.0.0/8 dev lo table PROV1
ip route add $P1_NET dev $IF1 table PROV2
ip route add $P2_NET dev $IF2 table PROV2
ip route add $P3_NET dev $IF3 table PROV2
ip route add 127.0.0.0/8 dev lo table PROV2
ip route add $P1_NET dev $IF1 table PROV3
ip route add $P2_NET dev $IF2 table PROV3
ip route add $P3_NET dev $IF3 table PROV3
ip route add 127.0.0.0/8 dev lo table PROV3
ip rule add fwmark 1 table PROV1
ip rule add fwmark 2 table PROV2
ip rule add fwmark 3 table PROV3
$IPT -t mangle -A OUTPUT -o $IF1 -j CONNMARK --set-mark 1
$IPT -t mangle -A OUTPUT -o $IF2 -j CONNMARK --set-mark 2
$IPT -t mangle -A OUTPUT -p tcp -d xxx.xxx.xxx.xxx --dport 111 -j CONNMARK --set-mark 1
$IPT -t mangle -A OUTPUT -p tcp -d xxx.xxx.xxx.xxx --dport 222 -j CONNMARK --set-mark 2
$IPT -t mangle -A OUTPUT -p tcp -d xxx.xxx.xxx.xxx --dport 333 -j CONNMARK --set-mark 3
$IPT -t mangle -A OUTPUT -j CONNMARK --restore-mark
ip route flush cache
exit 0
-----------------------------------------------------------------------------------
С этими настройками соединяется только через PROV1, через PROV2 и PROV3 как будто пакеты убиваются.
Подскажите, куда копать?
Заранее благодарен за помощь!