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

Исходное сообщение
"Разборки с маршрутизацией и файрволом."

Отправлено Myau , 20-Сен-05 17:58 
                                                          
               ip-adsl внутри-192.168.0.77     +------------+      
                                               |            |      
                            +--|adsl1|---------+ 1.1.1.0/20 +
        __                  |                  |            |
    ___/  \_         +------+-------+          +------------+
  _/        \__      |     eth0     | ip eth0-192.168.0.1                  
/             \     |              |                      
| Локальная сеть-----+eth1  Linux   | ip eth1-192.168.2.1                  
\192.168.2.0/24     |              |                      
   \__     __/       |     eth2     |                            ________
      \___/          +------+-------+     +------------+        /
            ip-eth2-2.2.2.2 |             |            |       |
                            +--|adsl2|----+ Провайдер  +-------| Internet
                                          |            |       |
                                          +------------+        \________
default route на сервере - 2.2.2.3(в сеть прова интернет).
adsl1 - в режиме роутера.
adsl2 - в режиме бриджа.
на сеть 1.1.1.0/20 прописан маршрут:
route add -net 1.1.1.0/20 gw 192.168.0.77

все исправно работает, то что ходит в сеть 1.1.1.0/20, ходит через adsl1
то что ходит не в сеть 1.1.1.0/20, ходит через adsl2
НО. Хочу, чтобы ответ на SYN и ESTABLISHED,RELATED трафик шел через тот интерфейс, с которого пришел SYN. Иначе сеть 1.1.1.0/20(а вернее ее админ), матюкается...
КАК ЭТО СДЕЛАТЬ?

Мысли про policy routing:

/sbin/ip rule add from 192.168.2.0/24 to 1.1.1.0/20 table 101 pref 102
/sbin/ip rule add from 192.168.2.0/24 to 0/0 table 102 pref 102

/sbin/ip route add table 101 via 192.168.0.77
/sbin/ip route add table 102 via 2.2.2.3

Мысли про файрвол: метить пакеты по syn\dest и форвардить? Как? Пример плиз.
Правила файра пришлю....там NAT в инет и куча фильтров.


Содержание

Сообщения в этом обсуждении
"Разборки с маршрутизацией и файрволом."
Отправлено Myau , 20-Сен-05 17:59 
рисунок не получился :((

"Разборки с маршрутизацией и файрволом."
Отправлено Myau , 20-Сен-05 18:03 
http://www.pfncstu.ru/img/net-scheme.jpg

он тут !!!!!



"Разборки с маршрутизацией и файрволом."
Отправлено fez , 21-Сен-05 03:31 
>КАК ЭТО СДЕЛАТЬ?
>Мысли про policy routing:

Вот это направление мне кажется более логичным.
Для начала - поймем, что нам нужно? Нам нужно, чтобы ответ на запрос из 1.1.1.0 ушел туда же, тогда как сейчас он уходит на дефаултроутер.

Я у себя делал так:
в /etc/iproute2/rt_tables добавил строку "100 friend"
Это мы так назвали табличку для маршрутизации в сеть 1.1.1.0
Теперь настраиваем правила в этой табличке (если я правильно понял, то гейт в нее - это 192.168.0.77):

# все, что на локальную подсеть - все на eth1
ip route add 192.168.2.0/24 dev eth1 table friend

# все, что на подсеть провайдера (маску подправишь) - все на eth2
ip route add 2.2.2.0/24 dev eth2 table friend

# Вот это первый ключевой момент. Для таблицы friend - роутинг по умолчанию - через 192.168.0.77
ip route add default via 192.168.0.77 table friend

# А это второй ключевой момент. Роутинг по таблице friend включается в том случае, если пакет уходит с адреса 192.168.0.1
ip rule add from 192.168.0.1 table friend

Собственно, все. Если хочется этот скрипт запускать многократно, то рекомендую в начало добавить что-то вроде
ip rule del from 192.168.0.1 table mtu
ip route flush table mtu
чтоб не ругалось.