系统管理指南:IP 服务

netmasks 数据库

当您在网络中设置了子网划分时,才需要在配置网络时编辑 netmasks 数据库。netmasks 数据库由网络及其关联的子网掩码的列表组成。


注 –

创建子网时,每个新网络必须是单独的物理网络。不能在单个物理网络中应用子网划分。


什么是子网划分?

在大型互联网络中,子网划分是一种最大程度地利用有限的 32 位 IPv4 地址空间并减小路由表大小的方法。借助地址类,子网划分提供了一种将部分主机地址空间分配给网络地址的方法,从而使您具有更多网络。分配给新网络地址的主机地址空间部分称为子网号

除了更有效地利用 IPv4 地址空间之外,子网划分还具有多种管理方面的优势。随着网络数量的增长,路由过程将变得非常复杂。例如,某个小型组织可能为每个本地网络分配了一个 C 类网络号。随着组织的发展,管理大量不同的网络号可能变得异常复杂。一个更好的解决办法是将少量 B 类网络号分配给组织中的各个主要部门。例如,可以为工程部分配一个 B 类网络,为业务部分配一个 B 类网络,等等。然后,使用通过子网划分获得的附加网络号,将每一个 B 类网络划分为多个附加网络。这种划分方式还可以减少必须在路由器间传送的路由信息量。

为 IPv4 地址创建网络掩码

在进行子网划分的过程中,需要选择一个网络范围的网络掩码。网络掩码确定主机地址空间中有多少位以及哪些位表示子网号,有多少位以及哪些位表示主机号。请记住,完整的 IPv4 地址由 32 位组成。其中最多可用 24 位、最少可用 8 位表示主机地址空间,具体取决于地址类。网络掩码是在 netmasks 数据库中指定的。

如果计划使用子网,必须在配置 TCP/IP 之前确定网络掩码。如果计划将安装操作系统作为网络配置的一部分,Oracle Solaris : 安装程序将要求您提供网络的网络掩码。

32 位 IP 地址由网络部分和主机部分组成,如设计 IPv4 寻址方案中所述。32 位分为 4 个字节。根据网络类的不同,将每个字节分别指定给网络号或主机号。

例如,在 B 类 IPv4 地址中,左边的 2 个字节指定给网络号,而右边的 2 个字节指定给主机号。在 B 类 IPv4 地址 172.16.10 中,您可以将右边的 2 个字节指定给主机。

如果要实现子网划分,您需要将指定给主机号的字节中的某些位应用到子网地址。例如,16 位的主机地址空间可为 65,534 台主机提供地址。如果将第三个字节应用到子网地址,第四个字节应用到主机地址,则可以为最多 254 个网络提供地址,其中每个网络中最多具有 254 台主机。

主机地址字节中的哪些位应用到子网地址及主机地址是由子网掩码确定的。使用子网掩码从用作子网地址的字节中选择位。尽管网络掩码位必须是连续的,但它们不需要与字节边界对齐。

通过使用按位逻辑 AND 运算符,可以将网络掩码应用到 IPv4 地址。此操作将选出地址的网络号和子网号位置。

可以采用二进制表示法来说明网络掩码。可以使用计算器进行二进制到十进制的转换。以下示例显示了网络掩码的十进制格式和二进制格式。

如果将网络掩码 255.255.255.0 应用到 IPv4 地址 172.16.41.101,则结果为 IPv4 地址 172.16.41.0

172.16.41.101 & 255.255.255.0 = 172.16.41.0

此操作的二进制格式如下所示:

10000001.10010000.00101001.01100101(IPv4 地址)

11111111.11111111.11111111.00000000(网络掩码)进行 AND 操作

现在,系统查找网络号 172.16.41,而不是 172.16。如果您的网络号是 172.16.41,则此编号便是系统检查并找到的编号。因为最多可以为 IPv4 地址空间的第三个字节指定 254 个值,所以通过子网划分可以为 254 个网络创建地址空间,之前地址空间只可用于一个网络。

如果只需要为两个附加网络提供地址空间,则可以使用以下子网掩码:

255.255.192.0

此网络掩码将生成以下结果:

11111111.11111111.1100000.00000000

此结果仍然保留 14 位,供主机地址使用。因为所有 0 和 1 都是保留的,所以必须至少为主机号保留 2 位。

/etc/inet/netmasks 文件

如果您的网络运行 NIS 或 LDAP,则提供这些名称服务的服务器将维护 netmasks 数据库。对于使用本地文件提供名称服务的网络,此信息在 /etc/inet/netmasks 文件中维护。


注 –

为了与基于 BSD 的操作系统兼容,/etc/netmasks 文件是指向 /etc/inet/netmasks 的符号链接。


以下示例显示 B 类网络的 /etc/inet/netmasks 文件。


示例 10–4 B 类网络的 /etc/inet/netmasks 文件。


 # The netmasks file associates Internet Protocol (IPv4) address
 # masks with IPv4 network numbers.
 #
 # 	network-number	netmask
 #
 # Both the network-number and the netmasks are specified in
 # “decimal dot” notation, e.g:
 #
 #        128.32.0.0   255.255.255.0
 192.168.0.0  255.255.255.0

如果 /etc/netmasks 文件不存在,请使用文本编辑器创建此文件。使用以下语法:

network-number	netmask-number

有关完整的详细信息,请参阅 netmasks(4) 手册页。

创建网络掩码号时,在 /etc/inet/netmasks 中键入由 ISP 或 Internet 注册机构指定的网络号(不是子网号)和网络掩码号。每个子网掩码应单占一行。

例如:


128.78.0.0	    255.255.248.0

您还可以在 /etc/inet/hosts 文件中键入网络号的符号名称。然后,可以使用这些网络名称代替网络号作为命令参数。