Учет Shorewall / iptables между конкретными сетями?
У меня есть два сервера на двух разных IP, допустим, они: 1.2.3.4 и 5.6.7.8. Кроме того, они оба работают на некоторых виртуальных машинах, у всех из которых есть частные IP 10.0.0.*. Теперь эти два сервера имеют только один интерфейс Ethernet каждый. Я хочу отслеживать общий интернет-трафик на / с этих машин из внешнего мира, но я НЕ хочу подсчитывать трафик между двумя машинами или между виртуальными машинами. Как мне настроить правило учета, используя либо учетную конфигурацию shorewall, либо простые правила iptables, чтобы отслеживать это?
В настоящее время у меня нет возможности узнать, какую пропускную способность интернета я использую, поскольку, когда я смотрю на общую статистику, она включает трафик между моими двумя серверами.
В идеале, конечно, стоит спросить роутер, но сейчас это недоступно.
1 ответ
Вы могли бы сделать что-то вроде этого:
TRACK_INBOUND="TRACKING_IN"
TRACK_OUTBOUND="TRACKING_OUT"
#Space separated lists of hosts(1.2.3.4),networks(1.2.3.x/y) to separate
TRACKING_IGNORE="1.2.3.4 5.6.7.8"
iptables -N $TRACK_INBOUND
iptables -F $TRACK_INBOUND
iptables -I INPUT -j $TRACK_INBOUND
for ignore in $TRACKING_IGNORE; do
iptables -A $TRACK_INBOUND -s $ignore -j RETURN
done
iptables -A $TRACK_INBOUND -j RETURN
iptables -N $TRACK_OUTBOUND
iptables -F $TRACK_OUTBOUND
iptables -I OUTPUT -j $TRACK_OUTBOUND
for ignore in $TRACKING_IGNORE; do
iptables -A $TRACK_OUTBOUND -d $ignore -j RETURN
done
iptables -A $TRACK_OUTBOUND -j RETURN
BYTES_IN=$(iptables -L $TRACK_INBOUND -nxv | tail -n 1 | awk '{print$2}')
BYTES_OUT=$(iptables -L $TRACK_OUTBOUND -nxv | tail -n 1 | awk '{print$2}')
iptables -L $TRACK_INBOUND -nv
Chain TRACKING_IN (4 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 1.2.3.4 0.0.0.0/0
0 0 RETURN all -- * * 5.6.7.8 0.0.0.0/0
123K 15M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
iptables -L $TRACK_OUTBOUND -nv
Chain TRACKING_OUT (4 references)
pkts bytes target prot opt in out source destination
0 0 RETURN all -- * * 0.0.0.0/0 1.2.3.4
0 0 RETURN all -- * * 0.0.0.0/0 5.6.7.8
1116 679K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0