[Linux]Subnetting

Subnetting

1 IPv4

在网络中,每个主机都有一个独一无二的地址,即IP地址,用于标识其在网络中的位置。IPv4地址的形式如下所示:

1
204.23.124.23

此地址由两部分组成:网络部分和主机部分。网络部分指明了该地址所属的网络,而主机部分则标识了该网络中的具体主机。

IPv4地址被点号分隔为四个八位字节(octet)。每个八位字节包含8个比特,等于1字节。因此,IPv4地址也可以视为由4个字节构成。在处理子网和IP地址时,我们经常使用到比特的概念。

要查看IP地址,可以使用ifconfig -a命令:

示例输出如下:

1
2
3
4
5
6
7
pete@icebox:~$ ifconfig -a

eth0 Link encap:Ethernet HWaddr 1d:3a:32:24:4d:ce

inet addr:192.168.1.129 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fd60::21c:29ff:fe63:5cdc/64 Scope:Link

从上述输出可见,IPv4地址是:192.168.1.129。

2 子网

要判断是否与Patty位于同一网络,可以通过检查子网(subnetwork的简称)。子网是一组IP地址相似且通常地理位置相近的主机集合。在同一子网内的主机间传输数据更加简便。

例如,所有以123.45.67开头的IP地址都属于同一子网。如果我的主机IP为123.45.67.8,而Patty的为123.45.67.9,则共同的部分即为网络前缀,而末尾数字代表各自的主机标识。因此,我们的网络是相同的。

子网掩码

子网掩码用于区分IP地址中的网络部分和主机部分。一个典型的子网掩码可能如下所示:

1
255.255.255.0

常用网络前缀后跟斜杠及子网掩码来表示子网:

1
123.234.0.0/255.255.0.0

为何进行子网划分?

子网划分用于分割网络并控制网络内流量。同时,也可以缓解IPv4地址空间的压力。这样,不同子网之间的主机无法直接交互。但如果想要连接至其他子网上的主机,比如yahoo.com,则需要通过路由器实现互联。在大多数使用255.255.255.0作为子网掩码的网络中,路由器通常位于子网的第一个地址,如192.168.1.1。某些IP地址(私有网络)不可见于互联网,为此需要采用NAT等技术。

3 子网计算

理解子网掩码对于确定子网中可容纳的主机数量至关重要。以IP地址192.168.1.0和子网掩码255.255.255.0为例,将这些数值转换为二进制形式:

  • IP地址:192.168.1. = 11000000.10101000.00000001.00000001
  • 子网掩码:255.255.255.0 = 11111111.11111111.11111111.00000000

子网掩码标记了IP地址中的网络部分(对应位为1),而主机部分则由未被标记的部分表示(对应位为0)。在上述例子中,只有最后八位可以变化,代表可能的主机地址范围。

由于一个八位字节有256种组合(从00000000到11111111),理论上存在256个可能的地址。然而,在实际应用中,需要排除两个特殊地址——全0和全1的地址分别代表子网地址和广播地址。因此,有效的主机地址范围是254个。

例如,给定IP地址192.168.1.0与子网掩码255.255.255.0,有效主机IP地址范围是从192.168.1.1至192.168.1.254。

4 CIDR

无类别域间路由(CIDR,Classless Inter-Domain Routing)提供了一种更为紧凑的子网掩码表示方法。在CIDR记法中,一个如10.42.3.0/255.255.255.0的子网可简化写作10.42.3.0/24,这里不仅包括了子网前缀,也隐含了子网掩码的信息。

IP地址与CIDR

IP地址由4个字节组成,共计32位。CIDR值表明了用于网络前缀的位数。例如,123.12.24.0/23表示前23位用于网络部分。那么,这代表了多少主机呢?

计算可用主机数量的简易方法:
  • 从整个IP地址的总位数(32位)中减去CIDR值(如23),剩余9位。
  • 计算(2^9 = 512),但需扣除两个特殊地址(子网地址和广播地址),故实际可用主机数为510。

通过CIDR记法,我们能更高效地进行IP地址规划与管理,同时准确计算出每个子网内的可用主机数目。这种方法对于优化网络配置和资源分配至关重要。

5 NAT

网络地址转换(NAT,Network Address Translation)使诸如路由器之类的设备充当互联网与私有网络之间的中介。这意味着只需要一个唯一的IP地址就可以代表整个计算机群组对外进行通信。

可以把NAT想象成大型办公室中的总机接待员。如果有人想要联系你,他们只知道整个办公室的电话号码,而接待员则根据这个号码找到你的分机号并转接来电。

工作流程示例:

通过采用NAT技术,不仅可以隐藏内部网络结构,保护内部网络安全,而且有助于节省公网IP地址资源,优化网络配置。

6 IPv6

每一台接入互联网的设备都会获得一个独立的IP地址。然而,在这个数字化时代,可用的IP地址数量是有限的,IPv6正是为了允许更多主机连接到互联网而设计的。它虽然带来了更多的改进,但其采纳过程却相对缓慢。IPv6的设计初衷并非是要替代IPv4,而是与之互补,共同存在。

IPv6和IPv4在协议层面非常相似,若已熟悉IPv4,则不难理解IPv6。两者间最显著的区别在于地址的书写方式。典型的IPv6地址格式如下:

1
2dde:1235:1256:3:200:f8ed:fe23:59cf

IPv6通过提供几乎无限的地址空间,解决了IPv4地址资源枯竭的问题。此外,IPv6还引入了诸如简化头部格式、支持无状态地址自动配置(SLAAC)、增强的安全性等特性,为互联网的发展提供了更强大的支撑。


[Linux]Subnetting
https://erlsrnby04.github.io/2025/03/22/Linux-Subnetting/
作者
ErlsrnBy04
发布于
2025年3月22日
许可协议