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

Исходное сообщение
"policy routing в linux"

Отправлено Sova , 27-Май-08 11:52 
Добрый день!
помогите пожалуйста в настройке policy routing под linux.
чего сделал:
iptables -t mangle -A PREROUTING -m state --state NEW --protocol tcp --src $EXT --dst $ME --dport 22 --in-interface eth1 --jump CONNMARK --set-mark 0x5
iptables -A INPUT -p tcp -m connmark --mark 0x5 --src $EXT --dst $ME --dport 22 --in-interface eth1 --jump ACCEPT

iptables -t mangle -A OUTPUT -p tcp --source $ME --sport 22 --dst $EXT --jump CONNMARK --restore-mark
iptables -A OUTPUT -m mark --mark 0x5 -p tcp --source $ME --sport 22 --dst $EXT --out-interface eth1 --jump ACCEPT

ip route add default via me.iface2.gate dev eth1 src me.iface2 table me2ext
ip rule add fwmark 0x5 table me2ext

всё хорошо и на входе connmark ставиться и на выходе он есть, но вот после restore-mark пакет на re-routing не попадает и пытается выйти через системный default gw и eth0.
cat /proc/sys/net/ipv4/conf/eth1/rp_filter
0
Чего я забыл сделать или где я ошибся?
Вообще в чем может быть проблема?
Спасибо!


Содержание

Сообщения в этом обсуждении
"policy routing в linux"
Отправлено PavelR , 27-Май-08 14:27 
ip ru sh посмотри, твое правило в конец добавилось и не работает.

"policy routing в linux"
Отправлено Sova , 27-Май-08 14:30 
>ip ru sh посмотри, твое правило в конец добавилось и не работает.

ip ru sh
0:      from all lookup 255
32765:  from all fwmark 0x5 lookup me2ext
32766:  from all lookup main
32767:  from all lookup default


"policy routing в linux"
Отправлено PavelR , 27-Май-08 15:45 
А теперь словами: "я хочу чтобы маршрутизация работала так: ..."

по правилам ломает разбираться, что вы под ними _подразумевали_


"policy routing в linux"
Отправлено Sova , 27-Май-08 15:50 
>А теперь словами: "я хочу чтобы маршрутизация работала так: ..."
>
>по правилам ломает разбираться, что вы под ними _подразумевали_

хочется вот чего - чтобы все соединения с $EXT ходили через другой интерфейс (провайдера другого).


"policy routing в linux"
Отправлено PavelR , 27-Май-08 16:53 
>>А теперь словами: "я хочу чтобы маршрутизация работала так: ..."
>>
>>по правилам ломает разбираться, что вы под ними _подразумевали_
>
>хочется вот чего - чтобы все соединения с $EXT ходили через другой
>интерфейс (провайдера другого).

0:      from all lookup local
1000:   from all lookup main

## траффик на нужный хост/сеть на нужную таблицу
3000:   from all to нужный_хост lookup $extX_TABLE

## траффик с нужного хоста/сети -  на нужную таблицу
4000:   from нужный_хост  lookup $extX_TABLE

## c адресов маршрутизатора

5000:   from $EXT2_IP lookup $EXT2_TABLE
5050:   from $EXT1_IP lookup $EXT1_TABLE

10000:  from all lookup default
32766:  from all lookup main
32767:  from all lookup default


[root@test zz]# ip ro sh table $EXT1_TABLE
default via EXT1_GW_IP dev EXT1_IF
[root@test zz]# ip ro sh table $EXT2_TABLE
default via EXT2_GW_IP dev EXT2_IF


таблица майн содержит в себе маршруты к директли-коннектед сетям, это позволяет пакетам из локальной сети идти на внешние адреса маршрутизатора, и обратные пакеты с внешних адресов маршрутизатора пойдут в локальные сети а не будут форварднуты на шлюзы провайдера по  50хх  правилам


PS: Воспользуйтесь поиском. Тема объясняется по нескольку раз на неделю.

http://www.opennet.me/openforum/vsluhforumID1/80422.html
http://www.opennet.me/openforum/vsluhforumID10/3679.html#4

и другие ссылки.


"policy routing в linux"
Отправлено Sova , 28-Май-08 08:01 
>[оверквотинг удален]
>>>по правилам ломает разбираться, что вы под ними _подразумевали_
>>
>>хочется вот чего - чтобы все соединения с $EXT ходили через другой
>>интерфейс (провайдера другого).
>PS: Воспользуйтесь поиском. Тема объясняется по нескольку раз на неделю.
>
>http://www.opennet.me/openforum/vsluhforumID1/80422.html
>http://www.opennet.me/openforum/vsluhforumID10/3679.html#4
>
>и другие ссылки.

угу, Вы наверное подумали, что я это делаю на роутере? На роутере у меня уже достаточно давно policy routing работает.
Мне же надо на локальной машине с 2мя интерфейсами, никаких роутеров! Делал в том числе и по доке, которую Вы привели, но no luck. Хочется понять где я мог накосячить.
Могу еще немного побольше написать чего я хочу: хочу на одной и той же машине с двумя сетевухами и провайдерами сделать второй MX на ip второго провайдера.
В этой ситуации пакеты будут не транзитными, а исходить от локальной машины и поэтому написанный роутинг им будет пофиг, если их не промаркировать через pf (имха). Или я не прав?

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


"policy routing в linux"
Отправлено PavelR , 28-Май-08 09:12 
ИЗВИНИТЕ, НО ЕСЛИ ВЫ НЕ УМЕЕТЕ ЧИТАТЬ ТО, ЧТО НАПИСАНО МАЛЕНЬКИМИ БУКВАМИ, БУДУ ПИСАТЬ БОЛЬШИМИ:

ТАБЛИЦА ПРАВИЛ МАРШРУТИЗАЦИИ:


0:      from all lookup local
1000:   from all lookup main

##  С АДРЕСОВ МАРШРУТИЗАТОРА

5000:   from $EXT2_IP lookup $EXT2_TABLE
5050:   from $EXT1_IP lookup $EXT1_TABLE

10000:  from all lookup default
32766:  from all lookup main
32767:  from all lookup default


если вы не умеете думать - Вам никто не поможет.


"policy routing в linux"
Отправлено Sova , 29-Май-08 11:01 
>ИЗВИНИТЕ, НО ЕСЛИ ВЫ НЕ УМЕЕТЕ ЧИТАТЬ ТО, ЧТО НАПИСАНО МАЛЕНЬКИМИ БУКВАМИ,
>БУДУ ПИСАТЬ БОЛЬШИМИ:

умею читать и маленькими. Спасибо, помогло.
Позавчера, в первом тесте не помогло почему-то, хотя все правила были такие же как и сейчас.
Да и сегодня тоже с первого раза не завелось, а только после перезагрузки стало всё нормально. Странно, на винду смахивает :)

>если вы не умеете думать - Вам никто не поможет.

не надо так злиться.
читать умею, объяснения выше.
Спасибо тебе!


"policy routing в linux"
Отправлено PavelR , 29-Май-08 11:27 

Вы забыли про волшебную команду

ip ro flu ca


(ip route flush cache)


"policy routing в linux"
Отправлено Sova , 29-Май-08 11:37 
>Вы забыли про волшебную команду
>ip ro flu ca
>(ip route flush cache)

не, не забыл. Она тоже не помогла :(