Привет всем!
Есть Linux-сервер (RH70, 2.4.1) с тремя сетевыми картами.
eth1 - 213.248.17.43 - имеет твердый IP-адрес и смотрит в Интернет.
eth0 - 172.16.1.2 - обеспечивает хождение юзеров сети 172.16.1.0 в И-нет.
eth2 - 172.16.2.2 - для хождения локалки 172.16.2.0 в И-нет плюс на этом адресе и порту 3128 жестко сидит Squid/2.4.PRE-STABLE2.
Проблема: надо грамотно считать общий входящий через eth1 траффик и входящий траффик каждого юзера. Сейчас я все организовал так (пример юзера 172.16.1.201):
#маскарадинг для юзера
/sbin/iptables -t nat -A POSTROUTING -s 172.16.1.201 -d ! 172.16.0.0/16 -o eth1 -j SNAT --to-source 213.248.17.43
#Общий транзитный траффик в мои локалки
/sbin/iptables -A FORWARD -s ! 172.16.0.0/16 -i eth1
#Общий входящий на сервер траффик (например, входящий на Squid)
/sbin/iptables -A INPUT -s ! 172.16.0.0/16 -i eth1
#входящий траффик юзера со всего, кроме Squid.
/sbin/iptables -A FORWARD -s ! 172.16.0.0/16 -d 172.16.1.201 -i eth1
#входящий траффик юзера со Squid
/sbin/iptables -A OUTPUT -s 172.16.2.2 -d 172.16.1.201
Траффик сбрасываю командой:
/sbin/iptables -L -v -n
А проблема вот в чем. Когда я считаю общий траффик, то мои данные почти на 100% совпадают с данными провайдера. (Почти - неучет копеечного маскарадинга).
Далее - суммирую данные по всем юзерам и итоговая сумма СТРОГО РАВНА моим (и провайдера!) данным по общему траффику! Будто и Squid не работает!
Я-то рассчитывал, что сумма траффика по всем юзерам будет значительно больше общего траффика, проходящего через eth1.
А пока на 5 Gb входящего траффика удается сэкономить не более 100-200Мb. А частенько экономии вообще нет :((
Подскажите - может где происходит неучет информации по юзерам? Где лоханулся?
P.S. Баннеры по политическим соображениям обрезать не могу.