1.6 利用分层模型解决网络故障
20世纪80年代中期,各大公司逐渐感受到了盲目地大规模扩展网络带来的后果,使用不同标准的网络之间很难通信,于是他们意识到必须摒弃先前的专用网络系统,制定一种网络之间连接的标准。1984年发布的OSI-RM开放体系模型(Open System Interconnection -Reference Model),它为各个厂商提供了一套标准,确保全世界各公司提出的不同类型网络技术之间具有良好兼容性和互操作性。
1.6.1 OSI模型概述
开放系统互连参考模型(Open System Interconnection - Reference Model)中的关键字“开放”与“互连”就是为解决这个问题。“开放”表示能使任何两个遵守参考模型和有关标准的系统进行连接。“互连”是指将不同的系统互相连接起来,以达到相互交换信息、共享资源、分布应用和分布处理的目的。
1.OSI各层含义
OSI-RM开放系统互连参考模型采用分层的结构化技术,共分为7层,从低到高为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。OSI参考模型各层功能的简单描述如图1-15所示。
图1-15 OSI参考模型分层结构
OSI参考模型的每一层都有它自己必须实现的一系列功能,以保证数据报文能从源传输到目的地。下面简单介绍一下OSI参考模型各层的功能。
1)物理层(Physical Layer)
物理层位于OSI参考模型的最底层,它直接面向原始比特流的传输。为了实现原始比特流的物理传输,物理层必须解决好包括传输介质、信道类型、数据与信号之间的转换、信号传输中的衰减和噪声等在内的一系列问题。另外,物理层标准要给出关于物理接口的机械、电气功能和规程特性,以便于不同的制造厂家既能够根据公认的标准各自独立地制造设备,又能使各个厂家的产品能够相互兼容。
2)数据链路层(Data Link Layer)
数据链路层涉及相邻节点之间的可靠数据传输,数据链路层通过加强物理层传输原始比特的功能,使之对网络层表现为一条无错线路。为了能够实现相邻节点之间无差错的数据传输,数据链路层在数据传输过程中提供了确认、差错控制和流量控制等机制。在数据链路层的设备由二层交换机和网桥。
3)网络层(Network Layer)
网络中的两台计算机进行通信时,中间可能要经过许多中间节点甚至不同的通信子网。网络层的任务就是在通信子网中选择一条合适的路径,使发送端传输层所传下来的数据能够通过所选择的路径到达目的端。网络层提供了路由及其相关功能,可以将众多的数据链路结合成一个互连的网络,这是通过设备的逻辑寻址(与物理寻址相对)来实现的。
4)传输层(Transport Layer)
传输层是OSI参考模型中唯一负责端到端节点间数据传输和控制功能的层。传输层是OSI参考模型中承上启下的层,它下面的三层主要面向网络通信,以确保信息被准确有效地传输;它上面的3个层次则面向用户主机,为用户提供各种服务。
传输层通过弥补网络层服务质量的不足,为会话层提供端到端的可靠数据传输服务。它为会话层屏蔽了传输层以下的数据通信的细节,使会话层不会受到下三层技术变化的影响。但同时,它又依靠下面的3个层次控制实际的网络通信操作,来完成数据从源到目标的传输。传输层为了向会话层提供可靠的端到端传输服务,也使用了差错控制和流量控制等机制。
5)会话层(Session Layer)
会话层的主要功能是在两个节点间建立、维护和释放面向用户的连接,并对会话进行管理和控制,保证会话数据可靠传输。会话层是建立在传输层之上,由于利用传输层提供的服务,使得两个会话实体之间不考虑它们之间相隔多远,使用了什么样的通信子网等网络通信细节,从而进行透明的、可靠的数据传输。
6)表示层(Presentation Layer)
在OSI模型中,表示层的作用是为通信双方的应用层实体提供共同的表达手段,使双方能正确地理解所传送的信息。
表示层为应用层提供了各种编码和数据转换功能。这些功能可以确保发自某个系统的应用层信息可以被另一个系统的应用层解读出来,表示层的一些编码与转换例子包括公共数据表示格式、字符表示格式的转换、公共数据压缩方案及公共数据加密方案等。
7)应用层(Application Layer)
应用层是OSI参考模型中最靠近用户的一层,负责为用户的应用程序提供网络服务。与OSI参考模型其他层不同的是,它不为任何其他OSI层提供服务,而只是为OSI模型以外的应用程序提供服务。
OSI关心的主要是进程之间的通信行为,因而对应用进程只保留了进程间交互行为的有关部分。这种现象实际上是对应用进程进行了某种程度上的简化,经过抽象(简化)后的应用进程就是应用实体AE(Application Entity)。应用层为相互通信的AE建立连接、进行同步,建立关于错误纠正和控制数据完整性过程的协商等。应用层还包含大量的应用协议,如远程登录(Telnet)、简单邮件传输协议(SMTP)、简单网络管理协议(SNMP)和超文本传输协议(HTTP)等。
2.层间通信的方法
OSI使用协议数据单元(Protocol Data Unit,PDU)在层间进行通信。PDU是加入到用户数据中的信息,这部分控制信息保存在称为“头域”和“尾域”中,进而保持在每个设备上的同样功能,如寻址和控制信息等。因为PDU在上下层间传输了修改后的信息,因此根据它负载的信息给出不同的名字。
■ 应用层:报文(Message)。
■ 传输层:数据段(Segment)。
■ 网络层:分组(数据包)(Packet)。
■ 数据链路层:数据帧(Frame)。
■ 物理层:比特(Bit)。
信号通过网络媒介传送出去,数据沿着堆栈向下传输并加入头和尾的方法称为“封装”。以一封电子邮件的发送和接收为例,其传输过程如图1-16所示。
图1-16 封装过程
第1步:创建数据(应用层、表示层、会话层),当用户发送一个电子邮件信息时,它的字母或数字字符被转换成可以通过因特网传输的数据。
第2步:为端到端的传输将数据打包(传输层),通过对数据打包来实现因特网的传输。通过使用段,传输功能确保在两端的信息主机的电子邮件系统之间进行可靠的通信。
第3步:在报头上附加网络地址(网络层),数据被放置在一个分组或者数据报中,其中包含了带有源和目的逻辑地址(如IP地址)的网络报头。这些地址有助于网络设备在动态选定的路径上发送这些分组。
第4步:附加本地地址(MAC地址)到数据链路报头(数据链路层),每一个网络设备必须将分组放置在帧中。该帧的报头包括在路径中下一台直接相连设备的物理地址(如MAC地址)。
第5步:为进行传输而转换为比特(物理层),帧必须被转换成一种1和0的模式,才能在介质上(通常为线缆)进行传输。
第6步:数据被封装通过网络传送后,接收设备的第一个OSI层查看来自对等层的头部信息,除去该头部信息,将余下的信息单元发送到上一个OSI层,当应用层完成了这些工作后,接收设备就接收到了需要的数据,这个过程就是“解封装”。
1.6.2 网络故障背景介绍
中铁集团某分公司进行了一次网络改造,分公司的网络用户报告说其中有一台客户端在调整办公室后无法访问总部服务器。由于总公司到分公司的路途遥远,所以采用了电话支持和网络设备远程排错的方法,最终排除了故障。
1.6.3 选择排查故障的方法
OSI模型并不只是一项“死”知识,而是指导网络组建和故障排除的一种原则。利用OSI模型排除网络错误工作中有3种方法可以使用。
(1)从下至上的方法:从OSI模型底端开始,顺序向上。
(2)从上至下的方法:从OSI模型顶端开始,顺序往下。
(3)分而治之的方法:从OSI模型特定层开始,确定问题是在该层、还是上层或下层。
由于分公司的其他客户端都能访问到总部的服务器,而只有一个客户端无法访问,所以应该确认服务器的应用程序是没有问题的,所以可以采用“从下至上”的方法排除网络故障,即从物理层开始。由于是远程管理,在处理此次网络故障时总部工程师并没有到现场,但最终排除了故障。他们并不是通过经验直接判断问题的症结之处,而是根据OSI的7层模型,从“物理层”开始排除问题的,当确保网卡和网络连接没有问题的时候,再“上升一层”排除问题,直至找到了最终答案。
下面排除故障中用到了一些命令,现在你可能还不了解它们,在学习完成本书后面的一些网络设置配置命令之后,你就会发现原来这些工程师的操作也不是很神奇。
1.6.4 故障解决思路与步骤
客户端无法访问网络的情况在企业网络故障中应该是最常见的一种,但很多管理员在排查故障的时候,不知道从何处入手。并将这台主机搬回到原信息点后能够访问网络,这就使总部工程师首先怀疑到连接这台客户端的物理层链路出现了问题。
1.物理层检查
工程师首先要求用户检查网络客户端网络的物理连接是否正常,查看网线是否与墙上端口和设备相连,连接点是否牢靠等。用户反馈这些连接部件都是正常,所以工程师决定让用户查看交换机端口的工作状态。
由于分公司采用了标准的布线环境,交换机管理良好,有完备的《网络记录文档》。因此,总部查找到这位用户使用的墙上插座端口号为A201,而且知道A201号口与交换机2号口相连。
如果工程师在现场就可查看交换机端口的指示灯状态是否正常,但现在是不可能了。所以只能远程登录到这台交换机,利用show ip interface brief命令查看其端口是否工作正常。
提示
一般持续绿色代表链路正常运行,如果闪烁绿色则表明正在发送或者接收数据。
3750-24#show ip interface brief Interface IP-Address OK?Method Status Protocol GigabitEthernet1/0/1 unassigned YES unset up up GigabitEthernet1/0/2 unassigned YES unset up up GigabitEthernet1/0/3 unassigned YES unset up up GigabitEthernet1/0/4 unassigned YES unset up up GigabitEthernet1/0/5 unassigned YES unset down down
从这条命令的执行结果中看到:GigabitEthernet1/0/2状态(Status)和协议(Protocol)工作都是up状态,这证明此终端的线缆连接到交换机是正常的,初步可以排除是物理层的问题。
2.检查数据链路层
既然有连接,说明网络是通的,发生物理层错误的可能性很小,所以可以将故障排查上升一层到数据链路层。因此交换机对数据包的转发是建立在MAC地址(物理地址)基础之上的,对于IP网络协议来说,它是透明的,即交换机在转发数据包时,不知道也无须知道信源机和信宿机的IP地址,只需其物理地址,即MAC地址。
是不是我们过分相信《网络记录文档》中的接口信息了,交换机的这个接口没有真正连接到这台客户端,而是连接到其他的客户端呢?此时,可以利用第二层信息的排查来确定这个错误是否存在。第二层的关键是MAC地址,可以对照交换机接口上的MAC地址和客户端的MAC地址是否相同,这样也能排除是不是当初施工时《网络记录文档》出现了问题。使用show mac address-table interface gigabitEthernet 1/0/2命令可以显示连接此接口计算机的MAC地址信息。
3750-24#show mac address-table interface gigabitEthernet 1/0/2 Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- ----- 10 0014.2275.57ac DYNAMIC Gi1/0/2 Total Mac Addresses for this criterion: 1
此时在客户端上查看本机的MAC地址,如果不匹配则说明交换机上的接口并不是真的连接了这台客户端。工程师让用户在客户端上执行IPCONFIG /ALL命令,然后将MAC地址和上面的进行对比,发现MAC地址是相同的。可能在数据链路层还有其他的错误,但至少“网络记录文档”并没有欺骗我们,交换机端口和客户端主机是对应的。
3.检查网络层
接下来查看第三层。在PC上使用IPCONFIG /ALL命令进行检查,输出结果显示如下:
C:\Documents and Settings\Administrator>ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : officetm1 Primary Dns Suffix .......: Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : gwz.edu Ethernet adapter 本地连接: Connection-specific DNS Suffix .:zt2.cuchina.com.cn Description . . . . . . . . . . . : Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC Physical Address. . . . . . . . . : 00-14-22-75-57-AC Dhcp Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 10.10.2.41 Subnet Mask . . . . . . . . . . . : 255.255.255.192 Default Gateway . . . . . . . . . : 10.10.2.62 DHCP Server . . . . . . . . . . . : 10.88.56.1 DNS Servers . . . . . . . . . . . : 10.88.56.1 Primary WINS Server . . . . . . . : 10.88.56.1
这里,可以看到PC有IP地址,但是这地址对吗?这台PC通过DHCP获得10.88.x.x范围内的地址,但是现在地址却是10.10.x.x。
终于发现了问题,DHCP服务器分发的IP地址不属于子网。这种问题多出现在PC从某个子网挪到另一个子网时,PC依然请求旧的IP地址就产生了问题,由于这台主机从另外的办公室挪过来才出现的问题,因此可以断定问题出现在网络层。
管理员尝试这样解决问题,让PC的网络接口租用的IP地址重新交付给DHCP服务器(即归还IP地址)。使用IPCONFIG /RELEASE,然后使用IPCONFIG /RENEW命令, PC就会获得正确的IP地址,所有的网络应用就都可以使用了。