IP 和 以太网

TCP/IP 支持简单网络和复杂网络。 您可以通过使用协议套件将少量计算机连接到交换机【switch】并创建一个局域网 (LAN)。 TCP/IP 还使您能够将多个局域网 【LAN】 互连成一个广域网 【WAN】。 让我们首先了解 IP 寻址如何在简单的局域网 【LAN 】中工作。

在 局域网 【LAN 】级别,每台主机都在以太网硬件上运行 TCP/IP 软件,这样就造成了每台主机有两个地址:IP 地址和以太网 MAC 地址(如图 6-9)。虽然乍一看这似乎是多余的,但这正是 TCP/IP 同时支持 局域网【LAN】 和 广域网【WAN 】的能力背后的力量。 但同样,此时我们只讨论 局域网【LAN】。

Figure 6-9 Two addresses

想象这样一种情况,计算机 A 想要向 局域网【LAN 】上的另一台计算机计算机 B 发送 IP 数据包。 要将 IP 数据包发送到另一台计算机,发送端计算机(即计算机 A)必须将 IP 数据包插入到以太网帧中,如图 6-10 所示。

Figure 6-10 Encapsulation

请注意,IP 数据包完全被封装【encapsulated 】在以太网帧内。 需要注意的是,以太网帧中既有目的MAC地址,又有源MAC地址,而封装在以太网帧中的IP包既有源IP地址,又有目的IP地址。 这个封装思路很好,但是有一个问题:计算机 A 知道计算机 B 的IP地址,但是计算机 A 怎么知道计算机 B 的MAC地址呢?(见图 6-11)

Figure 6-11 What is his MAC address?

为了获取计算机 B 的 MAC 地址,计算机 A 向 MAC 地址 FF-FF-FF-FF-FF-FF(用于广播的通用 MAC 地址)发送一个非常特殊的命令,称为地址解析协议 【ARP】(如图 6-12) .

Figure 6-12 Sending an ARP request

计算机 B 通过向计算机 A 发送 ARP 回复来响应其 ARP 请求(如图 6-13)。 一旦计算机 A 有了计算机 B 的 MAC 地址,它就会开始直接向计算机 B 发送单播以太网帧。

Figure 6-13 Computer B responds

IP 地址提供了一些 MAC 地址无法提供的好处:

  • 首先,TCP/IP 网络上的每台机器——无论大小——都获得一个唯一的 IP 地址,用于标识该网络上的机器。
  • 其次,IP 地址将多组计算机组合成逻辑网络,例如,您可以将一个 LAN 与另一个 LAN 区分开来。
  • 最后,由于 TCP/IP 网络设备理解 IP 寻址方案,因此在广域网中,计算机可以在局域网之间相互通信。

IP地址

最常见的 IP 地址类型(正式称为 IPv4,但通常简化为“IP”)由 32 位值组成。 以下是 IP 地址的示例:

11000000101010000000010000000010

哇! IP地址只是32位二进制数字的字符串? 是的,它们是,但为了使 IP 地址更易于人类使用,32 位二进制值被分解为四组,每组 8 个,用句点或点分隔开来,如下所示:

11000000.10101000.00000100.00000010

依次将这些 8 位值中的每一个转换为 0 到 255 之间的十进制数。 

转换后,原始值 11000000.10101000.00000100.00000010 在 IPv4 的点分十进制表示法(也称为点分八位字节编号系统)中显示为 192.168.4.2。 请注意,点分十进制只是人们讨论和配置计算机使用的二进制 IP 地址的一种简写方式。

正如每个 MAC 地址在网络上必须是唯一的一样,每个 IP 地址也必须是唯一的。 为了使逻辑寻址起作用,同一网络上的两台计算机不得具有相同的 IP 地址。 在一个小型 TCP/IP 网络中,每台计算机都有一个 IP 地址和一个 MAC 地址(如图 6-16):

Figure 6-16 A small network with both IP and MAC addresses

每个操作系统都带有用于显示系统 IP 地址和 MAC 地址的应用程序。例如,在Windows系统中,可以使用ipconfig显示 IP 地址和 MAC 地址。运行 ipconfig /all 命令可以看到如图 6-19 所示的结果:

Figure 6-19 ipconfig /all results

既然您了解 IP 地址只不过是由 32 个 1 和 0 组成的字符串,那么是时候(最终)了解 IP 寻址是如何支持局域网【WAN】。重要的是要记住,IP 编号系统必须同时支持广域网【WAN 】和由广域网【WAN 】连接的许多局域网【LAN】。在某些情况下,这可能会产生问题,比如当一台计算机需要同时向它自己网络中的计算机和其他网络中的计算机发送数据时。

为了实现这一切,IP 编号系统【IP numbering system】必须做三件事:

  • 创建网络标识,这是一种使用 IP 地址的方法,以便每个 LAN 都有自己的标识。
  • 使用路由器连接局域网【LAN】,并让这些路由器提供某种方式以使用网络标识【network identification】将数据包发送到正确的网络。
  • 使用子网掩码为网络上的每台计算机提供一种方法来识别数据包是用于局域网【LAN 】还是用于广域网【WAN 】上的计算机,这样它就知道如何处理数据包。

网络标识【Network IDs】

广域网【WAN 】只不过是由两个或多个互连的局域网【WAN】组成的组【Group】。 要使广域网【WAN 】正常工作,每个局域网【WAN 】都需要某种形式的唯一标识符,称为网络标识【network ID】。

为了区分局域网【LAN】,一个局域网【LAN】上的每台计算机必须共享一个非常相似但又不完全相同的 IP 地址。 IP 地址的某些部分将与局域网【LAN】上的所有其他部分匹配。 图 6-22 显示了一个局域网【LAN】,其中所有计算机共享 IP 地址的前三个数字,只有最后一个数字在每个系统中是唯一的。

Figure 6-22 IP addresses for a LAN

在此示例中,每台计算机的 IP 地址都是 202.120.10.x,其中 x 值对于每个主机都是唯一的,但每个主机的 IP 地址都以 202.120.10 开头。 这意味着网络标识【network ID】是 202.120.10.0。 IP 地址的 x 部分是主机标识【host ID】。 将网络 ID(去掉结尾的 0 后)与主机 ID 结合起来,将得到单个系统的 IP 地址。 任何一台计算机都不能拥有以 0 结尾的 IP 地址,因为这是为网络标识【network ID】保留的。

注意 这里有两件事要注意:

  1. 首先,将网络标识【network ID】和主机标识【host ID】结合起来构成系统的 IP 地址
  2. 其次,主机 ID 可以以 0 结尾——尽管这种情况并不常见——但我们必须先讨论子网划分,然后才能使这些有意义

Interconnecting LANs

为了将所有这些单独的局域网【LAN】组织成一个更大的网络,每个想要连接到另一个 TCP/IP 局域网的 TCP/IP 局域网都必须有一个路由器【Router】连接。 这条关键规则没有例外。 因此,路由器需要在它连接的每个局域网【LAN 】上都有一个 IP 地址(图 6-23),以便它可以正确地将数据包发送(路由)到正确的局域网【LAN】。

Figure 6-23 LAN with router

将单个局域网【LAN】连接到路由器的路由器接口【router interface】称为默认网关【default gateway】。 在配置客户端以访问路由器以外的网络的典型场景中,您将使用默认网关的 IP 地址。 默认网关与主机在同一网络标识【network ID】中。设置路由器的人必须确保路由器的局域网接口处于局域网的网络标识【network ID】下。按照惯例,大多数网络管理员给默认网关上的 LAN 侧 NIC 赋予网络中最低的主机地址,通常主机 ID 为 1

设置路由器的人必须确保他们将路由器的 LAN 接口配置为在 LAN 的网络 ID 中具有地址。 按照惯例,大多数网络管理员给默认网关上的 LAN 侧 NIC 赋予网络中最低的主机地址,通常主机 ID 为 1。因此,如果网络 ID 为 22.33.4.x,则路由器配置为使用 地址 22.33.4.1。

将单个LAN连接到路由器的路由器接口称为默认网关。在典型场景中,配置客户端以访问路由器以外的网络时,使用默认网关的IP地址。默认网关与主机位于同一网络ID中。设置路由器的人员必须确保他们将路由器的LAN接口配置为在LAN的网络ID中有一个地址。按照惯例,大多数网络管理员为默认网关上的局域网侧网卡【LAN-side NIC】提供该网络标识【network ID】中最低的主机地址,通常其主机标识【host ID】为1。因此,如果网络标识【network ID】为22.33.4.x,路由器配置为使用地址22.33.4.1。

路由器使用网络标识【network ID】来确定网络流量。 图 6-24 显示了一个带有两个网卡【NIC】的小型路由器的示意图,类似于您在许多家庭中看到的路由器。 请注意,一个端口 (202.120.10.1) 连接到局域网【LAN】,另一个端口连接到 Internet 服务提供商的网络 (14.23.54.223)。 这个路由器内置了一个路由表,实际的指令告诉路由器如何处理传入的数据包以及将它们发送到哪里。

Figure 6-24 Router diagram

现在让我们加入局域网【LAN 】和 Internet(如图 6-25)。 顺便说一下,当从网络标识【network ID】的角度讨论网络时,尤其是书中的插图时,通常的做法是在程式化的网络周围画一个圆圈。 在这里,您应该关注的是网络标识【network ID】,而不是网络的细节。

Figure 6-25 LAN, router, and the Internet

网络标识【network ID】非常灵活,只要没有两个互连的网络共享相同的网络标识【network ID】即可。 如果您愿意,可以将 202.120.10.0 网络的网络标识【network ID】更改为 202.155.5.0 或 202.21.8.0,只要您能保证广域网【WAN 】上没有其他局域网【LAN 】在共享相同的网络标识【network ID】。 在 Internet 上,强大的管理机构小心地分配网络标识【network ID】,以确保没有两个局域网【LAN 】共享相同的网络标识【network ID】。 我将在本章后面详细讨论它是如何工作的。

到目前为止,您只看到了IP地址中最后一个值为 0 的网络标识【network ID】示例。 这在小型网络中很常见,但这也带来限制。 例如,网络标识【network ID】为 202.120.10.0 时,网络限制为 202.120.10.1 到 202.120.10.254 的 IP 地址(202.120.10.255 是用于与局域网【LAN】上的每台计算机通信的广播地址)。这仅提供 254 个 IP 地址:对于小型网络来说足够了,但许多组织需要更多的 IP 地址。 不用担心! 您可以简单地使用带有多个零的网络标识【network ID】,例如 170.45.0.0(总共 65,534 台主机)或甚至 12.0.0.0(约 1670 万台主机)。

网络标识【network ID】使您能够将多个局域网【LAN 】连接到一个广域网【WAN】。 然后路由器将所有东西连接在一起,使用路由表来跟踪哪些数据包去了哪里。 这样就完成了第二个任务:使用路由器连接局域网,并为这些路由器提供一种将数据包发送到正确网络的方法。

既然您已经了解了IP寻址在局域网【LAN】和广域网【WAN】上的工作方式,现在让我们看看IP如何使网络上的每台计算机能够识别数据包是要发送到局域网上的计算机还是广域网上的计算机。这其中的秘密就是所谓的子网掩码。

Subnet Mask

想象一下这个场景。 三个朋友坐在他们的电脑前——电脑 A、B 和 C——想要互相交流,如图 2-26 所示。 从图中可以看出,计算机 A 和 B 位于同一局域网【LAN】中,而计算机 C 位于完全不同的局域网【LAN】中。 IP 寻址方案可以处理这种通信,所以让我们看看它是如何工作的。

Figure 6-26 The three amigos, separated by walls or miles

将数据包发送到本地计算机的过程,与将数据包发送到远端计算机的过程是非常不同的。 如果一台计算机想要发送一个数据包到本地计算机,它必须发送一个广播来获取另一台计算机的MAC地址 (很容易忘记MAC地址,但是记住网络使用以太网,必须有MAC地址才能将数据包发送到另一台计算机)。 如果报文是发送给远程网络中的某台计算机的,则发送计算机必须将报文发送到默认网关(如图6-27所示)。

Figure 6-27 Sending a packet remotely

在图 6-26 所示的场景中,计算机 A 想要向计算机 B 发送数据包。计算机 B 与计算机 A 在同一局域网中,但这引出了一个问题:计算机 A 是如何知道这一点的? 每台 TCP/IP 计算机都需要一个工具来告诉发送计算机目标 IP 地址是本地 IP 地址还是远程 IP 地址。 这个工具就是子网掩码。

子网掩码只不过是一串 1 后跟着一些 0,总长度为 32 位,它们被输入到每个 TCP/IP 主机中。 以下是一个典型的子网掩码示例:

11111111111111111111111100000000

我们将其转换为点分十进制。 首先,添加一些句点分隔符:

11111111.11111111.11111111.00000000

然后将每个八位字节转换为十进制(使用计算器):

255.255.255.0

当您将 IP 地址与相应的二进制子网掩码对齐时,与子网掩码中 1 对齐的 IP 地址部分就是 IP 地址的网络标识【network ID】部分。 与子网掩码中 0 对齐的部分是主机标识【host ID】。对于简单的IP地址,您可以用点分十进制看到这个,但是为了真正理解计算机的工作方式,您需要看到二进制。

IP 地址 192.168.5.23 的子网掩码为 255.255.255.0。 将两个数字都转换为二进制,然后将完整的 IP 地址与子网掩码的 1 和 0 进行比较:

在计算机发送任何数据之前,它首先使用子网掩码将目标 IP 地址与其自己的 IP 地址进行比较:

  • 如果目标IP地址与本机IP地址中与子网掩码中 1 对齐的部分完全匹配,那么发送计算机就知道目标 IP 是本地的
  • 如果目标IP地址与本机IP地址中与子网掩码中 1 对齐的部分不完全匹配,那么发送计算机就知道目标 IP 是远程的

让我们去计算机 A 看看子网掩码是如何工作的。 计算机 A 的 IP 地址是 192.168.5.23。 将其转换为二进制:

11000000.10101000.00000101.00010111

现在把句点去掉,因为它们对计算机没有任何意义:

11000000101010000000010100010111

假设计算机 A 想要发送一个数据包给计算机 B 。计算机 A 的子网掩码是 255.255.255.0。计算机 B 的IP地址为 192.168.5.45 。将此地址转换为二进制:

11000000101010000000010100101101

计算机 A 使用子网掩码将其 IP 地址与计算机 B 的 IP 地址进行比较,如图 6-28 所示。 为清楚起见,我添加了一行来显示子网掩码中 1 的结束位置和 0 的开始位置。 计算机当然不需要漂亮的(红色)线!

Figure 6-28 Comparing addresses

啊哈! 计算机 A 和计算机 B 的网络标识【network ID】匹配! 这是一个本地调用。 知道了这一点,计算机 A 现在可以发出 ARP 请求,这是一个广播,如图 6-29 所示,以确定计算机 B 的 MAC 地址。 地址解析协议 (ARP) 是 TCP/IP 网络根据目标 IP 地址计算出 MAC 地址的方式。

Figure 6-29 Comparing addresses again

但是当计算机 A 想要向计算机 C 发送数据包时会发生什么? 首先,计算机 A 使用子网掩码,将计算机 C 的 IP 地址与其自己的 IP 地址进行比较(图 6-29)——结果不匹配; 因此,这是一个远程调用。

每当计算机想要发送到另一个局域网【LAN 】上的 IP 地址时,它就知道要将数据包发送到默认网关。 它仍然发出 ARP 请求,但这次是学习默认网关的 MAC 地址(图 6-30)。 一旦计算机 A 获得默认网关的 MAC 地址,它就会开始发送数据包。

Figure 6-30 Sending an ARP request to the gateway

子网掩码用点分十进制表示,就像 IP 地址一样——请记住,两者都是真正的 32 位二进制数。 以下所有内容(以二进制和点分十进制格式显示)都可以是子网掩码:

大多数网络工作者使用特殊的简写来表示子网掩码:一个字符 / ,后面跟着一个数字,该数值等于子网掩码中1的个数。以下是一些例子:

后跟 / 和数字的 IP 地址,可以在一个语句中告诉您 IP 地址和子网掩码。 例如 201.23.45.123/24 就是 IP 地址 201.23.45.123,子网掩码 255.255.255.0。 同理,184.222.4.36/16 是 IP 地址184.222.4.36,子网掩码 255.255.0.0。

幸运的是,计算机会自动进行子网过滤。 网络管理员只需在首次设置系统时输入正确的 IP 地址和子网掩码,其余的工作无需任何人工干预。

注意 根据定义,同一网络中的所有计算机具有相同的子网掩码和网络标识【network ID】

如果您希望计算机在路由网络(如 Internet)中工作,您绝对必须拥有一个 IP 地址(该 IP 地址是其网络标识【network ID】的一部分),一个子网掩码和一个默认网关。无一例外!

Class IDs

Internet 是迄今为止最大和最复杂的 TCP/IP 互联网络。十年前计算机的数量已经超过五亿台,它发展得如此之快,以至于现在几乎不可能找到一个准确的数字。互联网面临的一项挑战是确保没有两台设备共享相同的公共 IP 地址。为了支持 IP 地址的分散,成立了一个名为 Internet Assigned Numbers Authority (IANA) 的组织,以跟踪和分散 IP 地址给需要它们的人。在1998年之前,IANA最初由一个人(著名的Jon Postel)管理,现在它迅速发展,监管着五个地区互联网注册管理机构(RIR),这些注册管理机构将IP地址分配给大型 ISP 和大公司。北美的 RIR 被称为美国互联网号码注册机构 (ARIN)。所有终端用户都从各自的 ISP 获得 IP 地址。IANA以称为网络块【network blocks】(或简称块【blocks】)的连续块的形式传递 IP 地址,如下表所示:

例如,典型的 A 类网络块具有从 1 到 126 开始的网络标识【network ID】; 该网络上的主机只有第一个共同的八位字节,而其他三个八位字节可以是任何数字。 由三个八位字节用于主机,这意味着您拥有大量可能的主机,超过 1600 万种不同的数字组合。 A 类网络块的子网掩码是 255.0.0.0,这意味着主机标识【host ID】有 24 位。

还记得二进制数学吗 ? 2 ^ 24 = 16,277,216。因为主机不能使用全零或全一(它们分别是为网络标识【network ID】和广播 IP 保留的),所以您从最终结果中减去 2 ,就可以得到可用的主机标识【host ID】。

B类网络块,子网掩码为 255.255.0.0 ,使用前两个八位字节定义网络标识【network ID】。这样就剩下两个八位字节来定义主机标识【host ID】,这意味着每个 B 类网络标识【network ID】最多可以有65,534个不同的主机。

C 类网络块使用前三个八位字节来定义网络标识【network ID】。例如,网络 192.168.35.0 中的所有主机的前三个数字均相同。只有最后一个八位字节定义了主机标识【host ID】,这就只剩下 254 个可能的唯一地址。C 类网络块的子网掩码为 255.255.255.0。

多播类块用于一对多通信,例如在流式视频会议中。发送数据包的方式有三种:

  • 广播,局域网内的每台计算机都能听到信息
  • 单播,一台计算机直接向另一个用户发送信息
  • 多播,一台计算机向一组感兴趣的计算机发送一个数据包。多播通常用于路由器之间的通信。

实验类地址是保留的,除非偶然的实验原因,否则从不使用。这些最初被称为保留地址。

注意 一定记住 IP 网络类块! 您应该能够通过查看任何 IP 地址,来知道其所属网络类块。

这是一个有用的技巧:

  • A 类地址的第一个二进制八位字节总是以 0 (0xxxxxxx) 开头;
  • 对于 B 类,它以 10 (10xxxxxx) 开头;
  • 对于 C 类,使用 110 (110xxxxx);
  • 对于 D 类,使用 1110 (1110xxxx);
  • 对于 E 类,它以 1111 (1111xxxx) 开头。

在互联网的最初几年,IP 网络类块运行得很好,但很快就遇到了麻烦,因为它们并不适合所有人。 IANA相当慷慨地提供了IP网络块,也许是太慷慨了。 随着时间的推移,未分配的 IP 地址变得稀缺。 此外,IP类块的概念伸缩性不好。 例如,如果一个组织需要 2,000 个 IP 地址,它要么必须占用单个 B 类网络块(浪费 63,000 个地址),因此,产生了一种新的 IP 地址块生成方法,称为无类别域间路由【Classless Inter-Domain Routing】(CIDR)。

CIDR and Subnetting

CIDR 基于称为子网划分的概念:将一类 IP 地址分成多个较小的组。 CIDR 和子网划分实际上是一回事。 子网划分是由一个组织完成的——给定一个地址块,然后将单个地址块分解为多个子网。 CIDR 由 网络服务提供商【ISP】完成——给它一个地址块,将该地址块划分为多个子网,然后将较小的单个子网分发给客户。 子网和 CIDR 已经存在很长时间了,除了最小的TCP/IP网络外,它是所有网络的关键部分。 让我们先讨论子网划分,然后再回过头来讨论 CIDR。

Subnetting

与网络类块相比,子网划分可以更有效地使用 IP 地址。 它还使您能够分离网络,以确保安全(一组公共访问计算机与您更多的私人计算机分离分开)和带宽控制(将使用频繁的局域网【LAN】与使用不频繁的局域网【LAN】分离开来)。

子网划分的基石在于子网掩码。 您可以使用现有的 /8、/16 或 /24 子网,并通过添加更多 1(并去掉相应数量的0)来扩展子网掩码。 例如,假设您有一个网咖,大约有 50 台计算机,其中 40 台用于公共用途,10 台用于后台办公室的会计等(图 6-31)。 您的网络标识【network ID】是 192.168.4.0/24。 您想阻止使用公共系统的人访问您的私有机器,因此您决定创建子网。 您可能还拥有无线 Internet,并希望将无线客户端(不超过 10 个)分隔在它们自己的子网上。

Figure 6-31 Layout of the network

关于子网划分,您需要记住两件事:

  • 首先,从给定的子网掩码开始,将其向右移动,直到获得所需的子网数量。
  • 第二,忘记 IP 中的那些点。

切勿在未先转换为二进制格式的情况下尝试进行子网划分。 很多技术人员都是我所说的“点受害者”。 他们习惯于只使用网络类块,以至于忘记了子网不仅仅是 /8、/16 和 /24 网络。 网络标识【network ID】没有理由必须以点【.】结尾。 至少,在计算机看来,/26、/27 甚至 /22也是可以的。 这里的技巧是不要只考虑点分十进制格式的网络标识【network ID】和子网掩码,而是返回到二进制格式。

 让我们开始对网咖的网络 192.168.4.0/24 进行子网划分。 首先将子网掩码上的 0 改为 1,这就使得 /24 子网变成了 /25 子网

11111111111111111111111100000000    /24

11111111111111111111111110000000    /25

下面开始计算主机

在更进一步之前,您需要回答这个问题:在 /24 网络上,您可以拥有多少台主机? 如果您使用点分十进制表示法,您可能会说以下内容:

192.168.4.1 to 192.168.4.254 = 254 hosts

但是如果使用二进制表示法,在 /24 网络中,您将有八个可以作为主机标识【host ID】的 0:

00000001 to 11111110 = 254

这里有一个简单的数学公式:2 ^ x – 2,其中 x 代表子网掩码中 0 的数量。

2 ^ 8 – 2 = 254

如果您还记得这个简单的公式,就可以随时确定给定子网中的主机数量。 这很关键! 记住这个!

如果您的网络上有一个 /16 子网掩码,那么您可以在该网络上拥有的最大主机数是多少?

  1. 因为子网掩码总共有 32 位长,所以 /16 子网意味着在 16 个 1 之后还剩下 16 个 0
  2. 共计 2 ^ 16 – 2 = 65,534 个主机

如果您的网络上有一个 /26 子网掩码,那么您可以在该网络上拥有的最大主机数是多少?

  1. 因为子网掩码总共有 32 位长,所以 /16 子网意味着在 26 个 1 之后还剩下 6 个 0
  2. 共计 2 ^ 6 – 2 = 62 个主机

优秀!知道如何确定子网掩码的主机数量将极大地帮助您,稍后您将看到这一点。

现在让我们来创建一个子网。所有子网划分都以单个网络标识【network ID】开始。在这种情况下,您需要将网咖的 192.168.4.0/24 网络标识【network ID】转换为三个网络标识【network ID】:一个用于公共计算机,一个用于私有计算机,一个用于无线客户端。

子网划分的主要工具是现有的子网掩码。 用二进制形式写出来。 如图 6-32 所示,我们在子网掩码的 1 的结束处放置了一条线。

Figure 6-32 Step 1 in subnetting

我们在前一条线的右侧再画一条线,如图6-33所示。你现在把子网掩码分成三个区域,分别称作(从左到右):

  1. 默认子网掩码(DSM)
  2. 网络标识拓展(NE)
  3. 主机(H)

 

Figure 6-33 Organizing the subnet mask

您现在有一个 /25 子网掩码。 在这一点上,大多数第一次学习如何进行子网划分的人开始崩溃。 他们受到以下想法的挑战:/25 的子网掩码不符合 255.0.0.0、255.255.0.0 或 255.255.255.0 三个漂亮子网之一。 他们认为:“这不可能!子网掩码仅由 255 和 0 组成”。 这是不对的。 子网掩码是一串 1 后跟着一串 0 。

人们只有将其转换为点分十进制才能将其输入计算机。 因此,将 /25 转换为点分十进制。 首先写出 25 个 1,然后是 7 个 0(请记住,子网掩码的长度始终为 32 个二进制数字)。

11111111 11111111 11111111 10000000

在每8位数字之间插入句点:

11111111.11111111.11111111.10000000

然后将它们转换为点分十进制:

255.255.255.128

当您对网络标识【network ID】进行子网划分时,您需要遵循由开发 TCP/IP 的好伙计们所规定的规则和约定,以确保您的新子网能够相互之间以及与更大的网络进行交互。 对于子网划分,您只需要记住:从一个起始子网掩码(DSM)开始,然后扩展出子网扩展(NE),直到您拥有所需的子网数量。 确定创建多少子网的公式是:2^{y},其中 y 是添加到子网掩码的额外比特数。

让我们练习几次。 如图 6-34 所示,起始子网掩码是 255.255.255.0。 如果您将网络标识【network ID】扩展 1 位,则它只是一位数字,那么它创建子网数是 2^{1}

Figure 6-34 Initial subnetting

该一位数字只能取值 0 或 1,这为您提供了两个子网。 您只有一个问题——网咖需要三个子网,而不是两个! 因此,让我们将 /24 子网划分为 /26。 将网络标识【network ID】扩展两位数字,会创建出四个新网络标识【network ID】,2^{2} = 4。要查看每一个网络标识【network ID】,首先将原始网络标识【network ID】 - 192.168.4.0 - 转换为二进制。 然后在末尾添加四个不同的网络标识扩展(NE),如图6-35所示。

Figure 6-35 Creating the new network IDs

图 6-36 展示了四个新网络标识【network ID】下的所有 IP 地址。

Figure 6-36 New network ID address ranges

 现在将这四个网络标识【network ID】转换回点分十进制:

恭喜你!您刚刚使用一个网络标识【network ID】 192.168.4.0/24,并将其划分为四个新的网络标识【network ID】! 图 6-37 展示了如何在网络中使用这些新的网络标识【network ID】。

Figure 6-37 Three networks using the new network IDs

您可能会注意到网咖只需要三个子网,但您创建了四个子网——您浪费了一个。 由于子网是由 2 的幂创建的,因此您创建的子网通常会超出您的需要——欢迎使用子网划分。

为了进行更多的子网划分练习,让我们在 /27 网络上创建 8 个子网。首先,将网络标识拓展【NE】移动 3 位(如图 6-38所示)。

Figure 6-38 Moving the network ID extension three digits

为了帮助您可视化地址范围,我将只计算前两个子网——使用 000 和 001(如图 6-39)。

Figure 6-39 Two of the eight network ID address ranges

请注意,在这种情况下,每个网络标识【network ID】 只能获得 2^{5} - 2 = 30 个主机! 这些最好是小型网络!

将这些转换为点分十进制,得到:

192.168.4.0/27 (192.168.4.1–192.168.4.30)

192.168.4.32/27 (192.168.4.33–192.168.4.62)

192.168.4.64/27 (192.168.4.65–192.168.4.94)

192.168.4.96/27 (192.168.4.97–192.168.4.126)

192.168.4.128/27 (192.168.4.129–192.168.4.158)

192.168.4.160/27 (192.168.4.161–192.168.4.190)

192.168.4.192/27 (192.168.4.193–192.168.4.222)

192.168.4.224/27 (192.168.4.225–192.168.4.254)

这两个示例都是从 C 类地址开头。 但是,您可以从任何起始网络标识【network ID】开始。 。你刚刚学到的过程没有任何改变。

本子网划分介绍中使用的示例采用单个网络 ID 并将其切成大小相同的子网。 最简单的子网划分示例,换句话说,从一个 /24 网络 ID 创建了四个 /26 子网。 但是,您可以使用可变长度子网掩码 (VLSM) 来改变创建的子网的大小。 ISP 可能会这样做以适应不同的客户需求,使用单个网络 ID 并分发自定义子网。 约翰的小公司可能会得到一个 /30 子网; Jennie 的大公司可能会获得一个 /26 子网以容纳更多用户。

本文介绍的子网划分示例使用单个网络标识【network ID】,并将其分割成大小相同的子网。最简单的子网划分示例,即从一个 /24的网络标识【network ID】中创建 4 个 /26 子网。 但是,您可以使用可变长度子网掩码 (VLSM) 来改变创建的子网的大小。ISP 这样做可能是为了满足不同的客户需求,采用单一的网络标识【network ID】并分发自定义子网。John 的小公司可能会得到 /30 子网;Jennie的大公司可能会得到一个 /26 子网来容纳更多的用户。

CIDR: Subnetting in the Real World

我需要告诉你一个秘密——你永远不必在现实世界中进行子网划分的可能性高于平均水平。 这并不是说子网划分不重要。 它是互联网结构的关键部分。 子网划分最常发生在两种情况下:ISP 从 RIR 接收网络块,然后为客户划分这些块的子网,以及采用子网(有时已经从 ISP 划分类块的子网)并创建自己的子网的大型客户。 即使您永远不会在现实世界中创建一个工作子网,也有几个原因可以学习子网划分。

我需要告诉你一个秘密——在现实世界中,你很有可能永远不用做子网。这并不是说子网不重要。它是互联网结构的关键部分。子网划分通常发生在两种情况下:

  • ISP 从 RIR 接收网络块,然后为客户划分这些块的子网
  • 非常大的客户接受子网(有时是已经被 ISP 子网划分了的类块),并形成自己的子网

即使您在现实世界中永远不会创建一个工作子网,也有几个学习子网划分的理由。

首先,也是最明显的,CompTIA Network+ 考试要求您了解子网划分。 对于考试,您需要能够使用任何现有的网络标识【network ID】并将其分解为给定数量的子网。 您需要知道生成的网络标识【network ID】 拥有多少台主机。 您需要能够计算每个新网络标识【network ID】的 IP 地址和新子网掩码。

其次,即使您从未进行过自己的子网划分,您也很可能会从 ISP 获得 CIDR【Classless Inter Domain Routing】 地址。 你不能用点分十进制来考虑子网掩码。 您需要根据 CIDR 值(如 /10、/22、/26 等)来考虑子网。

第三,你将有更好的机会获得更高级的 IT 认证。大多数 Cisco 、许多 Microsoft 和许多其他认证都假定您了解子网划分。子网划分是一个能力标准,每个认真对待网络的人都能详细地理解这个标准——它明确区分了了解网络的人和不了解网络的人。

IP Address Assignment

Whew!在完成所有子网划分之后,您已经到了该开始使用一些 IP 地址的时候了。 毕竟,这就是经历所有痛苦的目标。

有两种方法可以为主机提供 IP 地址、子网掩码和默认网关:

  • 静态寻址:通过手工键入所有信息
  • 动态寻址:通过在系统上运行一个服务器程序,当系统启动或连接到网络时,自动将所有IP信息传递给系统

此外,您必须了解几个专业IP地址,它们在IP世界中具有独特的含义,才能使这一切正常工作起来。

静态IP寻址【Static IP Addressing】

静态寻址意味着将所有 IP 信息键入到每台主机中。 但是在你键入任何东西之前,你必须回答两个问题:

  1. 你在键入什么?
  2. 你在哪里键入?

让我们考虑一个四节点网络,如图 6-40 所示。

Figure 6-40 A small network

为了使这个网络发挥作用,每台计算机都必须有一个 IP 地址、一个子网掩码和一个默认网关。 首先,确定要使用的网络标识【network ID】。 在过去,ISP 会为您提供一组 IP 地址供您使用。 假设仍然是这种方法,并且您已经被分配了一个C类网络块:197.156.4.0/24 。 互联网寻址的第一条规则是……没有人谈论互联网寻址。实际上,我们可以把《搏击俱乐部》的说法改一改,而是说,“互联网寻址的第一条规则是,您可以使用自己的网络标识【network ID】做任何想做的事情。” 除了确保每台计算机获得一个合法的 IP 地址和网络标识【network ID】的子网掩码,并确保每个 IP 地址都是唯一的之外,没有其他规则。 您不必按顺序使用这些数字,也不必为默认网关提供 192.156.4.1 地址——你想怎么做都行。也就是说,大多数网络都遵循一套共同的原则:

  1. 为默认网关提供网络标识【network ID】中的第一个 IP 地址。
  2. 尝试按顺序使用 IP 地址
  3. 尝试将服务器和客户端分开。例如,服务器的 IP 地址可能是从 197.156.4.10 到 197.156.4.19,而客户端的范围从 197.156.4.200 到 197.156.4.254。
  4. 无论你选择做什么,都要记录下来,这样你后面的人就会明白。

这些原则已成为网络技术的非官方标准,遵循它们将使您在未来必须管理您的网络的任何人中都非常受欢迎。

现在您可以为每台计算机指定 IP 地址、子网掩码和默认网关。

每个操作系统都有一些方法供您输入静态 IP 信息。 在 Windows 中,您使用Internet Protocol Version 4 (TCP/IPv4) 属性对话框,如图 6-41 所示:

Figure 6-41 Entering static IP information in Windows Internet Protocol Version 4 (TCP/IPv4) Properties dialog

在macOS操作系统中,运行"System Preferences"中的"Network"工具,输入 IP 信息,如图6-42所示。

Figure 6-42 Entering static IP information in the macOS Network utility

在 UNIX/Linux 系统中,输入 IP 信息的通用工具是命令行 ip 命令:

关于使用 ip 命令设置静态 IP 地址的警告:输入的任何地址都不会是永久的,并且会在重新启动时丢失。 要使新的 IP 地址永久化,您需要找到并编辑您的网络配置文件。 幸运的是,现代发行版让您的生活更轻松。 几乎每种 UNIX/Linux 版本都带有一些方便的图形程序,例如流行的 Ubuntu Linux 发行版中的网络配置(如图 6-43)。

Figure 6-43 Entering static IP information in the macOS Network utility

在添加了至少两个系统的 IP 信息后,您应该使用 ping 命令进行验证,如图6-44所示。

Figure 6-44 Ubuntu’s Network Configuration utility

如果您输入了 IP 地址但 ping 不成功,请首先检查您的 IP 设置。 很有可能你打错了。 否则,请检查您的连接、驱动程序等。 静态寻址已经存在很长时间了,并且仍然大量用于网络中更关键的系统。 然而,静态寻址带来了一个大问题:对网络进行任何更改都是非常痛苦的。 今天的大多数系统都使用一种更简单、更灵活的方法来获取其 IP 信息:动态 IP 寻址。

Dynamic IP Addressing

动态 IP 寻址,更广为人知的名称是动态主机配置协议 (DHCP),只要计算机连接到网络,它就会自动分配一个 IP 地址。 DHCP 的工作非常简单。 任何使用 DHCP 的网络都由一个 DHCP 服务器和许多 DHCP 客户端组成。 客户端从 DHCP 服务器请求 IP 信息。 DHCP 服务器依次将 IP 信息传递给客户端(图 6-45)。 在大多数网络中,大多数主机(台式机、笔记本电脑和移动设备)都是 DHCP 客户端。 大多数网络都有一个 DHCP 服务器,它通常内置于小型办公室/家庭办公室 (SOHO) 网络的路由器中,或者运行在企业网络的服务器上。

Figure 6-45 DHCP server and clients

How DHCP Works ?

当 DHCP 客户端启动时,它会使用广播地址自动发送一条特殊的 DHCP Discover 消息。 此 DHCP Discover 消息询问:“是否有 DHCP 服务器?” (如图 6-46)。

Figure 6-46 Computer sending out a DHCP Discover message

DHCP 服务器收到请求,然后向 DHCP 客户端发送 DHCP Offer 消息(图 6-47)。 该消息包括 IP 地址、子网掩码和网关(以及本书尚未涵盖的其他信息)。

Figure 6-47 DHCP server sending a DHCP Offer message

DHCP 客户端发出一个 DHCP Request——一个糟糕的名称选择,因为它确实在接受邀约——验证邀约是否有效。 DHCP Request非常重要,因为它告诉网络此客户端正在接受来自此 DHCP 服务器的 IP 信息。

然后 DHCP 服务器发送 DHCP Acknowledgment 并在数据库中列出 MAC 地址以及提供给 DHCP 客户端的 IP 信息(如图 6-48)。

Figure 6-48 DHCP Request and DHCP Acknowledgment

在此四步 DHCP 操作(称为 DHCP 四次握手,或 DORA,表示发现【Discover】, 邀约【Offer】, 请求【Request】和 确认【Acknowledgment】)结束时,DHCP 客户端获得 DHCP 租约。 DHCP 租期是固定的,通常为一到八天。 当租期临近结束时,DHCP 客户端再次发送DHCP Request 报文。

DHCP 服务器查看 MAC 地址信息并始终为 DHCP 客户端提供相同的 IP 信息,包括相同的 IP 地址。

Configuring DHCP !

一个正常运行的DHCP网络需要配置正确的 DHCP 客户端和 DHCP 服务器。让我们看看客户端和服务器的配置。

配置DHCP 客户端比较简单,一般情况下,每台主机都是预配置为 DHCP 客户端。每个操作系统都有一些方法来告诉计算机使用 DHCP,如图 6-49 所示的Windows 示例所示。

Figure 6-49 Setting up for DHCP

DHCP使用UDP端口67和68。是的,记住这些数字。

另一方面,DHCP 服务器需要一些手动配置。 考虑一下 DHCP 服务器需要什么:

  • 它需要一个可以传递给客户端的合法 IP 地址池
  • 它需要知道网络的子网掩码
  • 它需要知道网络默认网关的IP 地址

当技术人员安装 IP 地址范围(或称为 IP 地址池)时,这称为 DHCP scope(DHCP 租用域)。 图 6-50 显示了典型的家用路由器的 DHCP 设置。 请注意,它传递的 DHCP scope(DHCP 作租用域)从 192.168.1.100 到 192.168.1.150。 您还可以看到输入子网掩码的地方。 它还传递其他信息,称为租用域选项【scope options】,其中涵盖许多选项,例如默认网关、DNS 服务器、网络时间服务器等。

Figure 6-50 DHCP server main screen

那么默认网关设置在哪里? 这个家庭路由器假定它是默认网关(一个相当安全的猜测),所以它会自动传递自己的 IP 地址(在不同的屏幕上配置)。

请注意图 6-50 中启用【Enable】、禁用【Disable】和 DHCP 中继【DHCP Relay 】的设置。 因为除了极罕见的情况外,小型局域网上应该只有一个 DHCP 服务器,因此提供一个选项来禁用此路由器上的 DHCP 服务器会很方便。 DHCP 中继稍微复杂一些,让我们花点时间了解一下这个强大的功能。

HCP Relay DHCP 依靠广播来工作。 DORA 最初由三个广播组成,因为 DHCP 客户端试图找到 DHCP 服务器,而 DHCP 服务器提供 IP 信息。 只有第四步——确认【Acknowledge】——是单播的(在 DHCP 更新时,一切都是单播的,因为客户端已经有一个有效的 IP 地址并且知道 DHCP 服务器的 IP 地址)。在广播域中使用广播很有效。 但是所有路由器都会阻止广播流量(如果们不这样做,整个 Internet 将只包含广播)。 请参见图 6-51。

 

Figure 6-51 Routers block DHCP broadcasts.

然而,在某些情况下,将 DHCP 服务器与 DHCP 客户端放置在同一局域网中是困难的或不切实际的。一个拥有多个独立局域网【LAN】的机构,也需要许多独立的 DHCP 服务器,这是一个管理噩梦。这些情况需要使用 DHCP 中继【DHCP relay】(或DHCP relay agent)。大多数路由器都内置 DHCP 中继,它接收来自客户端的 DHCP 广播报文,然后通过单播地址将广播报文直接发送给 DHCP 服务器(如图6-52所示)。

Figure 6-52 DHCP relays enable DHCP traffic to cross routers.

要使具有 DHCP 中继功能的设备工作,您必须为中继提供真实 DHCP 服务器的 IP 地址,也称为 IP helper 地址。 请参阅图 6-50 以查看在 DHCP 服务器单选按钮下方添加 IP helper 地址的位置。

DHCP Reservation  SOHO 路由器附带的 DHCP 服务器对于小型网络来说绰绰有余,但仅使用了 DHCP 的一小部分功能,尤其是 DHCP IP 预留【DHCP IP reservations】功能。 企业网络通常包含一些只使用静态 IP 地址的主机。文件服务器、打印机、相机、多功能设备和许多其他主机都不应该使用 DHCP;用户需要一个永久的、固定的、静态的 IP 地址来定位这些设备(如图6-53)。

Figure 6-53 Many devices do not need DHCP.

在大多数情况下,为某些特定类型的设备预留出 IP 地址是个好主意。 这是一个使用网络标识【network ID】为 192.168.4.0 的示例:

  • 路由器和交换机在最后一个八位字节中得到 .1 到 .10
  • 服务器在最后一个八位字节中得到 .11 到 .30
  • 有线 DHCP 客户端在最后一个八位字节中得到 .1 到 .99
  • 打印机、相机和无线接入点在最后一个八位字节中获得 .100 到 .149
  • 无线 DHCP 客户端在最后一个八位字节中得到 .150到 .254

但是,在某些情况下,DHCP 池中可能有一两个地址已配置为静态地址,您不希望 DHCP 服务器向 DHCP 客户端发出这些地址。 在这种情况下,使用 IP 排除【IP exclusion】。 Windows Server 自带的内置 DHCP 工具中设置 IP 排除的配置界面如图 6-54 所示。

Figure 6-54 DHCP Server configuration screen showing IP exclusion

 

MAC Reservations 另一个有趣但很少使用的 DHCP 选项是 MAC 预留【MAC reservation】。 对于某些网络,为服务器分配 DHCP-assigned 地址比静态设置更方便。 为此,请将 DHCP 服务器设置为使用 MAC 预留【MAC reservation】。 MAC 预留【MAC reservation】将特定 IP 地址分配给特定 MAC 地址。 从现在开始,只要该 MAC 地址的系统发出 DHCP 请求, MAC 预留【MAC reservation】就可以保证该系统将获得相同的 IP 地址。 配置MAC 预留【MAC reservation】的Windows DHCP Server如图6-55所示。

Figure 6-55 DHCP Server configuration screen showing MAC reservation

 

对于 Windows DHCP,图 6-56 显示 Windows Server 自带的 DHCP Server 工具的配置界面【configuration screen】。 图 6-57 中显示的是相同的 DHCP Server 工具,只不过这里详述的是选项界面【options screen】。 此时,您可能不确定这些选项是用于什么的。 别担心, 我将在后面的章节中回到这些主题。 

Figure 6-56 DHCP Server configuration screen

 

Figure 6-57 DHCP Server options screen

 

Living with DHCP

DHCP 非常方便,因此非常受欢迎。 它对用户也是完全透明的。 他们只需打开台式机、笔记本电脑和移动设备,DHCP 即可工作。 这种透明度是有代价的,因为当 DHCP 中断时,用户无法获得 IP 信息,也无法访问网络,这使得非常透明的事情变得非常明显——以一种壮观的方式! 花时间了解一些与 DHCP 相关的基本问题,可以让这些壮观的事件变得不那么引人注目。

No DHCP Server  最大的问题是当 DHCP 客户端尝试获取 DHCP 地址并失败时。 当这种情况发生时,你会知道,因为操作系统会发出某种形式的错误,告诉你有问题(如图 6-58),并且 DHCP 客户端在 169.254.0.0/16 网络标识【netwrok ID】 中会有一个相当奇怪的地址。

Figure 6-58 DHCP error in Windows 7

 

这个特殊的 IP 地址是由一个版本的零配置网络【zero-configuration networking 】 (zeroconf) 生成的。 Microsoft 的实现称为自动私有 IP 寻址【Automatic Private IP Addressing】 (APIPA)。

如果所有 DHCP 客户端在没有收到对 DHCP 发现报文的响应之前,它们都被设计为自动生成一个 APIPA 地址。 客户端只生成 APIPA 地址的最后两个八位字节。 这至少允许单个网络上的动态客户端继续相互通信,因为它们位于相同的网络标识【network ID】上。

不幸的是,APIPA 无法发出默认网关,因此您永远无法使用 APIPA 访问 Internet。 这为 DHCP 问题场景提供了一个重要线索:您可以与网络上在 DHCP 服务器关闭后出现的其他计算机通信,但您无法访问 Internet 或访问预留 DHCP 给定地址的计算机。

 EXAM TIP 使用静态IP地址的系统永远不会有DHCP问题。  

如果您无法访问 Internet,请使用您的操作系统提供的任何工具来检查您的 IP 地址。 如果是 APIPA 地址,您会立即知道您遇到了 DHCP 问题。 首先,尝试手动重新建立租约。 每个操作系统都有一些方法可以做到这一点。 在 Windows 中,您可以键入以下命令:

 对于 macOS,转到系统偏好设置【System Preferences】中,并使用网络实用程序【Network utility】(图 6-59)

Figure 6-59 Network utility in System PreferencesEXAM

 

EXAM TIP CompTIA 喜欢问 TCP 和 UDP 端口号,因此请确保您知道 DHCP 服务器使用 UDP 端口 67,而客户端使用端口 68。

有时你可能会发现自己处于这样一种情况,你的计算机会感到困惑,无论你如何尝试,都获取不到 IP 地址。 在这种情况下,你应该首先强制电脑释放它的租约。 在 Windows 中,进入命令提示符并输入这两个命令;依次按 ENTER 键:

在 macOS 中,使用 ifconfig 命令释放和更新 DHCP 地址。 以下是释放的语法: 

 

接下来是更新的语法:

 Linux 可以使用已弃用的 ifconfig 命令,其语法与上述相同,但更好的工具是 dhclient。 这是要释放的语法,然后是要更新的语法:

 

Multiple DHCP Servers  单个 DHCP 服务器为网络带来了单点故障。 如果这台服务器死了,顶多没人能上网; 在最坏的情况下,没有人可以做任何事情。 为了避免这个问题,更大的网络——比如企业——会选择运行多个 DHCP 服务器。 您可以通过几种方式做到这一点。 这样,哪个 DHCP 服务器应答就无关紧要了。 假设您的网络标识【netwotk ID】为 172.13.14.0。 您可以这样配置两个 DHCP 服务器:

  • DHCP Server 1: Scope 172.13.14.200–172.13.14.225
  • DHCP Server 2: Scope 172.13.14.226–172.13.14.250

每个 DHCP 服务器仍将使用相同的子网掩码、默认网关等。

 

两个独立的 DHCP 服务器增加了两倍的管理负载,因此一个更优雅的解决方案称为 DHCP 故障转移【DHCP failover】。 在 DHCP 故障转移【DHCP failover】中,两个且只有两个 DHCP 服务器协同工作为网络提供 DHCP。 在 Windows Server 2012 中首次得到广泛应用,DHCP 故障转移对由主 DHCP 服务器和辅助 DHCP 服务器组成。 与两个独立的 DHCP 服务器不同,DHCP 故障转移对共享一个作用域。 如果其中一个失败,另一个将承担负载,最终用户将不会注意到任何事情。 DHCP故障转移在大型网络中非常常见。

Rogue DHCP Server DHCP 客户端将接受来自它听到的第一个 DHCP 的 IP 信息,这会造成一些问题。 向网络添加另一个 DHCP 服务器太,将错误的 IP 信息传递给客户端,这太容易了。 这称为流氓 DHCP 服务器【rogue DHCP server.】。 流氓行为有两种发生方式:

  • 组织中的某个人带来了家用路由器并意外将其插入网络
  • 或者某个邪恶的人正试图攻击您的网络。

在任何一种情况下,流氓服务器都是糟糕的。

无意的流氓服务器通常很容易被检测到。 考虑一下这种情况。 您网络中的合法用户将家用路由器插入您所在位置的墙上插座,希望为他们的小角落提供无线网络。 遗憾的是,路由器也有一个默认运行的 DHCP 服务器。 这个 DHCP 服务器总是运行一个默认的 IP 地址范围,比如 192.168.1/24,希望你的网络标识【network ID】不是这个默认值。 当新的 DHCP 客户端请求租用时,流氓 DHCP 服务器可能会在合法 DHCP 服务器之前做出响应。 那么客户端就无法上网或访问本地网络资源。 每当网络管理员注意到某些用户可以访问资源而有些用户不能访问时,就应该检查是否存在流氓 DHCP 服务器。 通常,快速的 ipconfig 会显示网络标识【network ID】不正确的 DHCP 客户端。

假设您的网络标识【network ID】是 10.11.12/24。 用户抱怨他们无法上网。 您转到用户的机器,运行 ipconfig 命令,并看到以下内容:

 

一个优秀的网络管理员会很快发现这个系统正在从某处收集不正确的 DHCP 信息。 这个某处就是一个流氓 DHCP 服务器。

正确配置的流氓 DHCP 服务器可能会导致严重的问题。 此外,流氓 DHCP 服务器很难被检测到,因为它们提供与合法 DHCP 服务器相同范围的 IP 地址,但更改了默认网关。 这使流氓服务器能够拦截或捕获传入和传出的流量。 它如何处理这些信息取决于攻击的性质。

Special IP Addresses

发明 TCP/IP 的人创建了几个您需要了解的特殊 IP 地址。

第一个特殊地址是 127.0.0.1——环回地址【loopback addres】。 当您告诉设备向 127.0.0.1 发送数据时,您是在告诉该设备将数据包发送给它自己。 环回地址有多种用途。 最常见的一种方法是将它与 ping 命令一起使用。 我使用命令 ping 127.0.0.1 来测试计算机的网络堆栈。

EXAM TIP 尽管按照惯例,您使用 127.0.0.1 作为环回地址,但整个 127.0.0.0/8 子网都保留用于环回地址! 您可以使用 127.0.0.0/8 子网中的任何地址作为环回地址。

许多人在这样一些网络中使用 TCP/IP,这些网络要么没有连接到 Internet,要么包括他们想从互联网的其余部分隐藏的计算机。 某些 IP 地址组(称为私有 IP 地址)可用于在这些情况下提供帮助。 所有路由器都会阻止私有 IP 地址。 这些地址永远无法在 Internet 上使用,这使它们成为隐藏系统的便捷方式。 任何人都可以使用这些私有 IP 地址,但它们对于需要访问 Internet 的系统毫无用处——除非您使用神秘而强大的 NAT,我将在下一章中讨论(打赌你现在很想了解 NAT!)。 然而现在,让我们看看指定为私有 IP 地址的地址范围:

  • 10.0.0.0 through 10.255.255.255 (1 Class A network block)
  • 172.16.0.0 through 172.31.255.255 (16 Class B network blocks)
  • 192.168.0.0 through 192.168.255.255 (256 Class C network blocks)

所有其他 IP 地址都是公共 IP 地址。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值