每台连接到互联网的设备都通过 IP 地址与其他设备通信、定位和交互。IP 地址是分配给网络中每台设备的唯一数字组合,就像家庭地址一样,它能定位并区分街道上某栋房子与其他房子的位置。
虽然典型的 IPv4 家庭网络中 IP 地址数量不多(例如 192.168.0.0/24 提供 256 个地址),但在 IPv6 网络上,可用地址数量可达 18 百万亿个。
不过,由于子网划分和子网掩码的存在,你家里的设备其实用不到所有这些地址。那么问题来了:什么是子网?什么是子网掩码?IPv4 和 IPv6 的子网划分是如何工作的?你又该如何用子网速查表来配置网络?这篇文章会一一解答。
我整理了一份速查表,涵盖子网掩码、IPv6 CIDR 前缀长度,以及如何配置 IPv4 或 IPv6 网络。记得查看本文末尾的内容!速查表还包含 IP 地址和网络配置的实用信息。
什么是子网掩码?
IPv4地址由32位组成,这些位被划分为8位的段,通常称为"八位组"。这些八位组通常分配给网络ID或主机ID。如果您需要了解更多关于IPv4和IPv6的信息,请阅读我们的博客文章,标题为"IPv4 对比 IPv6:IPv6 如何取代 IPv4.”
网络 ID 和主机 ID
网络 ID 或网络地址用来标识 IP 地址属于哪个网络。当数据包在互联网或本地网络上传输时,路由器会根据网络 ID 判断目的地是否在同一网络中,还是需要转发到其他网络。网络 ID 告诉路由器应该将数据包路由到哪个网络。
此外,网络ID还能帮助大型组织或环境中区分不同的子网。每个子网拥有独立的网络ID,设备可以在本地子网内通信,也可以通过路由器访问其他子网。当然,同一网络中的所有设备都共享相同的网络ID。
接下来是IP地址中的主机ID部分。这部分定义了网络内唯一设备(主机)的身份。主机ID用来区分网络中的不同设备,确保网络能正确地向目标设备发送和接收流量。
子网掩码
现在我们来讨论子网掩码。子网掩码是一个32位数字(类似于IP地址),它定义了上面提到的那些八位字节中,哪些被分配给网络ID,哪些被分配给主机ID。
IPv4 子网掩码
假设你有一个 IPv4 地址,看起来像 192.168.1.10,子网掩码看起来像 255.255.255.0。子网掩码中重复出现的数字告诉我们,IP 地址的前三个八位字节或 24 位(即 192.168.1.0)代表网络部分(网络 ID)。
这是因为,如我之前所说,同一网络中所有设备的网络部分共享同一个网络 ID,因此这个数值在网络中的所有设备间是固定的。至于主机 ID 部分,最后一个八位字节表示可以分配给设备的可用 IP 地址数量。
你可能会问,我怎么知道有多少个IP地址可用于设备呢?当子网掩码显示IP地址为主机ID预留了8位时,这意味着有8个位置可以放置0或1。
这意味着在 IPv4 地址中,可以为设备分配 2^8 或 256 个 IP 地址。不过需要注意的是,其中两个地址始终保留给网络地址(192.168.1.0)和广播地址(192.168.1.255)。
IPv6子网掩码
抛开 IPv4 中的子网掩码不谈,我们来聊聊 IPv6 中的子网掩码。与 IPv4 那样使用点分十进制表示法(255.255.255.0)来区分网络 ID 和主机 ID 的方式不同,IPv6 采用前缀长度的方式,这是一套更新的 IP 分配和表示法。
这个系统叫做无类别域间路由(CIDR)。它用可变长子网掩码(VLSM)替代了之前基于类别的IP分配方式。你可以了解更多关于CIDR的信息,以及它与之前系统的区别。 这里.
至于CIDR符号如何表示网络和主机ID的部分,通常在IPv6地址末尾加上斜杠(/),后面跟一个数字,表示分配给网络部分的比特数。这种CIDR符号叫做前缀长度。
注意,在IPv4地址中,每个数字代表8比特或一个八位组,而在IPv6中,两个冒号之间的每个数字和字母组合代表16比特。例如:
2001 (十六进制) → 0010000000000001 (二进制)
IPv6地址的完整二进制形式 2001:0db8:85a3:0000:0000:8a2e:0370:7334 是:
0010000000000001 0000110110111000 1000010110100011 0000000000000000
0000000000000000 1000101000101110 0000001101110000 0111001100110100
此外,为了缩短IPv6地址,与其包含所有零块(IPv6地址中的16比特零块),可以用双冒号(::)替代。16比特零块的数量可以通过从IPv6地址的总块数(8块)中减去显示的非零块数来计算。 例如:
2001:db8:1234::/64 → 2001:db8:1234 → 总共8个块 - 3个非零块 = 5个零块
所以,完整地址是 2001:0db8:1234:0000:0000:0000:0000:0000/64.
基础知识讲完了,现在看一个IPv6子网掩码的例子:
如果 IPv6 地址如下所示: 2001:db8:1234::/64
前64比特用于网络部分: 2001:db8:1234
剩余的64比特(128-64=64)用于主机部分: 0000.0000.0000.0000.
IPv4 和 IPv6 子网速查表
虽然子网掩码和子网划分听起来像是同一个概念,但它们做的是完全不同的事情。子网划分本质上是将与网络一起提供的大量IPv4或IPv6地址分解,以便更好地管理不同部门或设备,并提高安全性。
比如在企业环境中,财务部门可能有自己的子网,防止其他部门的未授权访问。在家庭环境中,将网络分成两个子网,一个用于个人设备,一个用于物联网(IoT)设备,比如智能音箱或扫地机器人,可以提高安全性和流量管理,因为物联网设备会不断与云服务通信,通常容易遭受安全威胁。
1993年之前,子网划分是通过类别进行的,一个网络要么有254个、65534个或超过1600万个IP地址(用于设备),你无法像现在这样把它们分成更小的网络。
不过,得益于CIDR的发展,你现在可以将任何大小的网络分割成任意数量的更小网络。接下来,我们来看看如何在IPv4和IPv6中进行子网划分,以及如何使用我们方便的子网速查表来配置你的网络。
IPv4 子网速查表
假设你有一个网络,比如192.168.1.0/24,它为主机部分提供256个IP地址。虽然你可以通过子网掩码(255.255.255.0)计算出多少个IP分配给网络部分和主机部分,但通过IP末尾的/24,你可以推断出既然24比特分配给网络部分,那么8比特或256个(2^8=256)地址用于主机部分。
如果我们想把这个网络分成两个128地址的子网,我们从网络部分借用一个比特,这会导致以下设置和变化:
- 新子网掩码:/25或255.255.255.128
- 每个子网的主机数:128
- 子网1:192.168.1.0/25(可用地址126个,从192.168.1.1到192.168.1.126)
- 子网2:192.168.1.128/25(可用地址126个,从192.168.1.129到192.168.1.254)
通过这个CIDR过程,你可以随意划分任何网络,只要你有两个可用的IP地址(不计用于广播和网络地址的两个IP)。所以,对于有254个可用IP的/24网络,你可以创建64个子网,每个子网包含2个可用IP地址;不过,这么少的主机数量通常用于点对点连接。
IPv6 子网速查表
IPv6子网划分特别重要,因为IPv6地址空间提供2^128或340个无限位(34后面跟37个零)的唯一IP地址。一个典型的IPv6网络通常用/64 CIDR设置,为网络部分分配64比特,为主机部分分配另外64比特,这样你就有2^64或18个五十垓(18后面跟18个零)的唯一地址。
考虑到可用IPv6地址的巨大数量,即使使用典型的/64 CIDR,对IPv6网络进行子网划分也极其有益,因为网络管理员可以根据位置、部门或功能对设备进行分组管理,监控它们的流量,应用安全策略,并更轻松地配置路由器。
虽然/64子网是IPv6 IP子网划分最常用的形式,因为像SLAAC或无状态地址自动配置(SLAAC)这样的功能允许设备根据它们连接的网络自动生成IP地址,无需DHCP服务器,但你可以轻松将IPv6网络分成任意数量的子网。
假设你有一个典型的/64 IPv6网络,比如2001:db8:abcd:1000::/64,如果我们从网络部分借用4比特,我们可以将网络分成16个子网,这会导致以下变化:
- 原始子网: 2001:db8:abcd:1000::/64
- 新建子网: /68
- 子网数量: 2^(从网络地址借用的比特位数)= 2^4=16 个子网
- 首个子网: 2001:db8:abcd:1000:0000::/68
- 第二个子网: 2001:db8:abcd:1000:1000::/68
- 第三个子网: 2001:db8:abcd:1000:2000::/68
- …最多 2001:db8:abcd:1000:f000::/68
- 2001:db8:abcd:1000:前 64 位定义全局路由前缀。
- 0000 – f000: 接下来的 4 位用于子网划分。
- 主机部分:其余 60 位用于主机地址。(其余的 "::\" 表示三个 16 位块)
- 每个 /68 子网有 2^60 = 115 京个可能的主机地址。
最后的想法
子网划分是每个网络的关键部分,无论是 IPv4 子网划分还是 IPv6 子网划分。希望这篇文章能够 子网划分速查表 我提供的内容可以帮助你更轻松地设置和划分网络子网。
常见问题
什么是子网掩码?
在 IPv4 中,子网掩码是一个 32 位数字(类似于 IP 地址),用来定义哪些八位字节分配给网络 ID,哪些分配给主机 ID。在 IPv6 中,IPv6 不使用 IPv4 那样的子网掩码(例如 255.255.255.0),而是使用前缀长度表示法来指示地址中有多少位用于网络部分。
IPv4 和 IPv6 如何进行子网划分?
通过 CIDR(无类域间路由)技术,我们可以从网络位中借用比特位,将 IPv4 或 IPv6 网络分割成任意数量的子网。不过,对于 IPv4,你必须至少保留两个可用 IP 地址(不包括广播地址和网络地址所需的两个 IP)。举个例子,如果你有一个包含 256 个 IP 地址的网络(192.168.1.0/24),想把它分成两个各 128 个 IP 的子网,你需要从网络位中借用一个比特位,得到这两个子网:192.168.1.0/25 和 192.168.1.128/25
IPv4 和 IPv6 有子网划分速查表吗?
对!计算子网划分时能分配多少个 IP 地址确实很复杂,尤其是涉及 IPv6 的时候。这就是为什么我整理了一份详细的子网速查表,让你的子网划分工作更轻松。它同时也是 IPv6 速查表和网络速查表,所以内容非常全面!