Добрый день!
помогите пожалуйста в настройке 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 ACCEPTiptables -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 ACCEPTip 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
Чего я забыл сделать или где я ошибся?
Вообще в чем может быть проблема?
Спасибо!
ip ru sh посмотри, твое правило в конец добавилось и не работает.
>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
А теперь словами: "я хочу чтобы маршрутизация работала так: ..."по правилам ломает разбираться, что вы под ними _подразумевали_
>А теперь словами: "я хочу чтобы маршрутизация работала так: ..."
>
>по правилам ломает разбираться, что вы под ними _подразумевали_хочется вот чего - чтобы все соединения с $EXT ходили через другой интерфейс (провайдера другого).
>>А теперь словами: "я хочу чтобы маршрутизация работала так: ..."
>>
>>по правилам ломает разбираться, что вы под ними _подразумевали_
>
>хочется вот чего - чтобы все соединения с $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_TABLE10000: 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и другие ссылки.
>[оверквотинг удален]
>>>по правилам ломает разбираться, что вы под ними _подразумевали_
>>
>>хочется вот чего - чтобы все соединения с $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 (имха). Или я не прав?Поиском пользоваться умею, но ничего подходящего и _работающего_ не нашел.
ИЗВИНИТЕ, НО ЕСЛИ ВЫ НЕ УМЕЕТЕ ЧИТАТЬ ТО, ЧТО НАПИСАНО МАЛЕНЬКИМИ БУКВАМИ, БУДУ ПИСАТЬ БОЛЬШИМИ:ТАБЛИЦА ПРАВИЛ МАРШРУТИЗАЦИИ:
0: from all lookup local
1000: from all lookup main## С АДРЕСОВ МАРШРУТИЗАТОРА
5000: from $EXT2_IP lookup $EXT2_TABLE
5050: from $EXT1_IP lookup $EXT1_TABLE10000: from all lookup default
32766: from all lookup main
32767: from all lookup default
если вы не умеете думать - Вам никто не поможет.
>ИЗВИНИТЕ, НО ЕСЛИ ВЫ НЕ УМЕЕТЕ ЧИТАТЬ ТО, ЧТО НАПИСАНО МАЛЕНЬКИМИ БУКВАМИ,
>БУДУ ПИСАТЬ БОЛЬШИМИ:умею читать и маленькими. Спасибо, помогло.
Позавчера, в первом тесте не помогло почему-то, хотя все правила были такие же как и сейчас.
Да и сегодня тоже с первого раза не завелось, а только после перезагрузки стало всё нормально. Странно, на винду смахивает :)>если вы не умеете думать - Вам никто не поможет.
не надо так злиться.
читать умею, объяснения выше.
Спасибо тебе!
Вы забыли про волшебную командуip ro flu ca
(ip route flush cache)
>Вы забыли про волшебную команду
>ip ro flu ca
>(ip route flush cache)не, не забыл. Она тоже не помогла :(