![IP 寻址问题](https://linux22.com/image/526697/IP%20%E5%AF%BB%E5%9D%80%E9%97%AE%E9%A2%98.png)
我对网络并不在行,但我对 IP 寻址却很不擅长。这对我影响很大。例如,在 Cisco 路由器上处理访问列表时,我必须为串行端口分配 IP 地址 24.17.2.2 和子网 255.255.255.240。我以为相应的子网应该是 255.0.0.0,因为 24.17.2.2 是 A 类 IP 地址。
我该如何提高我的 IP 寻址技能?
答案1
当您使用自定义子网时,您使用的是无类 IP 寻址。这允许将一大块 IP 地址(如 A 类网络中的 IP 地址)分割成较小的网络。这样做的原因有很多。在 Google 上搜索子网划分教程,您会找到大量资源。思科网站也有一些关于如何执行子网划分的非常好的游戏。
答案2
255.255.255.240 是可变长度子网掩码的示例,它与 CIDR(无类别域间路由)一起使用。CIDR 是一种将 A/B/C 类网络划分为较小子网的方法,这样您就不需要完整的 254 个地址(对于 A 类网络,则需要 1600 万个地址)。
在本例中,255.255.255.240 是 14 个主机的网络的掩码。whatmask 之类的工具在这里非常有用:
$ whatmask 24.17.2.2/28
------------------------------------------------
TCP/IP NETWORK INFORMATION
------------------------------------------------
IP Entered = ..................: 24.17.2.2
CIDR = ........................: /28
Netmask = .....................: 255.255.255.240
Netmask (hex) = ...............: 0xfffffff0
Wildcard Bits = ...............: 0.0.0.15
------------------------------------------------
Network Address = .............: 24.17.2.0
Broadcast Address = ...........: 24.17.2.15
Usable IP Addresses = .........: 14
First Usable IP Address = .....: 24.17.2.1
Last Usable IP Address = ......: 24.17.2.14
如果您不需要完整的 C 类网络(254 个地址)(或更大的地址),CIDR 就很有用。如果您的网络只有十几个主机,那么它可以更有效地利用 IP 地址空间。
希望有所帮助。
答案3
这是我正在上的思科课程的一部分(请注意结尾附近的粗体文字)。
历史网络课程
历史上,RFC1700 将单播范围分为特定大小,称为 A 类、B 类和 C 类地址。它还定义了 D 类(多播)和 E 类(实验性)地址,如前所述。
单播地址类别 A、B 和 C 定义了特定大小的网络以及这些网络的特定地址块,如图所示。公司或组织被分配了整个 A 类、B 类或 C 类地址块。这种地址空间的使用称为有类寻址。
A 类区块
A 类地址块旨在支持拥有超过 1600 万个主机地址的超大型网络。A 类 IPv4 地址使用固定的 /8 前缀,第一个八位字节用于指示网络地址。其余三个八位字节用于主机地址。
为了给其余地址类别保留地址空间,所有 A 类地址都要求高位八位字节的最高有效位为零。这意味着在取出保留的地址块之前,只有 128 个可能的 A 类网络,即 0.0.0.0 /8 至 127.0.0.0 /8。尽管 A 类地址保留了一半的地址空间,但由于其 128 个网络的限制,它们只能分配给大约 120 家公司或组织。
B 类区块
B 类地址空间旨在满足拥有超过 65,000 台主机的中型到大型网络的需求。B 类 IP 地址使用两个高位八位字节来指示网络地址。其他两个八位字节指定主机地址。与 A 类一样,需要为其余地址类别保留地址空间。
对于 B 类地址,高位八位字节的最高两位为 10。这将 B 类地址块限制为 128.0.0.0 /16 至 191.255.0.0 /16。B 类地址的分配效率略高于 A 类地址,因为它将总 IPv4 地址空间的 25% 平均分配给大约 16,000 个网络。
C 类区块
C 类地址空间是历史上最常用的地址类别。该地址空间旨在为最多包含 254 个主机的小型网络提供地址。
C 类地址块使用 /24 前缀。这意味着 C 类网络仅使用最后一个八位字节作为主机地址,而使用三个高位八位字节来指示网络地址。
C 类地址块为 D 类(多播)和 E 类(实验性)留出了地址空间,方法是将高位八位字节的三个最高有效位固定为 110。这将 C 类地址块限制为 192.0.0.0 /16 到 223.255.255.0 /16。虽然它只占用了总 IPv4 地址空间的 12.5%,但它可以为 200 万个网络提供地址。
阶级制度的局限性
并非所有组织的要求都适合这三个类别之一。地址空间的分类分配通常会浪费大量地址,从而耗尽可用的 IPv4 地址。例如,一家拥有 260 台主机的网络的公司将需要分配一个包含超过 65,000 个地址的 B 类地址。
尽管这种分类系统在 20 世纪 90 年代末几乎被废弃,但您仍会在当今的网络中看到它的残余。例如,当您为计算机分配 IPv4 地址时,操作系统会检查所分配的地址,以确定该地址是 A 类、B 类还是 C 类。然后,操作系统会假设该类使用的前缀并进行适当的子网掩码分配。
另一个例子是一些路由协议对掩码的假设。当一些路由协议收到一条通告的路由时,它可能会根据地址的类别假设前缀长度。
无类别寻址
我们目前使用的系统称为无类别寻址。在无类别系统中,将与主机数量相适应的地址块分配给公司或组织,而不考虑单播类别。
答案4
类别的概念类似于子网。不同之处在于类别块分配给特定的公司或个人。在这种情况下,IP 块 24.xxx 被分配给一家决定将其分成多个部分的公司。也许该公司出售了其 IP 地址空间的一小部分。类别符号现在并不常用。
相反,我们使用网络掩码。网络掩码帮助路由器分离子网部分和主机部分。如何做到?很简单,所有设置为 1 的位都是子网地址的一部分,设置为零的位是主机地址。路由器只需对网络掩码和 IP 地址执行按位与运算即可检索子网地址。编写网络掩码的另一种方法是将 /x 附加到基本子网地址,即 24.17.2.2/28。
子网是同一网络中的一组主机,因为在同一子网中,无需联系路由器即可建立两台主机之间的连接。因此,您需要为这些主机分配相同的子网地址。当您形成子网时,有两个地址需要使用:第一个和最后一个。第一个地址用于指定子网本身,它不是可用地址,发送到该地址的任何内容都将被丢弃。子网的最后一个地址是广播地址,发送到该地址的内容将被子网上的所有主机接收。
如果我们采用 10.0.0.0/24 这样的子网(或网络掩码 255.255.255.0):我们可以拥有从 10.0.0.1 到 10.0.0.254 的主机,因此我们可以设置 254 个 IP 地址。我们使用 10.0.0.0 来指定子网,而 10.0.0.255 将是广播地址。
如果我们看一下可能的子网,我们会发现:
/32 (255.255.255.255):只有一个可用的 IP 地址(您没有子网地址或广播)。它用于点对点连接。
/31 (255.255.255.254):相当没用,因为大多数路由器都会设置子网地址和广播,所以您没有其他主机。但如果您的路由器遵循该规则的例外,则可能有两个 IP。
/32 (255.255.255.252):如果您有一个子网地址、两个主机 IP 和广播,则更有用。
/x:您可以继续计算网络上可能的主机数量,规则如下:2^(32-x)-2
/0 (0.0.0.0):不可能,因为您需要子网部分。
如果我们将这些规则应用到互联网本身,我们就会想到一些奇怪的事情。
IP 0.0.0.0 表示所有子网的子网,也就是整个互联网。实际上,它指向的什么都没有,就像子网的第一个地址一样。
IP 255.255.255.255 会指定所有互联网主机的广播,但实际上它被限制到本地子网(出于明显的安全原因)。主机在使用 DHCP 协议配置其 IP 时使用它。
最后我将解释你自己的例子:
24.17.2.2 是您的 IP 地址。255.255.255.240 是您的网络掩码(因此是 /28)我们有 16 个可能的 IP 地址,因此如果我们删除 2 个保留地址,则我们有 14 个可能的主机。然后 24.17.2.0 是子网地址。24.17.2.15 是广播地址。范围 24.17.2.1-24.17.2.14 是可用的主机地址。
希望它有趣且有用。