The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Разборки с маршрутизацией и файрволом., !*! 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, 17:59 , 20-Сен-05 (1)
    рисунок не получился :((
  • Разборки с маршрутизацией и файрволом., !*! fez, 03:31 , 21-Сен-05 (3)
    >КАК ЭТО СДЕЛАТЬ?
    >Мысли про 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
    чтоб не ругалось.




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

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