LINUX.ORG.RU
ФорумAdmin

squid и два подключения к интернету


0

0

Есть сервер со сквидом и двумя подключениями к интернету. Одно стоит дефолтным, через второе должен ходить сквид. В конфиге сквида прописал

tcp_outgoing_address xxx.xxx.xxx.xxx

Пробовал

tcp_outgoing_address xxx.xxx.xxx.xxx all

но и в том и в другом случае сквид ходит через подключение по-умолчанию.

Что надо сделать, чтобы все работало? Что я делаю не так?

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

Хороший способ. Однако, интерфейс поднимается раньше сквида, и я плохо представляю, как это увязать....

NowhereMan
() автор топика

тебе нужно вешать squid на второй адрес через tcp_outgoing_address
а потом сделать таблицу маршрутизации, в которой прописать дефолтом второй шлюз.
и сделать правило, что-то типа ip rule add from xxx.xxx.xxx.xxx lookup table2

в синтаксисе ip точно не уверен, посмотри man

chocholl ★★
()
Ответ на: удаленный комментарий

попробовал сделать так:

iptables -A OUTPUT -t mangle -m owner --uid-owner 13 -d ! 127.0.0.1 -s ! -j MARK --set-mark 1
iptables -A OUTPUT -t mangle -m owner --uid-owner 13 -d ! 192.168.0.0/24 -j MARK --set-mark 1

ip rule add fwmark 1 table inet
ip route add default via xxx.xxx.xxx.xxx dev ppp1 table inet

Где 13 - uid сквида.

Но все отрубилось нафиг. Ломаю голову - что я делаю не так? 

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

В первом правиле -s ! зачем?
Должно быть следующее правило:
iptables -t nat -A POSTROUTING -m owner --uid-owner user -o pppX -j MASQUERADE

И напоследок:
ip route flush cache

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

>А зачем маскарадинг?
хз, без него не работает! :)

Пакету присваивается исходящий адресс по таблице маршрутизации, но потом в чепочке OUTPUT пакет внаглую заворачивается в другую таблицу, после её анализа он бежит на совсем другой интерфейс, где ему нужно поменять исходящий адресс на адресс нового интерфейса!
(это я так думаю :)

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

# iptables -vnL
Chain INPUT (policy DROP 292 packets, 20011 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     icmp --  eth2   *       0.0.0.0/0            0.0.0.0/0
17697 1263K ACCEPT     0    --  *      *       0.0.0.0/0            127.0.0.1
84228   13M ACCEPT     0    --  eth0   *       0.0.0.0/0            0.0.0.0/0
 1251 81482 ACCEPT     0    --  eth2   *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       192.168.0.0/24       192.168.0.1         tcp dpt:22
6309K 5961M ACCEPT     0    --  ppp0   *       0.0.0.0/0            0.0.0.0/0
  382 42228 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
    0     0 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp spt:22
   50  3034 ACCEPT     icmp --  ppp1   *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:20
    0     0 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21
    0     0 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:110
    1    40 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25
    0     0 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp spt:110
    0     0 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp spt:25
93186  107M ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp spt:80
  243 98430 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
   62 34142 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp spt:443
    3   144 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443
   26  1576 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53
   30  1970 ACCEPT     udp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           udp dpt:53
    0     0 ACCEPT     tcp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           tcp spt:53
    1    62 ACCEPT     udp  --  ppp1   *       0.0.0.0/0            0.0.0.0/0           udp spt:53

Chain FORWARD (policy DROP 895 packets, 32450 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     icmp --  eth2   *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      eth2    0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     0    --  eth0   eth2    0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     0    --  eth2   eth0    0.0.0.0/0            0.0.0.0/0
 2656  123K ACCEPT     tcp  --  eth0   ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:110
 3574  229K ACCEPT     tcp  --  ppp1   eth0    0.0.0.0/0            0.0.0.0/0           tcp spt:110
  181  152K ACCEPT     tcp  --  eth0   ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:25
  129  8866 ACCEPT     tcp  --  ppp1   eth0    0.0.0.0/0            0.0.0.0/0           tcp spt:25
  508 41710 ACCEPT     tcp  --  eth0   ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:995
  650 79748 ACCEPT     tcp  --  ppp1   eth0    0.0.0.0/0            0.0.0.0/0           tcp spt:995
  136 18847 ACCEPT     tcp  --  eth0   ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:3085
  138 24524 ACCEPT     tcp  --  ppp1   eth0    0.0.0.0/0            0.0.0.0/0           tcp spt:3085
    0     0 ACCEPT     tcp  --  eth0   ppp1    0.0.0.0/0            0.0.0.0/0           tcp spt:3085
    0     0 ACCEPT     tcp  --  ppp1   eth0    0.0.0.0/0            0.0.0.0/0           tcp dpt:3085

Chain OUTPUT (policy DROP 8304 packets, 547K bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     icmp --  *      eth2    0.0.0.0/0            0.0.0.0/0
17697 1263K ACCEPT     0    --  *      *       127.0.0.1            0.0.0.0/0
 117K  126M ACCEPT     0    --  *      eth0    0.0.0.0/0            0.0.0.0/0
   29  2092 ACCEPT     0    --  *      eth2    0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       192.168.0.1          192.168.0.0/24      tcp spt:22
5873K 1882M ACCEPT     0    --  *      ppp0    0.0.0.0/0            0.0.0.0/0
  429 85070 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp spt:22
    0     0 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:22
   61  5526 ACCEPT     icmp --  *      ppp1    0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp spt:20
    0     0 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp spt:21
    0     0 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp spt:110
    2    80 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp spt:25
    0     0 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:110
    0     0 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:25
97648   13M ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:80
  188  203K ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp spt:80
   70 12962 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:443
    0     0 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp spt:443
   24  1730 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp spt:53
   13  2641 ACCEPT     udp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           udp spt:53
    0     0 ACCEPT     tcp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           tcp dpt:53
   32  2265 ACCEPT     udp  --  *      ppp1    0.0.0.0/0            0.0.0.0/0           udp dpt:53




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

# iptables -vnL -t nat
Chain PREROUTING (policy ACCEPT 8846 packets, 541K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 854 packets, 80705 bytes)
 pkts bytes target     prot opt in     out     source               destination
   10   711 SNAT       0    --  *      eth2    0.0.0.0/0            0.0.0.0/0           to:192.168.1.10
 5553  330K SNAT       0    --  *      ppp1    0.0.0.0/0            0.0.0.0/0           to:88.147.149.198
    0     0 MASQUERADE  0    --  *      ppp1    0.0.0.0/0            0.0.0.0/0           OWNER UID match 13

Chain OUTPUT (policy ACCEPT 14238 packets, 884K bytes)
 pkts bytes target     prot opt in     out     source               destination





~# ip rule ls
0:      from all lookup 255
32765:  from all fwmark 0x1 lookup inet_vt
32766:  from all lookup main
32767:  from all lookup default




~# ip route ls t inet_vt
default via 88.147.128.69 dev ppp1


# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
88.147.128.69   0.0.0.0         255.255.255.255 UH    0      0        0 ppp1
88.147.128.69   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
213.177.98.180  88.147.128.69   255.255.255.255 UGH   0      0        0 ppp0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
82.116.44.0     88.147.128.69   255.255.252.0   UG    0      0        0 ppp0
212.193.32.0    88.147.128.69   255.255.240.0   UG    0      0        0 ppp0
88.147.128.0    88.147.128.69   255.255.128.0   UG    0      0        0 ppp0
205.188.0.0     88.147.128.69   255.255.0.0     UG    0      0        0 ppp0
64.12.0.0       88.147.128.69   255.255.0.0     UG    0      0        0 ppp0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth2




# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1B:FC:F4:E2:83
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21b:fcff:fef4:e283/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:89192 errors:0 dropped:0 overruns:0 frame:0
          TX packets:121739 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15118802 (14.4 MiB)  TX bytes:127739380 (121.8 MiB)
          Interrupt:23 Base address:0x6000

eth1      Link encap:Ethernet  HWaddr 00:02:B3:91:17:1F
          inet addr:192.168.2.10  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::202:b3ff:fe91:171f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6447015 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6018154 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6234744383 (5.8 GiB)  TX bytes:2052309510 (1.9 GiB)

eth2      Link encap:Ethernet  HWaddr 00:08:A1:7C:0A:B3
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::208:a1ff:fe7c:ab3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1272 errors:0 dropped:0 overruns:0 frame:0
          TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:104542 (102.0 KiB)  TX bytes:3522 (3.4 KiB)
          Interrupt:19 Base address:0xe800

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:17808 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17808 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1270803 (1.2 MiB)  TX bytes:1270803 (1.2 MiB)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:88.147.ip.fos  P-t-P:88.147.128.69  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:6336608 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5904661 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:5978953498 (5.5 GiB)  TX bytes:1906253545 (1.7 GiB)

ppp1      Link encap:Point-to-Point Protocol
          inet addr:88.147.ip.inet  P-t-P:88.147.128.69  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:102840 errors:0 dropped:0 overruns:0 frame:0
          TX packets:105952 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:113656812 (108.3 MiB)  TX bytes:13573500 (12.9 MiB)


интерфейс ppp0 - локалка провайдера.
ppp1 - интернет, к которому надо прибить гвоздями сквида.
eth1 - порт модема для ppp0 и ppp1.
eth2 - порт рутера во второе подключение.

как только пишу route add default gw 1921.68.1.1 dev eth2 сквид не может связаться ни с одним сервером

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

Забей следующее правило первым:
iptables -t nat -I POSTROUTING -m owner --uid-owner 13 -o ppp1 -j MASQUERADE

>как только пишу route add default gw 1921.68.1.1 dev eth2 сквид не может связаться ни с одним сервером
ifconfig говорит что у тебя eth2 192.168.1.10!

Дай вывод:
cat /etc/resolve.conf
iptables -vnL -t mangle

У тебя есть локальный dns? Возможно правила в таблице mangle заворачивают пакеты к dns серверу, по-этому squid не может узнать айпи сайта!
У сквида uid точно 13?
Пользуйся tcpdump -i ppp1 -p , увидишь активность сквида.

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

днс локальный, работает, сквиду приказано обращаться к нему.

eth2 действительно 192.168.1.10 - это интерфейс к рутеру, за ним нат в интернет.

у сквида точно 13 или proxy, что одинаково.

tcpdump говорит, что пакеты ОТ сквида уходят наружу, но ответы обратно не приходят, поэтому все помирает.

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

>днс локальный, работает, сквиду приказано обращаться к нему.
То-есть? Ты явно ему указал в конф. файле? Насколько я знаю, сквид читает список resolve.conf и может напрямую обращатся к перечисленным днс серверам.

>tcpdump говорит, что пакеты ОТ сквида уходят наружу, но ответы обратно не приходят, поэтому все помирает.
Мистика! Исходящий адресс у пакетов какой? Почему нет ответов?

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