UNIX 网络分析

开始之前
本教程面向有以下需求的 Unix 系统管理员:他们需要找到一些方法来发现和判断有关其网络结构和配置的信息,包括各个机器上允许的服务和系统有哪些 。要从本教程获得最大的收益,您应当具有 UNIX 操作系统的基本知识,以及基本了解网络和 Internet 协议 (IP) 的运作方式 。
关于本教程
在访问一个 UNIX 系统时,甚至是了解现有系统时,有关系统如何运行的一个关键部分就是网络配置 。您需要清楚并了解网络的许多方面,以便正确地识别问题并防患于未然 。通过使用一些基本的工具和命令,可以确定单个系统的大量配置,理解了这些知识后,就可以很好地确定网络其余部分的配置 。通过一些额外的工具,可以将知识扩展到网络中的更多的系统和服务 。
在本教程中,您将在 UNIX 环境中使用一些基本的工具,挖掘有关系统配置的信息 。通过理解这些工具并使用它们获得的信息,您将能够更好地理解系统网络配置和它的工作原理 。您还将研究可以涵盖更广泛网络的工具和解决方案,获得有关网络的更详细的信息、其潜在的安全问题,这有助于找出和诊断问题的关键信息点 。
理解主机的网络配置
要更好地理解网络,第一步是理解当前使用的机器的网络配置 。这将为您提供许多参考基准,比如当前主机的 IP 地址、DNS 配置以及可以连接并与之通信的其他机器 。
查找配置信息
确定正在使用的机器的当前配置可以使您获得对环境的基本了解 。您的第一个任务是确定当前机器的 IP 地址和网络掩码(mask) 。通过这两个值,可以确定机器的地址,以及可以与之直接在网络上建立连接的其他机器(比如,不需要使用路由器) 。
在确定 IP 地址之前,通过使用 hostname 命令获得系统的主机名(参见清单 1) 。
清单 1. 获得主机名
$ hostname
sulaco
在选择 -a 选项时,ifconfig 命令将显示所有已配置的网络设备的当前配置信息 。例如,清单 2 展示了 ifconfig 命令在一台 Solaris 机器上的输出 。
清单 2. ipconfig 在 Solaris 上的输出
$ ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
inet 127.0.0.1 netmask ff000000 
pcn0: flags=201004843 
mtu 1500 index 2
inet 192.168.1.25 netmask fffffc00 broadcast 192.168.3.255
lo0: flags=2002000849 mtu 8252 index 1
inet6 ::1/128 
pcn0: flags=202004841 mtu 1500 index 2
inet6 fe80::20c:29ff:fe7f:dc5/10
从这个输出中可以看到,有一个回路(loopback)设备 lo0,本地主机的地址为 127.0.0.1 。还可以看到,这个设备还有一个等效的 IPv6 地址 。
pcn0 设备的配置如下:网络地址为 192.168.1.25,网络掩码为 fffffc00,相当于 255.255.252.0 。可以看到,在这里地址是使用 DHCP 设置的(从 DHCP 标记列表) 。
网络掩码非常重要,只要知道了网络掩码,就可以知道所在网络的大小(通过注册的 IP 地址) 。在本例中,255.255.252.0 等同于 4 类 C 地址,因为 256(最大主机数)减去 252 (使用了掩码的主机数)等于 4 。
通过同时使用掩码和配置后的 IP 地址,可以推测出本地网络中 IP 地址的范围 。由于 IP 区块通常按照完整的组进行划分,并且是按顺序进行的,因此可以推测出整个网络中分布的 IP 地址的范围为从 192.168.0.0 到 192.168.3.255 。您可以得出这一结论,因为使用 4 类 C 地址,您通常会将整个范围(192.168.0.0-192.168.255.255)划分为相等的区块 —— 其中地址前缀 192.168.1.x 必须位于 4 个地址中的第一个区块中 。

推荐阅读