什么是子网掩码?子网掩码255.255.255.0和255.0.0.0之间的区别是什么?


40

我的ISP提供的DSL / WiFi路由器的内部IP地址为10.0.0.138,DHCP提供的地址格式为10.0.0.xxx

现在,我想开始在本地网络上使用静态IP地址,而且我不知道为子网掩码提供什么。

什么是子网掩码?

我应该使用255.255.255.0还是255.0.0.0作为子网掩码?有什么不同?


4
因此,实质上,“子网掩码”指示IP号码的哪一部分是相关的。由于我仅使用最后一个三元组,因此我将使用255.255.255.0掩盖前三个三元组。感谢您的回答!
2009年

正确。对于您的专用网络,这并不重要。仅当您要分离网络的不同部分时才重要。
StampedeXV

1
它并没有完全“掩盖”任何八位字节(事实上,它根本不需要提供8位边界)。它仅指定IP的哪一部分是网络标识符,哪一部分是主机标识符。
MDMarra

过于简单化:具有相同子网掩码的任何对象都可以直接相互通信,而无需通过路由器(实际上,不得使用路由器)。任何想要与具有不同子网掩码的主机进行通信的对象都需要通过路由器(或默认网关IP)才能到达该主机。
LawrenceC

添加了superuser.com/questions,它详细解释了IPv4子网划分。(问题是Serverfault规范答案的副本)。
Hennes

Answers:


29

子网掩码中的零将对应于xxx您的IP地址。如果需要超过255个不同的地址,则必须将DHCP IP更改为10.0.xxx.xxx(广播IP为10.0.255.255),并将子网掩码更改为255.255.0.0。

理论上,255.0.0.0是10.0.0.0到10.255.255.255地址的有效子网掩码。这篇维基百科文章显示了专用网络的有效地址。

但对于您的情况(10.0.0.xxx),则应使用255.255.255.0。


22

最有可能的是,您使用的子网掩码为255.255.255.0。

子网掩码是指子网划分的实践,根据我的理解,子网划分是将一个网络划分为较小的逻辑网络的一种方法。子网掩码用于告诉网络设备(无论是计算机还是任何路由器,调制解调器等),哪些是本地地址(属于网络),哪些是远程地址(属于网络)。

因此,如果计算机的IP地址为192.168.1.104,其子网掩码为255.255.255.0,则该计算机(以及连接到同一网络的所有其他设备)将假定该计算机的本地网络上的每个IP都采用以下格式: 192.168.1。xxx,其中xxx是唯一会变化的部分。同样,如果子网掩码为255.255.0.0,则计算机将假定其本地网络中的每个IP地址的格式均为192.168。xxxxxx

在家庭网络(例如您的家庭网络)中,子网划分网络并不是真正有用的。它主要用于较大的网络(拥有255台以上的计算机),以减少不必要的网络活动。MarkM在评论中提供了这一点:

在大型网络中子网划分的最大优势之一是减少广播流量。如果单个子网上有数千个主机,则您的交换机将阻塞ARP,DHCP和其他广播。在家庭网络中,通常没有什么需要,除非您想要诸如访客无线局域网之类的东西,而该无线局域网没有任何可用于主家庭网络的路由。

这种解释非常粗略和粗略,因此如果我犯了一个或两个错误,请原谅我。


2
在大型网络中子网划分的最大优势之一是减少广播流量。如果单个子网上有数千个主机,则您的交换机将阻塞ARP,DHCP和其他广播。在家庭网络中,通常没有什么需要,除非您想要诸如访客无线局域网之类的东西,而该无线局域网没有任何可用于主家庭网络的路由。
MDMarra

10

网络掩码用于识别IP地址的哪一部分代表网络地址,哪一部分代表机器地址*

考虑从10.0.0.0到10.255.255.255的A类网络(这是指定的“私有” A类块,即,将不路由发往这些地址的数据包)。二进制格式的地址是:00001010.00000000.00000000.00000000到00001010.11111111.11111111.11111111。通过为这些地址中不会更改IE的每个位分配一个1来生成网络掩码:

00001010.00000000.00000000.00000000
00001010.11111111.11111111.11111111
-----------------------------------
11111111.00000000.00000000.00000000

它将转换为经典A类网络掩码255.0.0.0。

*实际上,要获得给定IP地址的网络地址,只需执行逻辑与。例如,对于网络掩码255.0.0.0和IP地址10.0.0.1:

00001010.00000000.00000000.00000001
11111111.00000000.00000000.00000000
-----------------------------------
00001010.00000000.00000000.00000000

并且00001010.00000000.00000000.00000000转换为10.0.0.0实际上是网络地址。

请注意,您通常不需要家庭网络使用A类网络(是否需要超过255个地址?),因此可以使用255.255.255.0作为网络掩码和/或使用C类网络(例如192.168.1.0)。


啊!不是二进制的!割开手腕
乔什·亨特

5
实际上,没有人再使用类。通常仅将其作为历史课程进行讲授。现在改为使用CIDR en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
MDMarra

不知道CIDR更容易理解... :)
庸医吉x德09年

2
您仍然可以在Class边界上运行,并使网络正常运行,但是它已经过时了。/ 8/16和/ 24的CIDR代表A,B和C类曾经使用过的内容。
MDMarra

1
这应该可以帮助您的子网计算恐惧:) subnet-calculator.com/cidr.php
MDMarra,2009年

1

用更专业的术语来说,子网掩码可帮助机器识别与给定IP地址关联的网络号。255代表该地址字节的全1,当您在地址和掩码之间进行按位与运算时,您会得到网络号。剩下的是机器编号

所以

IP Address 192.168.1.1
Subnet mask 255.255.255.0
Network Number 192.168.1.0
Host Number 1
Address Range 192.168.1.1 to 192.168.1.255

交替,

IP Address 192.168.1.0
Subnet mask 255.255.254.0
Network Number 192.168.0.0
Host Number 1
Address Range 192.168.0.1 to 192.168.1.255

第二种配置为主机号保留9位(在这种情况下,您将拥有255台以上的主机)。调整子网掩码会为您提供更多的主机地址,减少网络数量,反之亦然,具体取决于您添加还是删除1


同样,在示例中显示可用的地址范围可能会更有用。192.168.1.1-192.168.1.254和192.168.0.1-192.168.1.254
MDMarra

好电话,做完了。我可能应该选择一个更明显的例子,这可能有点微妙……
克里斯·汤普森

1

由于torbengb的ISP为他提供了一个地址为10.0.0.138的路由器(或告诉他配置他的路由器),这使我怀疑该ISP的客户共享10.0.0.0的地址空间。否则,大多数人会将路由器配置为10.0.0.1或192.168.0.1或类似地址。

在这种情况下,请务必使用ISP为其提供的网络掩码,否则他可能会践踏ISP向其他用户提供的地址。

如果他确定自己的路由器正在执行NAT,则他可能可以使用/ 8到/ 24之间的任何值。

在不知道连接和ISP配置的详细信息的情况下,很难给出确切的答案。

网络掩码确实将您的地址分为网络部分和主机部分,但是实际原因是路由器和主机中的路由代码可以知道哪些目标地址在本地网络上以及哪些地址需要发送数据包通过路由器的上行链路。


0

我会回答实际问题。除非您是网络管理员,否则您应该始终使用“正确的”子网掩码。

由于您可能未使用“真实的” DCHP服务器,因此对于所有系统(包括静态地址),都应使用DHCP服务器给出的子网掩码。您还应该确保您的静态数不会在DHCP服务器分配的空间中。

如果您提供您的操作系统,我相信我们可以为您提供正确的命令,以在DHCP客户端系统上显示您当前的子网掩码。

理想情况下,您将使用255.0.0.0,因为对于10.0.0.0,如果使用255.255.255.0,则只能有256个地址空间(虽然没什么大不了,但是谁知道,您说您使用的是.138) ,加上它应该提供到其他10.0.0.0子网的路由(我敢打赌它没有)。

这对于某些具有异常在家工作配置的人可能很重要,例如ssh隧道。


3
没有真正的理由在那里使用8位网络掩码。没什么错,但这是一种不好的形式。您可以使用23位的网络掩码(255.255.254.0),并可以使用其他254个地址。/ 24子网中没有256个地址,因为.0和.255都分别为网络标识符和广播地址保留。
MDMarra
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.