Ситуация почти классическая. Есть компьютер с 3-мя сетевыми интерфейсами: один в инет, один в локалку, а третий для соединения с удаленной сетью. Этот компьютер должен являтся для локалки основным шлюзом: т.е. раздавать инет (с подсчетом) и давать доступ в удаленную сеть (бесплатно). Поставил на комп Debian 4.0 r0, squid из этого же дистрибутива и NeTAMS 3.4 rc2. Настроил iptables. Короче клиенты могут лазить в инет через нат и через squid. И весь трафик считает нетамс. С удаленной сетью ещё толком не разбирался, потому что возникла проблема: трафик сквида почему то считается в 2 раза + еще чуть чуть больше чем тот же трафик (т.е. та же страничка) через нат. Причем дело тут не в нетамсе, потому что пробовал startgazer и ipq_traffic - аналогично в 2 раза + еще чуть чуть больше. И на Debian 3.1 r4 тоже самое. Перепробовал все. Облазил инет. Ничего дельного не нашел. Подозреваю, что это либо неправильная настройка squid либо iptables.
Может здесь мне кто нибудь поможет.Привожу конфигурацию iptables:
# Описание сетевых интерфейсов
INET_IP="1.2.3.4"
INET_IFACE="eth1"
LAN_IP="192.168.1.7"
LAN_IFACE="eth0"
LAN_IP_RANGE="192.168.1.0/24"
LO_IP="127.0.0.1"
LO_IFACE="lo"
RLAN_IP="192.168.4.2"
RLAN_IFACE="eth2"
LLAN_IP_RANGE="192.168.0.0/16"
# описание местонахождения iptables и route
IPTABLES="/sbin/iptables"
ROUTE="/sbin/route"
# установка политик по умолчанию
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
# правила iptables взятые из tutorial
$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed_tcp_packets
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A allowed_tcp_packets -p TCP --syn -j ACCEPT
$IPTABLES -A allowed_tcp_packets -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed_tcp_packets -p TCP -j DROP
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --destination-port 22 -j allowed_tcp_packets
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
# правила таблицы filter
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $RLAN_IP -j ACCEPT
$IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $INET_IFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
$IPTABLES -A INPUT -p ALL -i $RLAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -i $RLAN_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets
$IPTABLES -A OUTPUT -p ALL -o $LO_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o $LAN_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o $INET_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -o $RLAN_IFACE -j ACCEPT
# правила таблицы nat
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -s $LAN_IP_RANGE -d ! $LLAN_IP_RANGE -j SNAT --to-source $INET_IP
# разрешить forward
echo "1" > /proc/sys/net/ipv4/ip_forward
# для удаленной сети
$ROUTE add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.4.1
$ROUTE add -net 192.168.4.0 netmask 255.255.255.0 gw 192.168.4.1
# заворот пакетов для подсчета в нетамс
$IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -d ! $LLAN_IP_RANGE -s 192.168.1.11 -j QUEUE
$IPTABLES -t mangle -A POSTROUTING -o $LAN_IFACE -s ! $LLAN_IP_RANGE -d 192.168.1.11 -j QUEUE
$IPTABLES -t mangle -A PREROUTING -p TCP -i $LAN_IFACE -d $LAN_IP -s 192.168.1.11 --dport 3128 -j QUEUE
$IPTABLES -t mangle -A POSTROUTING -p TCP -o $LAN_IFACE -s $LAN_IP -d 192.168.1.11 --sport 3128 -j QUEUE
Пробовал заворачивать пакеты в нетамс из таблицы filter - результат аналогичный.
Заранее спасибо!