Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1182538
  • 博文数量: 128
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 4870
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-19 14:28
文章分类

全部博文(128)

文章存档

2010年(2)

2009年(22)

2008年(104)

我的朋友

分类:

2008-09-11 11:20:44

全面掌握Solaris网络管理工具

 
   目前,由于UNIX操作系统的诸多优点,主流ISP基本采用UNIX作为提供服务的系统平台,其中占了其中的很大比例。网络管理工具范围广泛,本文从功能出发把网络管理工具分成不同的类,然后分类介绍这些软件工具。工具使用上难易程度相差较大,考虑到篇幅,这里仅作简单的介绍。首先介绍 10 自身携带的工具软件。

  一、状态监视工具

  1.ifconfig

  ifconfig在UNIX类操作系统内提供,一般用于设置、查询网络接口的参数或状态。使用它来查询每个接口的配置信息时,要使用-a选项。查看命令的输出结果,可以确定接口是否工作(UP),如果没有UP,就说明接口未开启,处于禁止状态。还可以查看到最大传输单元(MTU)为多少(对于以太网一般为1500B),是否支持BROADCAST(广播)、SIMPLEX(单播)和MULTICAST(多播或组播)或它们的组合方式等。

  2.ping及其替换工具

  ping命令用来检查是否可以到达目标节点,显示目标是否响应,以及收到响应所需的往返时间等。如果在传递过程中出现错误,ping命令将显示错误消息。ping在多种操作系统中提供(Windows和UNIX)。ping通过发送一个ICMPECHO请求包到目标,如果收到一个ICMPECHO响应包,说明目标是活动的,否则可以判断目标节点没有在线、网络路由设置出错或者目标使用了某些过滤器过滤了ICMP的ECHO报文。类似于ping的工具还有fping,可以并行地、多个主机同时检查,主要的特点是探测的目标设备列表可以存入文件中,然后用文件来控制操作。对于特殊情况,可以使用arping,它采用ARP请求和响应来探测,因此不会被阻塞,当然只适用于本地网络。利用arping可以很快找出某个IP地址对应的MAC地址,也能够反向查找。

  3.nslookup、dig和host

  这几个命令在UNIX和linux系统中使用,都可以进行域名的解析。nslookup使用交互方式查询域名与IP地址的映射关系。dig的功能是发送域名查询信息包到域名服务器,并获得结果。dig有两种工作模式:简单交互模式和批处理模式。简单交互模式用于简单的查询,而批处理模式则可以对包含多个查询条目的列表执行查询。host命令向域名服务器查询,获得本机或其他主机的域名。

  二、流量监视工具

  1. snoop命令

  这个工具都是通过捕捉网络的分组,然后按照不同的形式显示或输出这些分组。诊断网络故障的第一步就是收集信息。包括从用户收集一些反映问题本质的信息,也包括来自网络的信息。成功与否在很大程度上取决于收集信息的效率和所收集的信息的质量。分组捕捉与分析是诊断故障的最终方法,也是最复杂的方法,通过实时地收集分组数据,对流量加以分析,能够了解网络内部到底发生了什么事情。当然不当的使用也会对系统安全造成威胁,因为这些工具可能获得敏感的信息。

  这类工具有多种不同的名称,如分组嗅探器(PacketSniffer)、分组分析器(PacketAnalyzer)、协议分析仪(ProtocolAnalyzer)和流量监视器(TrafficMonitor)等。它们之间的主要差别是对捕捉到的分组所做的分析量的多少。如分组嗅探器是工作量最少的工具,而协议分析仪是工作量最大的工具,位于二者之间的是分组分析器工具。流量监视器以提供统计数据为主,有时也可能提供原始的分组数据。snoop属于分组嗅探器,tcpdump属于分组分析器,而ethereal属于协议分析仪。

  Solaris提供了snoop或etherfind,前者是后者的替代,后者在SunOS老版本中提供。下面是运行了snoop以后的输出:

[root@sol01 /]#snoop -c8
Using device /dev/pcn0 (promiscuous mode)
162.42.185.61.broad.xy.sn.dynamic.163data.com.cn -> xzxj         UDP D=24895 S=36819 LEN=1448
        xzxj -> 162.42.185.61.broad.xy.sn.dynamic.163data.com.cn UDP D=36819 S=24895 LEN=47
162.42.185.61.broad.xy.sn.dynamic.163data.com.cn -> xzxj         UDP D=24895 S=36819 LEN=1448
162.42.185.61.broad.xy.sn.dynamic.163data.com.cn -> xzxj         UDP D=24895 S=36819 LEN=1448
        xzxj -> 162.42.185.61.broad.xy.sn.dynamic.163data.com.cn UDP D=36819 S=24895 LEN=46
        xzxj -> 221.225.127.202 UDP D=26889 S=24895 LEN=91
121.57.104.8 -> xzxj         UDP D=24895 S=1991 LEN=889
222.94.63.225 -> xzxj         UDP D=24895 S=50654 LEN=463
8 packets captured
[root@sol01 /]#

 snoop本身能够运行在以太网环境下的solaris系统中,然后依靠网卡的混杂模式从网络中读 取流过的所有数据包,当然,这依赖于网络必须是共享式以太网(使用集线器),或者在交换机上 配置SPAN功能把所有流量镜像到snoop所运行的机器。如果网络是运行在除以上两者之外的交 换网络上的话,那么snoop只能够获取到广播数据,以及发往主机自身的数据。

三、路由监视工具

  1.traceroute

  traceroute的设计者为VanJacobson,通过巧妙地利用IP分组TTL值,让从源站到网络管理目标的路径中的路由器产生ICMP超时报错报文,从而了解路由的具体情况。traceroute第

  将TTL从1开始,逐个地增加,向目标发送3次UDP报文,其中的目的端口号为随机的不同的值,因此最终到达目标时,将返回一个ICMP的目标端口不可达的报文。

  2.arp

  arp表是设备内存储的关于IP地址和MAC地址的对应关系,每个设备都必须支持arp协议。可以发现,表中的每一项都是针对直接相连的节点或主机,即位于本地局域网的节点或主机,因为那些远程主机需要经过路由器才能到达,而不能直接连接。一些UNIX系统中查看当前的arp表使用的开关是-a,尽管不同系统之间有差别,但是主要内容是一致的。通过检查arp表,可以了解各个节点的MAC地址,从而知道设备的生产厂商。如果本地局域网的一些主机可以访问,而另一些却不能访问,那么arp问题就是首先要考虑的,不正确的arp解析将造成节点不能访问,或者时通时断(间歇性故障)。除了能够显示arp表之外,arp命令还可以增加、删除表项,设置静态表项,这些功能对于网络故障的纠错很有帮助。

  3.netstat

  可以说这是最有用的网络工具之一,可以列出与网络有关的核心数据结构的内容。可以按照TCP与UDP来分析通信状态,发现网络中的异常。如检查发送与接收队列的长度是否为0或接近0,否则说明存在某种故障。可以检查各个TCP连接的状态,发现连接中可能存在的问题。它还可以统计每个接口收发分组的情况,用于统计吞吐量。除了这些用途,netstat还可以显示设备的路由表,这可以用于解决路由问题。如果发现网络或主机不能到达,检查路由表就是一个比较有效的方法。一般地,系统的路由表表项的建立有4种途径:使用动态路由协议获得;通过ICMP的Rediect获得;使用ifconfig配置接口后建立;使用route命令以人工维护方式设置。显示路由表使用-r命令选项。

  四、GUI集成监控工具:性能监视器

  以上的是命令行工具,Solaris 还提供了一个在GUI界面下的工具:性能监视器(sdtperfmeter)。要想使所有的资源在经过线程优化的并行应用系统中具备顺畅的响应速度,就必须使用更为全面的性能监控工具,而传统的Unix工具集是不具备这一能力的。使用“性能监视器”可以监视工作站的活动和性能。可以在该可定制窗口中以图形方式显示若干个性能参数,如 CPU 利用率、磁盘活动、网络包,等等。您可以监视本地主机或远程主机的性能,设置彩色的活动阀值以在性能出现异常时向您发出警告,并将样例记录到文件中。 性能监视器可以工作在JDS或者CDE桌面下。本文以JDS桌面为例。

  1. 启动性能监视器

  单击“前面板”上的“性能监视器”控件。“性能监视器”打开并显示缺省图表(CPU 和磁盘活动)。

  2. 选择要显示的主机和参数

  选择以进行监视的参数可能取决于: 所运行的应用程序类型;网络;您对 UNIX 进程和系统装入的了解程度。不熟悉系统参数的用户通常选择显示 CPU 和磁盘使用情况。对于那些比较熟悉系统参数的用户,典型设置是显示 CPU 使用、磁盘使用、系统负载和包。如果担心网络通信拥塞,您可以显示每秒钟传送的网络包数目,并在运行网络密集型活动(如因特网浏览或远程操作)时监视此性能。如果“性能监视器”指示 CPU 使用率很高,则可以使用“进程管理器”来标识和中止错误的或 CPU 密集型的进程。如果在运行 CPU 密集型应用程序时退出系统,然后再登录回系统,则“性能监视器”的 CPU 显示可能表明 CPU 使用率非常高。意识到这一点后,可以使用“进程管理器”来中止任何错误的进程。

  3. 指定要监视的主机和参数

  从“选项”菜单中选择“设置”。“性能监视器”显示“设置”对话框。选择“远程”单选按钮以表明要键入远程主机的名称。键入系统名称(例如,jupiter)或远程主机的 IP 地址。数打开“查看”菜单以显示可用参数的列表。每个参数都有一个复选框,用来表明当前是否选定该参数以进行显示。选择或撤消选择相关的菜单项以显示或移除任何参数。可以显示任何参数组合。

   4. 更改参数的阀值

  从“选项”菜单中选择“设置”。“性能监视器”显示“设置”对话框,对于每个参数,该对话框中都包含一个“阀值“框。键入相关参数的新阀值,并单击“应用”。现在,底于新阀值的值将使用为低于阀值的值选择的颜色来显示,而高于该新阀值的值将使用为高于阀值的值选择的颜色来显示。网络封包缺省阀值: 16 /秒。

到处为止笔者介绍的是自己的网络管理工具,下面看看可以安装的第三方的网络管理工具。

1. 使用inetmenu 快速修改IP地址

  对于工作站而言,网络的配置需要根据环境经常做改动,比如不同的上网方式,不同的IP地址,不同的命名服务(NIS或DNS)等。如果你有这样的需求,推荐你使用 OpenSolaris提供的图形界面工具:inetmenu。

  inetmenu的下载地址: 。

  inetmenu的下载安装方法如下:

      #wget 
  # gunzip inetmenu-2.3.2.pkg.gz
  # pkgadd -d ./inetmenu-2.3.2.pkg

  inetmenu将安装在/usr/bin/目录。使用方法为,在X-Window的终端中运行命令:#/usr/bin/inetmenu即可。你可以选择上网方式和设置IP地址等,非常方便。使用inetmenu后,修改IP不需要去同时更改多个配置文件,也不需要进行sys-unconfig而重复设置其它信息了。

说明:inetmenu对网络文件的影响,缺省情况下,在启动计算机后,inetmenu将停止所有网卡的服务,/etc/nsswitch.conf被设置为files方式。

2.使用远程桌面实现和Windows的桌面连接

  使用rdesktop远程管理Vista

  rdesktop 是UNIX 和Linux 系统的一个远程桌面连接软件,它通过Microsoft Windows NT、Windows 2000 提供的终端服务(Terminal Services)以及WindowsXP 、Windows 2003 Server、Windows Vista的远程桌面服务(Remote Desktop),能在Unix系统下远程登录Windows的窗口系统并使用。

  下载安装rdesktop工具

  rdesktop程序可以上获取代码安装,非常方便。

  wget %2cREV%3d2006.09.13-SunOS5.8-i386-CSW.pkg.gz

  gunzip rdesktop-1.5.0%2cREV%3d2006.09.13-SunOS5.8-i386-CSW.pkg.gz

  pkgadd –d rdesktop-1.5.0%2cREV%3d2006.09.13-SunOS5.8-i386-CSW.pkg

 首先在Windows启动远程桌面,并且添加一个Solaris 10系统的存在的账号(如root用户)下面使用命令连接Windows桌面,命令如下:

#rdesktop -g 800*600 192.168.1.14 -d 24

  其中 “g 800*600”设置分辨率为g 800*600,“d 24”设置真彩24 位,192.168.1.14为 Windows 机器的IP 地址。另外rdesktop使用微软的RDP协议,仅能控制WinXP/2003/Vista系统,无法控制windows 98/me系统。接着系统会出现登陆对话框,通过口令验证即可开始进入Windows 桌面.通过#rdesktop-h得到使用的帮助。

3.使用iftop工具监控Solaris 服务器网卡的流量

  Iftop工具用来实时监看网络状态和各ip所使用的带宽。绝大多数的现代操作系统都提供了对底层网络数据包捕获的机制,在捕获机制之上可以建立网络监控(Network Monitoring)应用软件。网络监控也常简称为sniffer,其最初的目的在于对网络通信情况进行监控,以对网络的一些异常情况进行调试处理。但随着互连网的快速普及和网络攻击行为的频繁出现,保护网络的运行安全也成为监控软件的另一个重要目的。

  首先下载所有相关软件包:

      #wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/ncurses-5.6-sol10-x86-local.gz
  #wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/libpcap-0.9.8-sol10-x86-local.gz
  #wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/iftop-0.17-sol10-x86-local.gz

  其中libpcap 是 unix/linux 平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础。Libpcap 可以在绝大多数类 unix 平台下工作。Ncurses 是提供字符终端处理库,包括面板和菜单的库。

  安装软件:

      #pkgadd –d ncurses-5.6-sol10-x86-local
  # pkgadd –d /libpcap-0.9.8-sol10-x86-local
  # pkgadd –d /iftop-0.17-sol10-x86-local

  使用软件:查看pcn0 网卡介面的即時流量,使用命令:iftop -i pcn0

其它常用参数:

  iftop –B :以bytes为单位显示流量.

  iftop –n :直接显示IP, 不进行DNS反解:

  iftop –N : 直接显示连接端口编号, 不显示服务名称:

  如果希望显示某个网段进出封包流量,使用命令:iftop -F 192.168.1.0/255.255.255.0

  iftop –P :按照端口对应ip地址。

  iftop –p :按照混杂模式运行iftop,此时把它作为嗅探器。

  Iftop运行时的快捷键:进入iftop画面时, 可按 p 切换是否显示连接端口, n 切换显示IP或主机的域名, N切换显示连接端口代号或名称, p暂停显示, b切换是否显示长条, B切换计算几秒内的平均流量, 其它按键可以按h观看说明。

 4.使用ngrep监控网络接口

  ngrep 是grep(在文本中搜索字符串的工具)的网络版,他力求更多的grep特征,用于搜寻指定的数据包。正由于安装ngrep需用到libpcap库, 所以支持大量的操作系统和网络协议。它当前认可 IPv4/6, TCP, UDP, ICMPv4/6, IGMP和原始交叉以太网, PPP, SLIP, FDDI, 令牌网和空端口,并以与更为普遍的分组过滤工具相同的方式了解BPF过滤逻辑,例如tcpdump和snoop。

  下载和安装:

      #wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/ngrep-1.45-sol10-x86-local.gz
  #gunzip ngrep-1.45-sol10-x86-local.gz
  #pkgadd ngrep-1.45-sol10-x86-local

  首先看看ngrep的参数,这里只介绍主要选项。

  -q 静默模式,如果没有此开关,未匹配的数据包都以“#”显示

  -e 显示空数据包

  -i 忽略大小写

  -v 反转匹配

  -x 以16进制格式显示

  -X 以16进制格式匹配

  -w 整字匹配

  -p 不使用混杂模式

  -t 在每个匹配的包之前显示时间戳

  -T 显示上一个匹配的数据包之间的时间间隔

  -M 仅进行单行匹配

  -I 从文件中读取数据进行匹配

  -O 将匹配的数据保存到文件

  -n 仅捕获指定数目的数据包进行查看

  -A 匹配到数据包后Dump随后的指定数目的数据包

  -W 设置显示格式byline将解析包中的换行符

  -c 强制显示列的宽度

  -F 使用文件中定义的bpf(Berkeley Packet Filter)

  -N 显示由IANA定义的子协议号

  -d 使用哪个网卡,可以用-L选项查询

  -L 查询网卡接口

下面我们看两个复杂一些的例子,使用命令:

ngrep -qd pcn0 ‘IT专家网’ tcp port 80

  这个命令让ngrep 为TCP报文监控pcn0的80接口,并且只包括“IT专家网”字符串。 这样就可以获得所有该子网中使用访问IT专家网的相关信息。

  另外一个命令:

ngrep -qd pcn0 ‘USER|PASS’ tcp port 21

  这个命令让ngrep 为TCP报文监控pcn0的21接口,并且只包括“user和pass”字符串。我们知道21端口是用来进行FTP连接的端口。 这样就可以获得用于FTP连接的用户名称和密码。


5.使用lsof

  1、lsof简介

  使用 lsof,您可以检查打开的文件,并根据需要在卸载之前中止相应的进程。同样地,如果您发现了一个未知的文件,那么可以找出到底是哪个应用程序打开了这个文件。在 UNIX® 环境中,文件无处不在,这便产生了一句格言:“任何事物都是文件”。通过文件不仅仅可以访问常规数据,通常还可以访问网络连接和硬件。在有些情况下,当您使用 ls 请求目录清单时,将出现相应的条目。在其他情况下,如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字,不存在相应的目录清单。但是在后台为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。

  因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,所以能够查看这个列表将是很有帮助的。完成这项任务的实用程序称为 lsof,它对应于“list open files”(列出打开的文件)。几乎在每个 UNIX 版本中都有这个实用程序。

  2、lsof下载安装

      #wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/lsof-4.77-sol10-x86-local.gz
  #gunzip lsof-4.77-sol10-x86-local.gz
  #pkgadd -d lsof-4.77-sol10-x86-local

  3、lsof的使用

  只需输入 lsof 就可以生成大量的信息。因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

每行显示一个打开的文件,除非另外指定,否则将显示所有进程打开的所有文件。Command、PID 和 User 列分别表示进程的名称、进程标识符 (PID) 和所有者名称。Device、SIZE/OFF、Node 和 Name 列涉及到文件本身的信息,分别表示指定磁盘的名称、文件的大小、索引节点(文件在磁盘上的标识)和该文件的确切名称。根据 UNIX 版本的不同,可能将文件的大小报告为应用程序在文件中进行读取的当前位置(偏移量)。图5来自一台可以报告该信息的 Sun Solaris 10 计算机,而 Linux® 没有这个功能。

  查找网络连接

  网络连接也是文件,这意味着可以使用 lsof 获得关于它们的信息。假设您已经知道 PID,但是有时候并非如此。如果您只知道相应的端口,那么可以使用 -i 参数利用套接字信息进行搜索。图6显示了对 TCP 端口 22 的搜索。

# lsof -i :22

  搜索活动的连接

# lsof -i @192.168.1.11

6.使用Nmap

  1、nmap简介

  Nmap设计的初衷是系统管理员可以方便地了解自己的网络运行情况,例如有多少台主机在运行、分别提供什么样的服务。因此,它扫描的速度非常快,尤其适合大型网络。在对网络进行扫描时,Nmap主要利用ICMP echo探测主机是否开启。凡是了解TCP/IP协议的都知道,对于一个TCP端口,无论是否使用防火墙进行过滤,该主机都会对该端口发出的请求做出一定响应。所以即使配置了严格的防火墙规则,nmap照样可以找到这些主机。

  2、软件下载安装

      #pkgadd -d pkg_get.pkg all
  # pkg_get –i lippcap
  # pkg_get –i nmap

  Libpcap概述

  Libpcap即数据包捕获函数库(packetcapturelibrary)。该库提供的C函数接口可用于捕获经过网络接口(只要经过该接口,目标地址不一定为本机)的数据包。它是由洛仑兹伯克利试验室的研究人员Steven McCanne和Van Jacobson于1993年在USENIX 93会议上正式提出的一种UNIX内核数据包过滤体制。该函数库支持Linux、Solaris和BSD系统平台。采用Libpcap可以捕获本地网络数据链路层上的数据。Libpcap库是基于BPF(Berkeley Packet Filter,BSD包过滤器)系统的。BPF是BSD系统的TCP/IP软件在实现的时候所提供的一个接口,通过这个接口,外部程序可以得到到达本机的数据链路层网络数据,同时也可以设置过滤器,嵌入到网络软件中,获得过滤后的数据包。

  3、软件使用

  探测一台主机是否在线用Nmap探测试试看 。

nmap –v -sP 192.168.6.129

  这里,-sP指定使用Ping echo 进行扫描(Scan)。 利用这一特点,可以很快知道目的网络究竟有多少主机处于运行状态.(这个在linux下默认是安装的)

nmap -sP 192.168.0.1/24 //24表明目标是一个网络而非单个主机

  其实,强大的Nmap本身就可以依据TCP/IP的指纹特征猜测对方使用的操作系统。我们可以用-O来开启这一选项:

  nmap -O 192.168.0.5

  #nmapfe

nmapfe支持种类繁多的扫描技术,例如,TCP connect()扫描是最基本的TCP扫描方式;TCP SYN扫描通常称为半开扫描;UDP扫描目标系统,提供UDP服务的端口;系统识别扫描需要超级用户权限;ping扫描是隐蔽扫描;还有Ident扫描(Ident Scanning)等。从扫描技术看,nmap是众多端口扫描器中的极品。此外,它还提供了一些高级的特征,例如,高速、秘密、系统指纹特征识别、诱饵扫描、碎片扫描等。

  以上这些表明,利用网络管理工具了解网络的状况非常简单,几乎不费什么力气就可以获取很多有用的数据。

阅读(1305) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~