第 18 章 基本联网知识

目录

18.1. IP 地址和路由
18.2. IPv6-下一代的因特网
18.3. 名称解析
18.4. 使用 YaST 配置网络连接
18.5. 使用 NetworkManager 管理网络连接
18.6. 手工配置网络连接
18.7. 作为拨号助手的 smpppd

摘要

Linux 提供集成进各类网络结构中所需的联网工具和功能。TCP/IP 是 Linux 惯用的协议,具有多种服务和特殊功能,本章将对此进行介绍。使用网卡、调制解调器或其它设备的网络访问可以通过 YaST 来配置。也可以手工进行配置。不过本章的讨论仅限于基本机制和相关网络配置文件。

Linux 和其它 Unix 操作系统均使用 TCP/IP 协议。该协议不是单个网络协议,而是提供多种服务的一系列网络协议。表 18.1 “TCP/IP 系列协议中的若干协议” 中所列的协议专用于在两台计算机之间通过 TCP/IP 交换数据。由 TCP/IP 连接而成的网络构成了世界范围的网络,就整体而言也称作“因特网”。

RFC 代表请求注释。RFC 由一些文档组成,用来说明各种因特网协议和操作系统及其应用程序的实施过程。RFC 文档用来说明如何设置因特网协议。要进一步了解某个协议,请参见相应的 RFC 文档。可以通过 http://www.ietf.org/rfc.html 访问这些联机文档。

表 18.1. TCP/IP 系列协议中的若干协议

协议

说明

TCP

传送控制协议:一种面向连接的安全协议。要传送的数据首先由应用程序作为数据流发送,然后由操作系统转换为相应的格式。数据到达目标主机上的相应应用程序时采用最初发送时的原始数据流格式。TCP 确定传送过程中是否丢失了数据,并确保格式没有混乱。只要涉及到数据序列就会实施 TCP。

UDP

用户数据报文协议:一种无连接的不安全的协议。要传送的数据以应用程序生成的数据包的形式发送。不能保证数据以正确的顺序到达接收方,还可能丢失数据。UDP 适用于面向记录的应用程序。它的等待时间比 TCP 稍短。

ICMP

因特网控制讯息协议:这实际上不是一个面向最终用户的协议,而是一个特殊的控制协议,用来发出错误报告,还可以控制参与 TCP/IP 数据传送的计算机的行为。此外,它还提供一种特殊的回应方式,可以通过 ping 程序查看该方式。

IGMP

因特网组管理协议:此协议控制实施 IP 多路广播时的计算机行为。

图 18.1 “TCP/IP 的简化层次模型”中所示,数据交换在不同的层中进行。实际的网络层是通过 IP(因特网协议)的不安全数据传送。IP 的上面是 TCP(传送控制协议),它能够确保一定程度的数据传送安全性。IP 层又受底层硬件相关协议(例如 Ethernet)的支持。

图 18.1. TCP/IP 的简化层次模型

TCP/IP 的简化层次模型

该图为每一层都提供了一到两个示例。层次按照抽象程度排序。最底层非常接近硬件。最上层则几乎就是硬件的完全抽象化。每一层都有自己的特殊功能。每一层的特殊功能多隐含在其说明中。数据链路层和物理层表示所用的物理网络(如 Ethernet)。

几乎所有硬件协议都在面向数据包的基础上发挥作用。因为无法一次传送所有数据,所以要将这些数据封装在中。TCP/IP 包最大约为 64 KB。通常的包还要小得多,因为可能还要受到网络硬件的限制。Ethernet 上的数据包最大约为 1500 字节。通过 Ethernet 发送数据时,TCP/IP 包不能超过这个限额。如果传送更多数据,操作系统需要发送更多的数据包。

为使层实现其指定功能,必须在数据包中保存与每层相关的附加信息。这些信息保存在数据包的报头中。每一层都在每个新包的开头附加一小块称为协议报头的数据。图 18.2 “TCP/IP Ethernet 包” 演示了一个通过 Ethernet 电缆传送的示例 TCP/IP 数据包。校验和位于包的末尾而不是开头,这样更便于网络硬件处理。

图 18.2. TCP/IP Ethernet 包

TCP/IP Ethernet 包

当应用程序通过网络发送数据时,数据会穿越每个层次,所有传递都在 Linux 内核中实施(只有物理层除外)。每一层都负责准备好数据,以便传递到下一层。最底层最后负责发送数据。接收数据时则逆向执行整个过程。正像剥洋葱皮那样,在每一层中都要从传输数据中去除协议报头。最后,传输层负责使数据可供目标上的应用程序使用。通过这种方式,每一层只与其上一层或下一层通讯。对于应用程序,无论数据是通过 100 MBit/s(兆位/秒)的 FDDI 网络传送还是通过 56 kbit/s(千位/秒)的调制解调器线路传送,都毫不相关。同样,只要数据包的格式正确,传送哪种数据对数据线也无关紧要。


18.1. IP 地址和路由

各节的论述仅限于 IPv4 网络。有关 IPv6 协议(IPv4 的后续协议)的信息,请参见 第 18.2 节 “IPv6-下一代的因特网”

18.1.1. IP 地址

因特网上的每台计算机都有一个唯一的 32 位地址。这些 32 位(或 4 字节)地址通常按 例 18.1 “编写 IP 地址” 的第二行所示的格式书写。

例 18.1. 编写 IP 地址

IP Address (binary):  11000000 10101000 00000000 00010100
IP Address (decimal):      192.     168.       0.      20

在十进制格式中,四字节以十进制数书写,其间以句点分隔。IP 地址被指派给主机或网络接口。除此之外不能用在其它任何地方。这条规则也有例外,但这些例外与以下讯息无关。

IP 地址中的点表示分级系统。直到 20 世纪 90 年代,IP 地址仍然有严格的分类。不过,这个系统经证实太过死板,已经废止。现已改为使用无类别路由 - (CIDR,无类别域间路由)。

18.1.2. 网络掩码和路由

网络掩码用于定义子网的地址范围。如果两台主机在同一个子网中,则它们可直接相互访问,如果不在同一个子网中,则需要网关地址,它处理子网和其它网络之间的所有流量。要检查两个 IP 地址是否位于同一个子网中,只需分别将两个地址与网络屏蔽进行“AND”操作。如果结果相同,则两个 IP 地址在同一个本地网络中。如果结果不同,则仅能通过网关连接远程 IP 地址和远程接口。

要了解网络屏蔽如何工作,可查看例 18.2 “将 IP 地址链接到网络掩码”。网络屏蔽有 32 位,它确定属于网络的 IP 地址是多少。对于所有为 1 的位,将它们在 IP 地址中的相应位标记为属于网络。对于所有为 0 的位,标记为属于子网。这意味着为 1 的位越多,子网就越小。因为网络屏蔽总是由多个连续的 1 位组成,所以也可仅计算网络屏蔽中的位数。在例 18.2 “将 IP 地址链接到网络掩码”中,第一个 24 位也可写作 192.168.0.0/24

例 18.2. 将 IP 地址链接到网络掩码

IP address (192.168.0.20):  11000000 10101000 00000000 00010100
Netmask   (255.255.255.0):  11111111 11111111 11111111 00000000
---------------------------------------------------------------
Result of the link:         11000000 10101000 00000000 00000000
In the decimal system:           192.     168.       0.       0

IP address (213.95.15.200): 11010101 10111111 00001111 11001000
Netmask    (255.255.255.0): 11111111 11111111 11111111 00000000
---------------------------------------------------------------
Result of the link:         11010101 10111111 00001111 00000000
In the decimal system:           213.      95.      15.       0

再举一个例子:通过同一 Ethernet 电缆相连的所有计算机通常都位于同一子网中,所以可直接访问。即使用交换机或网桥物理分隔该子网,这些主机仍然可以直接访问。

仅在网关是为目标网络配的时,才能访问本地子网外部的 IP 地址。通常情况下,只有一个网关处理所有外部流量。然而,也可能为不同的子网配置多个网关。

如果配置了网关,所有的外部 IP 包将发送到相应的网关。此网关随后会尝试以相同的方式转发该包(从主机到主机)直到到达目标主机或超过该包的 TTL(存活时间)。

表 18.2. 特定地址

地址类型

说明

基本网络地址

这是网络掩码和该网络中的任意地址,如 例 18.2 “将 IP 地址链接到网络掩码” 中的 Result(结果)所示。不能将此地址指派给任何主机。

广播地址

这大体表示“访问此子网内的所有主机”。要生成此地址,需要将网络掩码反转为二进制格式,并使用逻辑 OR 链接到基本网络地址。由此上例生成的结果为 192.168.0.255。不能将此地址指派给任何主机。

本地主机

地址 127.0.0.1 指派给每台主机的“回路设备”。可以使用此地址与您自己的计算机建立连接。

由于 IP 地址必须在全球范围内唯一,您不能随机选择地址。共有三个地址域可用于建立基于 IP 的专用网络。这些地址无法与因特网上的其它地址建立任何连接,因为它们不能通过因特网传送。这些地址域在 RFC 1597 中指定,并且列在表 18.3 “专用 IP 地址域”中。

表 18.3. 专用 IP 地址域

网络/网络掩码

10.0.0.0/255.0.0.0

10.x.x.x

172.16.0.0/255.240.0.0

172.16.x.x172.31.x.x

192.168.0.0/255.255.0.0

192.168.x.x