Перенаправление трафика :http/s на SQUID

[Удален]
4612

Мне очень нужно экономить трафик, так как стоит дорого (180$ за 5 GB). Поэтому пришла мысль попробывать часть используемого трафика пропускать через SQUID и как можно больше там его кешировать.

Основное ограничение трафика уже настроено средствами IPTABLES и модуля QUOTA, при достижении лимита трафика, включается политика DROP и пакеты отбрасываются.

Сеть такая: Инет идёт через 3G Router(192.168.1.1)- это wlan0, на нём запущен DHCP и DNS сервер. На целевой машине, т.е. этой, которая будет являтся роутером и ограничителем трафика, wlan0 имеет адресс 192.168.1.110(прописан статически, dns/gw 192.168.1.1). Второй интерфейс, это wlan1, который Инет не имеет(беспроводной, но это не столь важно), вот к нему, подсоединено несколько компьютеров, которым нужно ограничить трафик. Адресс wlan1 целевой машины(роутера)- 172.16.1.110 (dns и шлюз не прописаны). Далее, в качестве свитча в wlan1, выступает беспроводной роутер, который уже разветляет сеть и к которому подключены машины, которым надо ограничить Инет: 172.16.0.101 172.16.0.102 172.16.0.103..... ит.д.

#!/bin/bash

#wlan0 has internet and wlan1 not
#wlan0 192.168.1.0
#wlan1 172.16.0.0
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -t nat -F OUTPUT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# allow local loopback connections
iptables -A INPUT -i lo -j ACCEPT

# drop INVALID connections
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

# allow all established and related
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#allow pings
iptables -A INPUT -p icmp -j ACCEPT
#iptables -A FORWARD -p icmp -j ACCEPT

#QUOTA for iPs in wlan1
iptables -A FORWARD -s 172.16.1.101 -m quota --quota 3146000 -j ACCEPT
iptables -A FORWARD -d 172.16.1.101 -m quota --quota 13636000 -j ACCEPT
iptables -A FORWARD -s 172.16.1.102 -m quota --quota 3146000 -j ACCEPT
iptables -A FORWARD -d 172.16.1.102 -m quota --quota 13636000 -j ACCEPT
iptables -A FORWARD -s 172.16.1.103 -m quota --quota 3146000 -j ACCEPT
iptables -A FORWARD -d 172.16.1.103 -m quota --quota 13636000 -j ACCEPT
iptables -A FORWARD -s 172.16.1.104 -m quota --quota 3146000 -j ACCEPT
iptables -A FORWARD -d 172.16.1.104 -m quota --quota 13636000 -j ACCEPT
iptables -A FORWARD -s 172.16.1.105 -m quota --quota 3146000 -j ACCEPT
iptables -A FORWARD -d 172.16.1.105 -m quota --quota 13636000 -j ACCEPT
iptables -A FORWARD -s 172.16.1.113 -m quota --quota 104857600 -j ACCEPT
iptables -A FORWARD -d 172.16.1.113 -m quota --quota 104857600 -j ACCEPT

# log all other attempted out going connections
iptables -A OUTPUT -o wlan0 -j LOG
iptables -A FORWARD -j LOG

# default is to DROP out-going connections

# set up IP forwarding and nat
iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to 192.168.1.110

еперь нужно настроить IPTABLES так, чтобы он пускал трафик с сети 172.16.0.0 через SQUID, я так полагаю что есть смысл кешировать только вебстраницы, а трафик типо от skype и icq можно пускать напрямую.

Да, и хотелось бы сделать это так, чтобы не пришлось вмешиваться в настройку компьютеров в сети 172.16.0.0

Вооьщем бился со SQUID, оказывается, трафик FORWARD не проходит в него:

Мне нужно переделывать Квоты, думаю что через REDIRECT, но как ?

P.S. Готов выслушать другие предложение по моему вопросу:confused:

M
На сайте с 01.12.2009
Offline
235
#1
Администратор Linux,Freebsd. построения крупных проектов.
hostmaster
На сайте с 26.05.2009
Offline
26
#2

для начала, придется забыть про кеширование всего что не HTTP, т.е. например про https забыли сразу. проксировать можно, но не в "прозрачном/transparent" режиме и без кеширования.

hostmaster добавил 12.07.2011 в 13:10

для экономии дорогого 3G трафика попробуйте установить ziproxy на внешнем сервере (vds нынче стоят дешево) и настроить в squid его в качестве upstream proxy.

настройте кеширующий DNS сервер долгощивущим кешем например pdnsd

подкрутите squid чтобы он агресивнее испрользовал кэш, посмотрите в сторону wwwoffle

I'm lost without tcpdump
[Удален]
#3
для начала, придется забыть про кеширование всего что не HTTP, т.е. например про https забыли сразу. проксировать можно, но не в "прозрачном/transparent" режиме и без кеширования.

hostmaster добавил 12.07.2011 в 13:10
для экономии дорогого 3G трафика попробуйте установить ziproxy на внешнем сервере (vds нынче стоят дешево) и настроить в squid его в качестве upstream proxy.

настройте кеширующий DNS сервер долгощивущим кешем например pdnsd

подкрутите squid чтобы он агресивнее испрользовал кэш, посмотрите в сторону wwwoffle

спасибо большое, реализовал уже. вместо 5 тб уходит 3,2 ТБ. Работает быстро, но запросы чуть-чуть медленее.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий