LINUX.ORG.RU
ФорумAdmin

squid + routing (tcp_outgoing_address)- не работает .HELP!!


0

0

Вроде бы банальная вещь, но проблема есть:
пытаюсь перенаправит трафик c своего ip через сквид через одного из подключенных к роутеру провайдеров. Squid и роутер находятся на одной физической машине.

Вот интерфейс, который смотрит в строну интересующего провайдера.

eth3 Link encap:Ethernet HWaddr 00:15:17:C4:A8:80
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::215:17ff:fec4:a880/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3379 errors:0 dropped:0 overruns:0 frame:0
TX packets:3425 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3978500 (3.7 MiB) TX bytes:346134 (338.0 KiB)
Base address:0xa880 Memory:fe880000-fe8a0000

192.168.0.1 - роутер провайдера, с нашего squid-роутера пингуется.

Маршрутизация на squid-роутере:

root:/etc/squid# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.13 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.34.105.28 0.0.0.0 255.255.255.252 U 0 0 0 eth2
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.0.0 192.168.0.1 255.255.255.0 UG 0 0 0 eth3 <- вот так я настроил роутинг (чтобы системе было ясно, куда кидать пакеты, когда они идут с ip 192.168.0.2)
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
10.0.0.0 10.0.0.13 255.255.252.0 UG 0 0 0 tun0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 10.34.105.29 0.0.0.0 UG 1 0 0 eth2

В фаерволе на squid-роутере завернул свой ip на сквид:
iptables -t nat -A PREROUTING -s 192.168.2.138 -d ! 192.168.2.63 -p tcp -m multiport --dport 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT --to-port 3128

192.168.2.63 - ip роутера в подсети с моим ip, трафик которого я хочу завернуть.

В сквиде прописал (сквид прозрачный):
acl myip 192.168.2.138
tcp_outgoing_address 192.168.0.2 myip
server_persistent_connections off

Иду на showip.net - мне показывает внешний ip провайдера по умолчанию, вместо провайдера на eth3.

Что я делаю не так?!


> acl myip 192.168.2.138

acl myip src 192.168.2.138

SlavikSS ★★
()

сдается мне ты source based routing не настроил

показания route -n неразборчивые :-) пользуйся /sbin/ip

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

acl myip src 192.168.2.138 - сделал, просто опечатался, когда в форуме печатал.

root@:/etc/squid# ip route list
10.0.0.13 dev tun0 proto kernel scope link src 10.0.0.14
10.34.105.28/30 dev eth2 proto kernel scope link src 10.34.105.30
192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.1
192.168.2.0/24 dev eth1 proto kernel scope link src 192.168.2.63
192.168.0.0/24 via 192.168.0.1 dev eth3
192.168.0.0/24 dev eth3 proto kernel scope link src 192.168.0.2
10.0.0.0/22 via 10.0.0.13 dev tun0
127.0.0.0/8 dev lo scope link
default via 10.34.105.29 dev eth2 metric 1

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

В squid.conf:

tcp_outgoing_address 192.168.0.2

В /etc/iproute2/rt_tables:
200 myprovider

Далее:
ip r a 192.168.0.0/24 dev eth3 proto kernel scope link src 192.168.0.2 t myprovider
ip r a default via 192.168.0.1 t myprovider
ip ru a from 192.168.0.2 lookup myprovider

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