- 论坛徽章:
- 0
|
架构如图
|-----------Router1------|
workstations-----gateway---- --Router2----Internet (N台Server ,public IP )
|-----------Router3------|
workstations有三个工作a,b,c,需连接到公网服务器A,B,C。己知条件如下:
1,有三条不同ISP的线路出公网
2,workstations的三个工作出公网的线路不固定。即三个Router上都可能有三个工作的流量
现在想分析a,b,c三个工作的实际需要带宽,具体实现方法:
sec=300
gw="gateway's ip"
server1="server1's ip"
while [ 1 ]
do
killall tcpdump
mv ip.packet ip.packet.1
tcpdump -w ip.packet -s 0 tcp or udp &
rrd_data=""
traffic=`tcpdump -r ip.packet.1 src $gw and dst $server1 -v| sed -e 's/.*, length: \(.*\))/\1/g' | awk -F " " '{print $1}'| sed -e's/)//g'| tr '\n' '+'`
traffic=`echo ${traffic}0 | bc`
traffic=`expr $traffic / $sec`
rrd_data=$traffic
echo $rrd_data >1.txt
echo $rrd_data >>2.txt
sleep $sec
done
利用此shell得到数据大小,然后根据数据大小用rrdtool画图。现在的问题是采到的数据和实际的流量出入非常大(和iftop比较),请各位大大支招怎样采集流量数据?或有现存的脚本提供。 |
|