可能重复:
子网划分如何工作?
我主要是一名程序员。除了一些网络/管理方面的基本理论外,我对这方面一无所知。
我的大学认为我们至少应该开设网络基础知识课程,我很兴奋。这对我来说是全新的事物,我非常喜欢这门课。
昨天是我上班的第一天,他提出了如下问题。
“由于每个 C 级网络最多只能拥有 254 个 IP 地址,那么如何向单个 C 级网络中添加 300 台机器呢?
我在想类似的事情:
192.168.1.1
192.168.1.2
192.168.1.3
---
192.168.1.254 (Make this a ROUTER)
//and inside this router's network I could repeat the following addresses no problem.
192.168.1.1
192.168.1.2
//etc.
这就是我老师说的吗?我老师说这个有个特别的名字,我们应该研究一下它叫什么。
有人愿意分享一些知识吗?:)
编辑:也许我的问题表达得不够清楚;我需要 300 台机器能够相互通信,并且它们都在同一个 C 级网络中。(您说这是一个弃用的术语,现在叫什么?)
我怎样才能把这个解决方案写在纸上,解释我的需求?
答案1
我相当确定你的老师向你介绍的概念是 NAT(网络地址转换)。这是路由器执行的一项功能,允许(通常是私有的)网络共享(通常是公共的)IP 地址。这是你用来将家庭网络连接到互联网连接的任何现成路由器的主要功能之一。
在您的示例中,您不能在“内部”网络上重复使用同一子网。
简单解释一下,给出以下配置:
192.168.1.0/24
|
192.168.1.1 (external interface)
Router performing NAT
192.168.2.1 (internal interface)
|
192.168.2.0/24
执行 NAT 的路由器后面将有不同子网上的主机(请注意第 3 个八位字节中的“2”)。192.168.2.0/24 网络中的主机将把 NAT 路由器(192.168.2.1)设置为其网关。
当流量通过路由器时,NAT 功能会“转换” IP 标头,将源地址更改为自己的“外部” IP (192.168.1.1),并转发流量。然后,它会保存一个连接条目表,因此当返回流量到达时,它会反转执行的转换并将回复转发回“内部”网络上的原始发送者。
答案2
忘记与 IP 路由相关的术语“类”。该术语已过时。它们是“/8”、“/16”和“/24”网络——而不是“A 类”等。如果有人告诉你不是这样,请发给我。
听起来你问的是:
我可以将整个 250 台左右主机的网络置于 NAT 路由器后面,而这个路由器又连接到另一个 250 台左右主机的网络吗?其他NAT 路由器。例如:
Interface Interface
Ethernet1 Ethernet1
192.168.1.254/24 192.168.1.1/24
__________ V __________ V
(( heap o )) | NAT | V | NAT |
(( internet )) ----| ROUTER A |----- //// -----| ROUTER B |----- //// -----
(( w00t! )) ^ |__________| ^ |__________|
^ ^
Interface Interface
Ethernet0 Ethernet0
Some Internet IP 192.168.1.1/24
在每个间隙网络(由 表示////
)中,您希望堆放 250 个左右的主机,是吗?
首先,您似乎混淆了“路由器”和“NAT路由器”这两个术语。许多路由器的日常工作中并不包含NAT。我认为您认为每个路由器都会转换网络地址,但事实并非如此。
您可能认为这可行。您可能会想“哇——NAT 路由器 B 可以‘知道’将数据包从连接到其以太网 1 接口的 LAN 路由到‘NAT 路由器 A’,然后发往 Internet。”
但它不起作用。你需要一些术语来理解为什么。参见这个问题和我的回答达到极其精细的程度,完成后再回来。
NAT 路由器 B “知道”将数据包发送到哪里的方式是基于分配给其接口的网络 ID。两个接口 Ethernet0 和 Ethenet1 都分配有相同的网络 ID (192.168.1.0)。在两个不同的网络上重复使用相同的网络 ID,然后将这些网络连接在一起,不会促进这些网络之间的通信。例如,当可怜的 NAT 路由器 B 在其 Ethernet1 接口上收到发往“192.168.1.254”的数据包时,它不知道该数据包应该从 Ethernet0 还是 Ethernet1 接口发送出去。您可能会想“哇——它到达了 Ethernet1,所以应该从 Ethernet0 发送出去”,但这是人类的假设,而不是 IP 路由器的“思考”方式。
将 NAT 路由器 B 更改为使用来自不同子网的地址(例如 192.168.2.0/24)将允许配置正常工作,只要 192.168.2.0/24 网络上的主机可以发起与 192.168.1.0/24 网络和 Internet 的通信。
Interface Interface
Ethernet1 Ethernet1
192.168.1.254/24 192.168.2.1/24
__________ V __________ V
(( heap o )) | NAT | V | NAT |
(( internet )) ----| ROUTER A |----- //// -----| ROUTER B |----- //// -----
(( w00t! )) ^ |__________| ^ |__________|
^ ^
Interface Interface
Ethernet0 Ethernet0
Some Internet IP 192.168.1.1/24
不过,这仍然是一个有问题的实际配置。由于 NAT 路由器 B 中的 NAT 功能,连接到 192.168.2.0/24 网络上的 NAT 路由器 B 的主机将无法被 192.168.1.0/24 网络中的主机访问。NAT 路由器 B 实际上是在“共享”192.168.1.1 IP 地址,用于 192.168.2.0/24 中的主机向其他网络发起的任何通信(技术上称为“端口地址转换”或“过载 NAT”)。进入 192.168.2.0/24 网络的传入连接必须通过 192.168.1.1 IP 地址进行,并且必须在 NAT 路由器 B 上配置特定的端口或协议转发规则以促进此通信。
在企业网络中,通常希望网络上的任何主机都能够(尽管可能不允许)访问网络上的任何其他主机。在企业网络中,您不会像本例中那样堆叠 NAT 路由器,因为您希望在整个网络中进行端到端通信。您经常会在网络/互联网的边界看到 NAT,但通常在网络内部不会再有 NAT(除非在特定的地方,如果您需要它,您会知道为什么需要它)。
答案3
网络上可以有任意数量的机器,但只有 254 台(253 台,其中一台作为网关)可以在 /24 网络中拥有 IP 地址。
或者,您可以在 NAT 盒后面使用多个 192.168 专用网络,该 NAT 盒仅使用外部 /24 块中的 1 个 IP。然而,这将不允许外部计算机直接访问专用网络中的计算机;尽管这通常有利于安全。
编辑:
需要明确的是,在单个 /24(以前称为 C 类网络)上拥有 300 台具有 IP 的机器是绝对不可能的。
答案4
我在这里看到很多复杂的答案。你提出了一个简单的问题,答案也很简单:你没有!
“C 类”表示 /24 子网,即一个子网中有 2^(32-24) = 256 个 IP 地址,其中一个(最后一个)用于广播地址,另一个不应使用(第一个,也称为网络地址)。
如果你谈论的“机器”实际上是网络主机能够相互连接,它们是 254。询问如何将超过 X 个主机放在 X 个地址子网中是没有任何意义的。
确实,您可以以这样一种方式连接多个 X 系统,使它们都在该子网中发起流量,例如通过 NAT,但是您会受到其他限制(NAT 主机通常无法获取传入连接)并且您实际上无法对所有事物都执行此操作(请记住我们谈论的是 IP,不一定局限于 tcp、udp、icmp、igmp)。
如果您需要一个能够容纳至少 300 台主机的子网,则您至少需要 ceil(sqrt(300+2)) 位的地址空间,也就是 9 位,因此您至少需要 /23。