这里有两件事变得令人困惑:
从有类别寻址到无类别域间路由(CIDR)是一项改进,使向ISP和组织的地址分配更加高效,从而也延长了IPv4的寿命。在分类演讲中,组织将获得以下其中一项:
- A类网络(CIDR术语为/ 8,网络掩码为255.0.0.0)
- B类网络(CIDR术语为/ 16,网络掩码为255.255.0.0)
- C类网络(CIDR术语为/ 24,网络掩码为255.255.255.0)
所有这些类都是从固定范围分配的。A类包含所有地址,其中第一位数字在1到126之间,B类从128到191,C类从192到223。组织之间的路由将所有这些都硬编码到协议中。
在组织需要例如4000个地址的上课日里,有两种选择:给他们16个C类块(16 x 256 = 4096个地址)或给他们一个B类块(65536个地址)。由于对大小进行了硬编码,因此必须分别路由16个单独的C类块。如此之多的人得到了B类块,其中包含的地址超出了他们实际需要的数量。即使只需要几十万个,许多大型组织也可以获得A类块(16,777,216个地址)。这浪费了很多地址。
CIDR消除了这些限制。类A,B和C不再存在(因为±1993),并且组织之间的路由可以在任何前缀长度上进行(尽管通常不接受小于/ 24的值,以防止许多小块增加路由表的大小) )。因此,从那时起,就可以路由不同大小的块,并从地址空间的任何先前分类的ABC部分进行分配。需要4000个地址的组织可以得到/ 20,即4096个地址。
子网划分意味着将您分配的地址块划分为较小的块。然后,可以在物理网络等上配置较小的块。这不会神奇地创建更多地址。这仅意味着您根据分配方式对其进行划分。
创造更多地址的原因是伪装,也就是NAT(网络地址转换)。借助NAT,一台具有单个公共地址的设备就可以为整个网络提供连接,并在其后方具有私有(内部)地址。本地网络上的每个设备都认为它已连接到Internet,即使实际上并非如此。NAT路由器将查看出站流量,并用其自己的公共地址替换本地设备的私有地址,假装是数据包的来源(这就是为什么它也被伪装的原因)。它会记住它进行了哪些翻译,以便对返回的所有回复都可以将本地设备的原始专用地址放回原处。通常认为这是一种黑客行为,但它确实有效,并且它允许许多设备使用较少的公共地址将流量发送到Internet。
可能有多个NAT设备彼此后面。例如,这由没有足够公共IPv4地址的ISP完成。ISP具有一些巨大的NAT路由器,这些路由器具有少量的公共IPv4地址。然后,客户使用特殊范围的IPv4地址(100.64.0.0/10
尽管有时他们也使用普通的专用地址)作为外部地址进行连接。然后,客户再次拥有NAT路由器,该路由器使用他们在外部获得的单个地址并执行NAT以连接使用常规专用地址的整个内部网络。
但是,使用NAT路由器有一些缺点:
- 入站连接:NAT路由器后面的设备只能建立出站连接,因为它们没有自己的“真实”地址来接受入站连接
- 端口转发:通过端口转发通常可以解决此问题,其中路由的NAT将其公共地址上的某些UDP和/或TCP端口专用于内部设备。然后,NAT路由器可以将这些端口上的传入流量转发到该内部设备。这需要用户在NAT路由器上配置这些转发
- 运营商级NAT:ISP执行NAT的地方。您将无法配置任何端口转发,因此无法接受任何传入的连接(比特洪流,拥有自己的VPN /网络/邮件/等服务器)
- 命运共享:外界只会看到一个设备:那个NAT路由器。因此,NAT路由器后面的所有设备都拥有自己的命运。如果NAT路由器后面的一台设备行为异常,那是NAT路由器的地址最终进入了黑名单,从而也阻塞了所有其他内部设备
- 冗余:NAT路由器必须记住哪些内部设备正在通过它进行通信,以便它可以将答复发送到正确的设备。因此,一组用户的所有流量都必须通过单个NAT路由器。普通路由器无需记住任何内容,因此很容易构建冗余路由。使用NAT并非如此。
- 单点故障:当NAT路由器发生故障时,它会忘记所有现有的通信,因此通过它的所有现有连接都将断开
- 大型中央NAT路由器价格昂贵
如您所见,CIDR和NAT都将IPv4的寿命延长了很多年。但是CIDR无法创建更多地址,只能更有效地分配现有地址。NAT确实可以工作,但仅适用于出站流量,并且与具有公共地址相比,具有更高的性能和稳定性风险以及更少的功能。
这就是发明IPv6的原因:每个设备都有很多地址和公用地址。因此,您的设备(或其前面的防火墙)可以自行决定要接受的入站连接。如果您想运行自己的邮件服务器,并且不希望外界有任何人与您连接:也可以:) IPv6为您提供了引入NAT之前的选项,并且您可以随意使用它们。
255.255.255.0
等。在这里讨论的是其他内容:伪装,通常称为NAT(网络地址转换)。