Ipv6
監控 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 的補充。
我已經這樣做了,並且已經有一段時間了,使用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
是停止需要以root權限執行的munin外掛;如果您不介意這樣做,您可以讓外掛通過呼叫iptables
自身來直接獲取數據包計數。這些計數不會在重新啟動後繼續存在(因此上圖中的額外下拉為零),但如果您將伺服器設置為在重新啟動時保存
iptables
規則和數據包計數,這不會影響您。