URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 85844
[ Назад ]

Исходное сообщение
"Шлюз между двумя isp "

Отправлено chillivilli , 05-Июл-09 15:56 
Привет, натолкните на мысли как это реализовать с помощью ipfw natd таблиц маршрутизации?

ситуация:

<?пачка компов в инете с белымми ипами</?>         [1]
   |    /\
   |    |
  \/    |
----------------шлюз 7.2-------------------------- [2]
1 em0 inet 82.42.33.233 defaultgate 82.42.33.1    ---> сеть первого прова
ipfw+natd
2 em1 inet 192.168.0.10 defaultgate 192.168.0.15  ---> сеть второго прова с серыми ип
----------------шлюз 7.2--------------------------
   |    /\
   |    |
   \/   |
-------------------------------------------------- [3]
Сервер в сети воторого прова  ип 192.168.0.2
--------------------------------------------------
задача: пачка компов с инета посылает пакеты на ип первого прова (em0 шлюза) [1]-->[2]
        шлюз перенаправляет их на второй интерфейс em1      [2]-->[2]
        с интерфейса em1 он уходит в сеть второго прова на сервер [2]-->[3]

        далее пакет возвращается обратно проходя эти же стадии в обратном порядке

Как?


Содержание

Сообщения в этом обсуждении
"Шлюз между двумя isp "
Отправлено un4me , 05-Июл-09 16:36 
Я чего-т думаю, что nat+ip route 2 спасут отца русской демократии...

Хотя если без маразмов то VPN ;)


"Шлюз между двумя isp "
Отправлено chillivilli , 05-Июл-09 16:45 
>Я чего-т думаю, что nat+ip route 2 спасут отца русской демократии...
>
>Хотя если без маразмов то VPN ;)

впн не получится, так как доступа к серверу в сети второго прова нет.
никогда не работал с двумя таблицами, ткните в грамотную статью если не трудно,

может можно обойтись без двух таблиц? илив  случае двух дефаултгейтов это нереально?


"Шлюз между двумя isp "
Отправлено PavelR , 05-Июл-09 17:27 
>[оверквотинг удален]
>>
>>Хотя если без маразмов то VPN ;)
>
>впн не получится, так как доступа к серверу в сети второго прова
>нет.
>никогда не работал с двумя таблицами, ткните в грамотную статью если не
>трудно,
>
>может можно обойтись без двух таблиц? илив  случае двух дефаултгейтов это
>нереально?

на линухе "два провайдера" делаются проще и с меньшим количеством граблей, чем на фряхе....

на фряхе - надо рисовать правила прохождения по файрволлу


общая концепция такова:

#Divert адреса шлюза и внутренней подсети первого провайдера
ipfw add XXX1 divert natd1 all from ISP1_IP to any out via ISP1_IF
ipfw add XXX2 divert natd1 all from ISP1_IP to any out via ISP2_IF

#если провайдер1 выделил реальную подсетку, эти два правила не нужны
ipfw add XXX1 divert natd1 all from ISP1_NET to any out via ISP1_IF
ipfw add XXX2 divert natd1 all from ISP1_NET to any out via ISP2_IF

#Divert адреса шлюза и внутренней подсети второго провайдера
ipfw add XXX1 divert natd2 all from ISP2_IP to any out via ISP1_IF
ipfw add XXX2 divert natd2 all from ISP2_IP to any out via ISP2_IF

#если провайдер2 выделил реальную подсетку, эти два правила не нужны
ipfw add XXX1 divert natd2 all from ISP2_NET to any out via ISP1_IF
ipfw add XXX2 divert natd2 all from ISP2_NET to any out via ISP2_IF

## теперь у нас все прошло через нат. займемся корректировкой маршрутизации.

ipfw add XXX3 allow all from ISP1_IP to any out via ISP1_IF
ipfw add XXX3 fwd ISP1_GW all from ISP1_IP to any out via ISP2_IF

ipfw add XXX3 fwd ISP2_GW all from ISP2_IP to any out via ISP1_IF
ipfw add XXX3 allow all from ISP2_IP to any out via ISP2_IF


#Если у нас были реальные подсетки, то их тоже надо "повернуть". Если они серые, то не надо, потому что для них уже сделан нат.
ipfw add XXX3 allow all from ISP1_NET to any out via ISP1_IF
ipfw add XXX2 fwd ISP1_GW all from ISP1_NET to any out via ISP2_IF


===

+ еще надо запустить сами natd и завернуть на них входящий по интерфейсам траффик.
+ еще огрести проблем, если MTU на каналах не равны (тогда надо на входящем потоке врубать мссфиксилку в размер минимального из всех каналов мту).


"Шлюз между двумя isp "
Отправлено админко , 05-Июл-09 18:37 
че-то вы загнули...
тут достаточно простейшего правила нет редиректа с нужных IPов первого провайдера
на IP сервера висящего на втором прове.
что-то типа шлюза с редиректом с вшенки на внутренню сеть.

и делается это в 2-3 строки, а не в десяток...


"Шлюз между двумя isp "
Отправлено chillivilli , 05-Июл-09 18:44 
>че-то вы загнули...
>тут достаточно простейшего правила нет редиректа с нужных IPов первого провайдера
>на IP сервера висящего на втором прове.
>что-то типа шлюза с редиректом с вшенки на внутренню сеть.
>
>и делается это в 2-3 строки, а не в десяток...

задал тот же вопрос на другом форуме
http://forum.lissyara.su/viewtopic.php?f=8&t=18922
Вы такое решение имеете ввиду?


"Шлюз между двумя isp "
Отправлено Vitaly_loki , 05-Июл-09 20:55 
man setfib

"Шлюз между двумя isp "
Отправлено PavelR , 05-Июл-09 21:55 
>man setfib

1. Вы настолько телепат, что точно знаете, какая верия фри используется у пациента?
2. Вы умны и не желаете делиться опытом :) ?


"Шлюз между двумя isp "
Отправлено chillivilli , 07-Июл-09 15:56 
>[оверквотинг удален]
>Сервер в сети воторого прова  ип 192.168.0.2
>--------------------------------------------------
>задача: пачка компов с инета посылает пакеты на ип первого прова (em0 шлюза) [1]-->[2]
>        шлюз перенаправляет их на второй интерфейс em1      [2]-->[2]
>        с интерфейса em1 он уходит в сеть второго прова на сервер [2]-->[3]
>
>        далее пакет возвращается обратно
>проходя эти же стадии в обратном порядке
>
>Как?

И все же, такое решение можно применить в данной ситуации?

мутить "устаревшей связкой" ipfw +natd

1.В rc.conf в качестве дефалт шлюза прописываем шлюз первого прова
2.В таблицу маршрутизации добавляем путь к 192.168.0.2 через шлюз 192.168.0.15
2.вешаем нат на внешний интерфейс первого прова
3 в natd.conf пропсиываем редирект адреса внешний ип первого прова --> 192.168.0.2 (redirect_address 192.168.0.2 82.42.33.233)

Или не покатит?