The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Одновременно 3 оpenvpn-поединения через разные шлюзы"
Отправлено Павел, 23-Авг-12 03:12 
Всем привет!

Народ помогите решить задачу.

Дано:
Тут на картинке изображено: 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 как будто пакеты убиваются.

Подскажите, куда копать?

Заранее благодарен за помощь!

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру