当系统遇到问题时,你需要知道方法,使它们恢复到正常的运作状态。在本节中,我们将重点介绍任何Linux系统管理员都应该具备的基本网络故障排除技能。 对网络故障排除的基本理解 在大多数情况下,网络管理员和系统管理员之间存在着很大的差距。缺乏网络可视性的系统管理员通常会把故障和停机时间归咎于网络管理员,而网络管理员如果没有足够的服务器知识,往往会把终端设备故障的责任推给系统管理员。然而,相互指责无助于问题的解决,在工作环境中,这可能会使同事之间的关系对立。 作为一个系统管理员,对网络故障排除有一个基本的了解将有助于更快地解决问题,并有助于促进一个有凝聚力的工作环境。正是由于这个原因,我们把这一节放在一起,强调一些基本的网络故障排除技巧,这些技巧在诊断网络相关问题时将会很有用。 回顾一下TCP/IP模型 TCP/IP概念模型显示了计算机中的数据传输和每一层中的协议。 另一个同样重要的概念模型是OSI模型(开放系统互连)模型。这是一个7层TCP / IP框架,它分解了网络系统,并且计算功能是每一层。 在OSI模型中,这些功能从底部开始分为以下几层。物理层,数据链路层,网络层,传输层,会话层,表现层,最后是应用程序层。 如果不参考OSI模型,就不可能讨论网络故障排除。因此,我们将引导您遍历每一层,并找出所使用的各种网络协议以及如何对与每一层相关的故障进行故障排除。 第1层:物理层 这可能是最容易被忽略的层之一,但是它也是进行任何通信所需的最重要的层之一。物理层包含PC的物理PC网络组件,例如网卡,以太网电缆,光纤等。大多数问题从这里开始,范围从拔出/损坏的以太网电缆到信号衰减。 在这一层中,想到的最关键的问题是“物理网络是否已链接?”。要检查网络接口的状态,请运行ip命令: $ ip link show 从上面的输出来看,我们有两个接口。第一个接口--lo--是回环地址,通常不使用。提供与网络和互联网连接的活动网络接口是enp0s3接口。我们可以从输出中看到,该接口的状态是UP。 如果一个网络接口是关闭的,你会看到输出的状态是DOWN。 如果是这种情况,你可以用命令把接口调出来。 $ sudo ip link set enp0s3 up 只是为了确认您的PC已从路由器或DHCP服务器中选择了IP地址,运行ifconfig命令。 $ ifconfig 第2层:数据链路层 本质上,数据链路层确定网络上的数据格式。这是主机之间进行数据帧通信的地方。该层中的主要协议是ARP(地址解析协议)。 ARP负责发现链路层地址,并执行第3层上的IPv4地址到MAC地址的映射。通常,当主机与默认网关联系时,很可能它已经具有主机的IP,但没有MAC地址。 所述ARP协议通过平移在层3中的32位的IPv4地址,以48位MAC地址对层2和反之亦然桥接层3和层2之间的间隙。 当PC加入LAN网络时,路由器(默认网关)会为其分配IP地址以进行识别。当另一台主机将发往PC的数据包发送到默认网关时,路由器会请求ARP查找与IP地址匹配的MAC地址。 每个系统都有自己的ARP表。要检查您的ARP表,请运行以下命令: $ ip neighbor show 你可以注意到,路由器的MAC地址已被填入。如果有解析问题,该命令不返回输出。 第3层:网络/ Internet层 这是您专门使用系统管理员熟悉的IPv4地址的层。它提供了我们已经介绍的多种协议(例如ICMP和ARP)以及其他协议(例如RIP(路由信息协议))。 一些常见的问题包括设备配置错误或网络设备(例如路由器和交换机)出现问题。开始进行故障排除的一个好地方是检查您的系统是否选择了IP地址,如下所示: $ ifconfig 此外,你还可以使用ping命令,通过向谷歌的DNS发送ICMP回波数据包来检查互联网连接情况。 $ ping 8.8.8.8 -c 4 输出显示谷歌DNS的正面回复,数据包丢失为零。如果有间歇性的连接,你可以使用traceroute命令检查哪个点的数据包被丢弃,如下所示。 $ traceroute google.com 第4层:传输层 传输层使用TCP和UDP协议处理数据传输。回顾一下,TCP是一种面向连接的协议,而UDP是无连接的。正在运行的应用程序侦听由端口和IP地址组成的套接字。 可能发生的常见问题包括应用程序可能需要的TCP端口被阻塞。如果您有Web服务器,并且想要验证其运行状态,请使用netstat或ss命令检查Web服务是否正在侦听端口80 $ sudo netstat -pnltu | grep 80 或 $ ss -pnltu | grep 80 如果仍然有问题,请考虑检查防火墙并取消阻止端口以允许HTTP通信。 大多数故障排除将在这4层中进行。在会话,表示层和应用程序层中很少进行故障排除。这是因为它们在网络功能中的作用较弱。但是,让我们快速了解一下这些层中发生的情况。 第5层:会话层 会话层打开称为会话的通信通道,并确保它们在数据传输期间保持打开状态。一旦通讯终止,它也会关闭。 第6层:表现层 表现层也称为语法层,它合成应用程序层要使用的数据。它阐明了设备应如何加密,编码和压缩数据,以确保数据在另一端被很好地接收。 第7层:应用程序层 最后,我们拥有最接近最终用户的应用程序层,并允许他们与应用程序软件进行交互。应用层具有诸如HTTP,HTTPS,POP3,IMAP,DNS,RDP,SSH,SNMP和NTP之类的协议,仅举几例。
|