Мониторинг IPv4 против трафика IPv6

В нашем бизнесе работает полнофункциональная сеть с двумя стеками. Кто-нибудь нашел простой инструмент для мониторинга соотношений трафика IPv4 против IPv6 на данном хосте? Когда я говорю "просто", я имею в виду демон / сервис, похожий на "vnstat"

Идеальный отчет в его простейшей форме будет выглядеть примерно так:

                 Total     IPv4          IPv6          Ratio
This Month:      300gb     100gb (33%)   200gb (66%)   1:2
This Week:       5gb       1gb (20%)     4gb (80%)     1:4
Today:           1.2gb     400mb (33%)   800mb (66%)   1:2

Простите, если какая-то из моих математик не так, поэтому я хочу инструмент;)

В первую очередь меня интересуют хосты Linux (CentOS 6), но любые инструменты Windows (2008R2) тоже были бы полезны.

Я нашел тему, предлагающую netstat -s -6 | grep -i octets но -6 опция недействительна в CentOS 6; Я предполагаю, что это недавнее дополнение к netstat.

2 ответа

Решение

Я уже делаю это и уже некоторое время использую munin и собственный плагин, который я написал сам, который получает данные от iptables правила аудита. Он работает на коробке C6, так что вы должны иметь возможность погрузить его на место, если у кого-то нет идей получше. Это не простая однострочная строка, которую вы хотели, но она работает и выдает такие данные:

Мунин График пропускной способности сети

Плагин достаточно прост, он просто берет данные из двух плоских файлов, созданных в /var/tmp:

#!/bin/bash
#
# (c) Gatekeeper Technology Ltd., 2013
# May be used under the terms of GPLv3 or, at your discretion, any later version

if [ "$1" = "config" ]; then

    echo 'graph_title Network Throughput'
    echo 'graph_category network'
    echo 'graph_info This is the total throughput on the NIC since the beginning of the calendar month, or the last reboot, whichever was mo
st recent.'
    echo 'graph_vlabel bytes'
    echo 'graph_args --logarithmic'
    echo 'in4.label       in v4'
    echo 'in4.colour      ff0000'
    echo 'out4.label      out v4'
    echo 'out4.colour     00ff00'
    echo 'in6.label       in v6'
    echo 'in6.colour      aa0088'
    echo 'out6.label      out v6'
    echo 'out6.colour     00aa88'
    echo 'total.label     total'
    echo 'total.colour    0000ff'
    exit 0
fi

out=`head -3 /var/tmp/audit.out.counts | tail -1 | awk '{print $2}'`
echo "out4.value $out"
in=`head -3 /var/tmp/audit.in.counts | tail -1 | awk '{print $2}'`
echo "in4.value $in"

out6=`head -3 /var/tmp/audit.out.v6.counts | tail -1 | awk '{print $2}'`
echo "out6.value $out6"
in6=`head -3 /var/tmp/audit.in.v6.counts | tail -1 | awk '{print $2}'`
echo "in6.value $in6"

total=$(($in+$out+$in6+$out6))
echo "total.value $total"

Запись в crontab, которая делает их похожими на это:

# output the audit rule counts for munin purposes
* * * * *  /sbin/iptables  -L AUDIT-I -n -x -v > /var/tmp/audit.in.counts
* * * * *  /sbin/iptables  -L AUDIT-O -n -x -v > /var/tmp/audit.out.counts
* * * * *  /sbin/ip6tables -L AUDIT-I -n -x -v > /var/tmp/audit.in.v6.counts
* * * * *  /sbin/ip6tables -L AUDIT-O -n -x -v > /var/tmp/audit.out.v6.counts
# and zero the counts once a month
0 0 1 * *  /sbin/iptables  -Z AUDIT-I
0 0 1 * *  /sbin/iptables  -Z AUDIT-O
0 0 1 * *  /sbin/ip6tables -Z AUDIT-I
0 0 1 * *  /sbin/ip6tables -Z AUDIT-O

и iptables правила сделаны со следующим /etc/sysconfig/iptables правила:

:AUDIT-I - [0:0]
:AUDIT-O - [0:0]
# audit input traffic
-A INPUT -i eth0 -j AUDIT-I
 [ALL OTHER INPUT RULES APPEAR HERE, AFTER THE AUDIT RULE]
# audit outbound traffic
-A OUTPUT -o eth0 -j AUDIT-O
 [ALL OTHER OUTPUT RULES APPEAR HERE, AFTER THE AUDIT RULE]
# AUDIT rules
-A AUDIT-I -p all
-A AUDIT-O -p all

Причина crontab участвует в том, чтобы остановить плагин munin, необходимый для запуска с привилегиями root; если вы не возражаете против этого, вы можете получить плагин для получения количества пакетов напрямую, вызвав iptables сам.

Счетчик не переживает перезагрузку (отсюда и дополнительное падение до нуля на графике выше), но если ваш сервер настроен на сохранение iptables правила и количество пакетов при перезагрузке, это не повлияет на вас.

Вы можете попробовать этот плагин Munv для IPv6 на GitHub:

https://github.com/MorbZ/munin-ipv6

Другие вопросы по тегам