LINUX.ORG.RU
ФорумAdmin

iptables mark


0

0

на сервере 2 DSL (выход в инет)
на сервере также стоит squid

как сделать чтоб squid ходил в инет не через дефолтовый DSL ???

Я сделал:

ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2

ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

ip rule add from $IP1 table T1
ip rule add from $IP2 table T2

ip rule add fwmark 33 table T2

ip route flush cache

А как маркировать пакеты, которые посылает squid. С какого интерфейса они исходят, ведь squid - это локальный процесс, получается что в таблице mangle пакеты не проходят через PREROUTING/
Как маркировать пакеты от squid, чтобы завернуть их на таблицу маршрутизации T2 ?

anonymous

Ответ на: комментарий от anonymous

Пробовал, но получается что помечаются и пакеты которые на выходе $IF1 и эти пакеты с адресом источника $IP1 перенаправляются на интерфейс $IF1. В итоге инета нет. Или я чего не так делаю ?

Может кто подскажет , как решить проблему , чтоб squid ходил в инет не через основной интерфейс (не через default gw eth2, а через eth1)?

anonymous
()
Ответ на: комментарий от anonymous

ОШИБОЧКА, я написал вместо $IF2 $IF1. Вот исправлено:

Пробовал, но получается что помечаются и пакеты которые на выходе $IF1 и эти пакеты с адресом источника $IP1 перенаправляются на интерфейс $IF2. В итоге инета нет. Или я чего не так делаю ?

Может кто подскажет , как решить проблему , чтоб squid ходил в инет не через основной интерфейс (не через default gw eth2, а через eth1)?

anonymous
()

можно метить пакеты которые идут от клиентов к сквиду. Т.е. пакеты которые идут на порт 3128

tommi
()
Ответ на: комментарий от anonymous

Благодарю !
tcp_outgoing_address решило проблему.

Но мне интересно, как можно решить проблему с помощью маршрутизации. Вдруг мне понадобится какой-то другой сервис (не squid) завернуть на определенный интерфейс ?

anonymous
()
Ответ на: комментарий от tommi

Я думаю метить пакеты идущие к squid не имеет смысла, squid же их не пересылает дальше, а сам посылает свои пакеты уже от себя.

anonymous
()
Ответ на: комментарий от anonymous

Используйте "iptables -j ROUTE" - работает на 100%. А вот почему в таких случаях не получается с помощью обычной маршрутизации мне было бы тоже интересно узнать (почему при перемаршрутизации не хочет менять source IP).
P.S. Есть предположение (основанное на опыте), что advanced routing в linux-е конкретно глючит.

spirit ★★★★★
()
Ответ на: комментарий от anonymous

owner
This module attempts to match various characteristics of the packet
creator, for locally-generated packets. It is only valid in the OUTPUT
chain, and even this some packets (such as ICMP ping responses) may
have no owner, and hence never match.

--uid-owner userid
Matches if the packet was created by a process with the given
effective user id.


iptables -A OUTPUT -t mangle -m owner --uid-owner 89 -j MARK --set-mark 5
может быть так

tommi
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.