- 论坛徽章:
- 0
|
aix之降龙18掌(欢迎跟贴,拒绝灌水)
继续一个
诊断网络问题的AIX工具介绍
本文讨论了一些用于检查网络连接或网络性能问题的AIX的标准命令。有时候,用户无法通过客户端应用访问到服务器,或者遇到性能方面的问题。这时如果检查应用和系统本身不存在问题的话,系统管理员可能就需要检查网络或系统的网络设置以确定问题所在。AIX提供的标准的工具可以使管理员快速确定服务器是否有网络配置或网络方面的问题。这些工具包括netstat和tcpdump命令,它们可以使管理员分离出从连接丢失到更为复杂的网络性能方面的问题。
1. 基本工具和OSI-RM
可以用来做快速检查的AIX命令包括:lsdev, errpt, netstat和tcpdump。使用这些命令,可以检查系统网络配置中属于开放系统互连参考模型(OSI-RM)中较底层的部分。使用OSI-RM,可以检查问题的一些普遍存在的要点,而不需要花费过多的时间查看可能由于应用中网络连接丢失而引起的一些莫名其妙的错误。下表列出了开放系统互连参考模型及对应的一些检测工具:
开放系统互连参考模型
模型层
功能 检测工具
7.应用层
组成了使用网络的应用程序
6.表示层
规范应用中的数据表示
5.会话层
管理应用之间的会话
4.传输层 将数据整理归入段中,并可靠地传输至上一层 netstat -s
iptrace
tcpdump
3.网络层
为上层管理网络间的连接 netstat -in, -rn, -s, -D
topas
iptrace
tcpdump
2.数据链路层 提供物理链路间可靠的数据传输 netstat -v, -D
iptrace
tcpdump
1.物理层
定义网络介质的物理属性 netstat -v, -D
lsdev -C
errpt
iptrace
tcpdump
2. 使用netstat命令
netstat -v 命令可以帮助管理员确定服务器或网络中是否需要做一些修正的工作。该命令的输出与entstat, tokstat, fddistat, 和atmstat命令输出的组合是一致的。netstat -v 命令检测了OSI-RM中的物理层和数据链路层。因此,该命令应该是在确认系统无硬件故障(可使用errpt 和 lsdev -C 命令检查系统的硬件故障)后所首先使用的命令之一。netstat -v 命令的输出可指出是否需要修改网卡的配置或调整网卡的参数以改善通讯使数据更好地进行传输。
下面的例子说明了netstat -v 命令如何帮助确定一个系统在它的网络中的通讯问题。
实例环境:
假定一个系统的特征如下:
* IBM 4-Port 10/100 Mbps Ethernet PCI Adapter (ent0 - ent3)
* Onboard IBM 10/100 Mbps Ethernet PCI Adapter (ent4)
* 四口卡上连了一根网线
* 对应四口卡上的ent0的en0接口,配置了一个IP地址
在上述环境中存在这样的问题:虽然对en0进行了TCP/IP配置,该系统仍不能ping通所在网络中的任何系统。
例:
(1) 使用lsdev -C 和 errpt 命令确认网卡和接口没有问题;即当使用lsdev -C 命令查看时,网卡和对应接口的状态为Available,使用errpt命令查看时,错误报告中没有对应于网卡的硬件错误。
(2) 使用netstat -in (接口配置) 命令和 netstat -rn (路由配置) 命令检查IP配置;即接口的IP地址和缺省网关的配置等是否正确。
(3) 在上面两步基本操作进行完之后,下一步是使用netstat -v 命令查看对于网卡操作的特定数据。如果不使用过滤器的话,netstat -v 命令将显示出非常多的数据,因此本例中使用netstat -v ent0 命令以限制输出的内容如下:
# netstat -v ent0 | grep -p "Specific Statistics"
IBM 4-Port 10/100 Base-TX Ethernet PCI Adapter Specific Statistics:
------------------------------------------------
Chip Version: 26
RJ45 Port Link Status : down
Media Speed Selected: Auto negotiation
Media Speed Running: 100 Mbps Full Duplex
Receive Pool Buffer Size: 384
Free Receive Pool Buffers: 128
No Receive Pool Buffer Errors: 0
Inter Packet Gap: 96
Adapter Restarts due to IOCTL commands: 1
在上面的输出项中,“RJ45 Port Link Status”行的输出结果表明网卡是否有到网络的连接。在本例中,“RJ45 Port Link Status”行的输出结果为“down”,说明网卡ent0 不存在到网络的连接。
(4) 我们再运行netstat -v 命令,这一次不使用过滤器,以便检查所有网卡的端口连接状态。例如,输入命令如下:
# netstat -v | more
从输出中查看“Specific Statistics”对应的内容。在本例中我们查看到ent3 的端口连接状态为“up”,这一信息说明了网线连接到了四口卡上的错误端口上,因此将网线重新连接到正确的端口上可以解决本例中的网络问题。
3. 使用tcpdump 命令
有时候,netstat 工具(netstat -in, netstat -rn 和 netstat -v)无法确定一些网络连接问题,这时,我们需要用到tcpdump 命令。
例:
假设服务器上分别配置了四块网卡,并分别连到四个网段中。两个网段工作正常(VLAN A 和 B),但另外两个网段中(VLAN C 和 D)不能建立到服务器的连接。netstat -v 命令的输出显示数据到达了所有的四块卡,并且没有错误被记录,这说明在物理层和数据链路层的配置已处于工作状态。在这种情况下需要检查传入的数据本身。可以使用tcpdump 工具在线检查数据本身以帮助确定连接问题。
tcpdump 命令将输出很多数据,但对于快速分析问题来说,只需要查看输出中的一些基本的部分,如IP地址。
在本例中,en2的IP地址为 9.3.6.225,配置在VLAN C 中(IP 网络 9.3.6.224, 子网掩码 255.255.255.240);en3的IP地址为 9.3.6.243,配置在VLAN D 中(IP 网络 9.3.6.240, 子网掩码 255.255.255.240)。
(1) 运行下面的命令检查 en2上的数据传输:
# tcpdump -i en2 -I -n
输出类似下面的显示:
-TIME STAMP- -------SOURCE IP- ---DESTINATION IP-----FLAG --ADDITION INFO-
09:04:27.313527323 9.3.6.244.23 >; 9.3.6.241.38160: P 7:9(2) ack 8 win 65535
09:04:27.402377282 9.3.6.245.45017 >; 9.53.168.52.23: . ack 24 win 17520 (DF) [tos 0x10]
09:04:27.418818536 9.3.6.241.38160 >; 9.3.6.244.23: . ack 9 win 65535 [tos 0x10
09:04:27.419054751 9.3.6.244.23 >; 9.3.6.241.38160: P 9:49(40) ack 8 win 65535
09:04:27.524512144 9.3.6.245.45017 >; 9.53.168.52.23: P 4:5(1) ack 24 win 17520 (DF) [tos 0x10]
09:04:27.526159054 9.53.168.52.23 >; 9.3.6.245.45017: P 24:25(1) ack 5 win 2482 (DF)
09:04:27.602600775 9.3.6.245.45017 >; 9.53.168.52.23: . ack 25 win 17520 (DF) [tos 0x10]
09:04:27.628488745 9.3.6.241.38160 >; 9.3.6.244.23: . ack 49 win 65535 [tos 0x10]
(2) 按 Ctrl-C 停止输出的显示:
^C
38 packets received by filter
0 packets dropped by kernel
通过查看上面输出中“-SOURCE IP-”对应的内容(以粗体标出),我们可以得到有用的数据。上面的输出显示出ent2 物理上连接到了错误的网段中。源IP地址应该在9.3.6.22x 的范围中,而不是9.3.6.24x 的范围中。因此交换连接在ent2 和ent3 网卡上的网线可能解决存在的问题。如果问题不能解决,则需要重新配置交换机的端口以进行正确的数据传输。
通过使用netstat -v 和 tcpdump 命令获得的信息,可以更好地确定应进一步采取何种操作解决问题。 |
|