子网是否带有 20 掩码?

odi*_*fis 4 networking routing gateway

在客户端仓库中,我正在安装按灯拣货系统,但服务器和 P2L 控制器之间存在连接问题。有时他们交流,有时则不交流。

他们的 IT 使用 192.168.1.x 和 192.168.2.x 的 IP,子网掩码为 /20。我注意到在 1.x 和 2.x ip 池中,它们使用相同的网关,实际上是 192.168.1.1。他们的服务器的 IP 为 192.168.1.50,他们为我的 P2L 控制器提供了 192.168.2.200。

我的问题是:

  1. 由于掩码为20,192.168.2.x和192.168.1.x可以不使用网关直接通信吗?

  2. 由于掩码为 20,192.168.2.x 网络可以使用 192.168.1.1 网关吗?

  3. 这种做法可靠吗?或者无论子网掩码如何,每个“子网”都必须有自己的网关?

谢谢

Per*_*o69 12

  1. 是的。如果子网掩码小于 255.255.252.0 (CIDR /22),则 IP 地址为 192.168.1.x 和 192.168.2.x 的所有设备都属于同一子网,不需要路由器即可相互通信。
  2. 是的。192.168.0.1 - 192.168.15.254范围内的/20掩码(255.255.240.0)地址组成一个子网,并且可以使用相同的默认网关,其IP必须在同一范围内;在本例中为 192.168.1.1。
  3. 是的。网关路由器的工作是将流量转发进出子网。如果没有一个流量只能在子网内流动。因此,GW 必须有一个位于同一范围内的 IP 接口,以及另一个位于不同子网上的 IP 接口。您基本上可以将子网视为房屋,将网关视为前门 - 人们很难通过邻居的前门离开自己的房子:-)

HERE BE DRAGONS - 子网掩码、网络前缀和二进制文件


自古以来,子网都是用子网掩码定义的。最常见的是 255.255.255.0。CIDR表示法是分配 IP 地址的另一种方法。对于 CIDR,我们谈论的不是子网掩码,而是网络前缀。

IPv4地址格式为XXXX,每个X是一个8位的二进制数,即一个八位字节,点(.)是字段之间的分隔符。8位可以表示的最大值是255,所以最小值的字符串是0.0.0.0,最大值的字符串是255.255.255.255。每个 IPv4 地址都位于此范围内的某个位置。

以二进制形式表示的是:

00000000 . 00000000 . 00000000 . 00000000 = 0.0.0.0
11111111 . 11111111 . 11111111 . 11111111 = 255.255.255.255
Run Code Online (Sandbox Code Playgroud)

世界上最常见的网络是 192.168.1.0,前缀为 /24。默认情况下,每个家庭路由器都使用此范围。可用的主机IP地址范围是

11000000 . 10101000 . 00000001 . 00000001 = 192.168.1.1
11000000 . 10101000 . 00000001 . 11111110 = 192.168.1.254
Run Code Online (Sandbox Code Playgroud)

/24前缀的子网掩码是

11111111 . 11111111 . 11111111 . 00000000 = 255.255.255.0
Run Code Online (Sandbox Code Playgroud)

请注意,该范围中的第一个和最后一个地址不能分配给主机,因为第一个是网络地址(在本例中为 192.168.0.0/24),最后一个是广播地址(在本例中为 192.168.1.255/24) )。

在 CIDR 表示法中,最高有效数字是网络前缀,最低有效数字形成主机标识符。网络标识符中的位数是网络前缀。IP 192.168.1.100 / 24就是这样(粗体= 网络前缀,斜体= 主机 ID):

11000000101010000000000101100100

网络前缀包含 24 位,因此表示为 /24。最多有 254 个可用主机,所有主机都可以直接相互通信。

如果我们需要更大的网络来容纳更多的主机,我们选择更小的前缀;即使用更少的数字来表示网络:

11000000101010000000000 101100100 = 192.168.1.100 / 23

该主机可以直接与主机192.168.0.100 / 23通信:

11000000101010000000000 0 . 01100100

整个子网中可用的主机IP为

来自:11000000101010000000000 0 . 00000001 = 192.168.0.1 / 23

至:11000000101010000000000 111111110 = 192.168.1.254 / 23

子网掩码是

11111111 . 11111111 . 11111110 . 00000000 = 255.255.254.0
Run Code Online (Sandbox Code Playgroud)

只要网络前缀不改变,主机就属于同一子网,无需经过路由器就可以直接通信。

如果我们仍然需要更大的网络,我们再次选择更小的网络前缀

1100000010101000000000 0101100100 = 192.168.1.100 / 22

...这给了我们子网掩码

11111111 . 11111111 . 11111100 . 00000000 = 255.255.252.0
Run Code Online (Sandbox Code Playgroud)

当网络前缀为/20时,最高20位用于网络前缀。12 个最低有效位是主机标识符。因此同一子网中可用主机的整个范围是:

来自:11000000101010000000 000000000001 = 192.168.0.1 / 20

至:11000000101010000000 111111111110 = 192.168.15.254 / 20

...这给了我们子网掩码

11111111 . 11111111 . 11110000 . 00000000 = 255.255.240.0
Run Code Online (Sandbox Code Playgroud)

网络地址为192.168.1.0/20,广播地址为192.168.15.255/20。

翻译问题中的 IP 地址:

11000000101010000000 000100000001 = 192.168.1.1 / 20

11000000101010000000 000100110010 = 192.168.1.50 / 20

11000000101010000000 001011001000 = 192.168.2.200 / 20

同样,由于这些主机共享相同的网络前缀,因此它们位于同一子网中,并且可以直接相互通信。

  • “我只是问 Chatgpt 并“告诉我”192.168.1.x 和 192.168.2.x 无法与 20 子网掩码通信” - 这就是为什么您永远不应该向 ChatGPT 询问事实。 (8认同)
  • @ilkkachu ChatGPT 与所有其他 GPT 一样,应该被视为高度先进的自动完成功能。您知道当您按下手机上的自动完成按钮时,它有时会生成一个句子吗? GPT 就是这样,但更准确,因为它几乎总是产生完整的句子,有时,这些句子甚至是正确的。 (2认同)

归档时间:

查看次数:

1974 次

最近记录:

2 年,11 月 前