扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
网络管理员的工作是很复杂的,只要网络出现异常,网络管理员就会想救火队员一样忙,他们不仅要负责安装、维护HUB、交换机、路由器、防火墙、IDS(IPS),而且要确保这些部件全部都能有效协同工作,当然完成这些工作是在一定预算范围内完成。如今,经济危机导致IT开支缩减,这种预算通常会比较少。过去在网络性能工具上公司必须花费大量资金购买商业的监控软件如Cisco works 2000 、Hp Open View。而本文的目标就是向大家介绍些用于帮助监视网络并排除网络故障的基于Unix/Linux的免费开源工具,助你一臂之力。
一、定义网络性能
大多数网络性能工具都是通过四个指标来度量网络性能:可用性、响应时间、网络利用率、网络吞吐量
1.可用性:如果网络不通了,那么你遇到的问题就不仅仅是网络性能问题,测试网络可用性最简单的方法是用ping命令,尽管大多数网管员都知道什么是ping程序,不过很少有人知道使用ping去执行高级测试命令选项
例如下面的代码可以自动搜索到当前网段所有在线的主机的NetBios名,并记录到指定文本文件中。
#set -x cat /dev/null > record.txt nmblookup \*|grep '<00>'|awk '{print $1}' >record.txt #ping -c 2 -b 192.168.0.255|grep 64|awk '{print $4}'|sed -e 's/://g'>record.txt . /etc/bashrc NO=`cat record.txt|wc -l` cat /dev/null > result cat /dev/null > netbios_name color black_green cat <You will try $NO addressesEOF#color black_whiteecho "press return to continue"read testwhile read ip_addrdoecho "We will try to test:$ip_addr"nmblookup -A $ip_addr |grep '<00>- [B|M]'|awk '{print $1}' >>netbios_namesmbclient -I $ip_addr -M `nmblookup -A $ip_addr |grep '<00>- [B|M]'|awk '{print $1}'` << EOFEOFdone < record.txt |
尽管发送带个的ping数据包给远程主机可以确定网络路径的可用性,但执行单一的ping命令本身不是网络性能的最佳指示器。如何收集更多的信息才能确定客户端和服务器之间的连接性?默认情况下,Unix的ping会持续发送ping给指定的远程主机,直到管理员按下Ctrul+C,另外你还可以使用ping命令中的-c选项,制定特定数量的ping 包。再一个与度量可用性相关的问题是ping请求中数据包的大小。我们都知道Cisco交换机有三类数据包缓冲区:小型数据包、中型数据包、大型数据包。要测试这些网络设备就要发出不同大小的数据包。在UNIX系统中默认情况下ping 工具使用的数据包大小是64字节,其中56字节是数据,其余8字节是ICMP 头信息,你可以使用ping 加-c 开关来改变数据包大小,但别想试图超过1500字节。
2.响应时间
为了个更精确描述网络性能,必须了解数据包在网络中的传输华乐多长时间,这就是所谓的响应时间。我们可以轻松的从ping 那里显示输出中看到每个发出的ping包,回程响应时间。以ms为单位,一般而言内部100兆LAN响应时间小于1ms,WAN连接,响应时间小于300ms,不过大家注意所有Windows系统所显示的时间最短就是小于1ms,而Unix/Linux/Bsd系统则会精确到0.01ms。 在具有冗余路径的网络中,经常希望能确定数据包在给定时刻所经过的路径,如果发现数据包没有被发送到最高效的路径上,那么可以对route进行些简单的配置,以缩短响应时间。这是我们可以使用traceroute命令,如下图。
图1 点击图片看大图 |
上述图像显示了沿着通往目的地主机的路径上,响应到期测试数据包的每个路由器。并显示回程响应时间。
3.网络利用率
计算网络利用率要求知道在设定的期间内网络所处理的网络流量的字节数是多少,在计算全双工连接的接口带宽时,更准确的方法是分别测量输入利用率和输出利用率如下式所示: 输入利用率=(ifInOctets×8×100)/((秒数) *IfSpeed)
输出利用率=(ifOutOctets×8×100)/((秒数) *IfSpeed)
对于半双工来说,在计算利用率时使用公式(ifInOctets+?ifOutOctets)/((秒数) IfSpeed)×8×100
ifInOctets 表示输入流量的字节数。
ifOutOctets 表示输出量的字节数。
IfSpeed 表示接口速率。
4.网络吞吐量
确定了网络吞吐量,网管员就可以找出影响客户端与服务器之间给定网络连接性能的网络瓶颈。找出网络瓶颈通常不会是件容易的事在复杂网络中,客户与服务器之间的路径上可能会有多个网络设备,取定网络吞吐量最困难的部分就是计算机每个中间连接对整个端对端网络连接的影响。
图2 点击图片看大图 |
二、观察网络流量
观察在网络上穿行的陆良可以获得有关网络健康 的大量信息。下面我在介绍一些unix主机上,捕获流量的工具。Unix下最流行的数据包捕获库是libpcap, libpcap的英文意思是 Packet Capture library,最新版本是libpcap-0.9.8。下载并安装libpcap库之后,你就可以用他来编译要求采用混合模式访问网络的程序了。下面介绍两个常用软件。
1.Tcpdump程序
大多数 Unix分支都包括tcpdump,通常需要root权限才能运行。他的详细使用方法可以在网上查到。
图3 点击图片看大图 |
2.Ethereal程序
Ethereal程序是一个图形化的网络监视程序,在unix和windows环境下都给可以运行,该程序实用libpcap库或winpcap库从主机网络接口中捕获数据包,他实用GTK+图形库生成自己的窗口和对话框,实用Glib库为GTK提供附加的图形库,ucd-snmp库提供SNMP解码功能
图4 点击图片看大图 |
图5 点击图片看大图 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者