CIDR是否真的“淘汰”了IP地址类别?


20

我仍在努力了解CIDR在多大程度上使IP地址类别过时了。到目前为止,这是我的理解:

  1. 将需要寻址超过255个主机的每个组织分配给B类地址(从技术上讲可以寻址65535个主机)是非常低效的(也是不可能的)。

  2. 但是,如果这样的组织需要寻址大约700台主机,则可以只向该组织分配三个(最好是连续的)C类网络地址。例如:

    192.42.42
    192.42.43
    192.42.44
    
  3. 问题:对于一个组织,路由器将不得不在其转发表中存储三个条目,而这将无法扩展。

  4. CIDR通过引入路由汇总/聚合来解决此问题,从而使向组织分配了三个C类网络的ISP只能向世界其他地方发布一个前缀。例如,

    192.42.42.0/21
    

到目前为止,一切都很好。但是,我只是不明白为什么我接触的每个资源都声称分类寻址已成为“过去的事情”。毕竟,ISP 负责的,比方说,C类网络地址,确实它们分配给它的客户。CIDR只是解决了转发表中多个条目的问题,对吗?因此,IP地址类别仍然存在,不是吗?

即将进行考试,非常感谢您的帮助。:P


2
/ 21是八个“ c类”网络。
彼得

5
我很想说这已经成为过去,因为它指的是IPv4
Hagen von Eitzen

@HagenvonEitzen我很想指出,在现实中这是完全不正确的。
与莫妮卡(Monica)进行的轻度比赛

2
这已经成为过去,因为1993年是22年前。请参阅RFC 1517、1518、1519。不要相信任何声称今天有分类地址的资源,或者将其视为历史上的好奇心而已。
迈克尔·汉普顿

Answers:


22

地址委托确实曾经发生过三种大小:A,B和C。类别A的委托来自某个地址范围,类别B的委托来自不同的范围,等等。由于不同的类别使用了不同的地址范围,因此您可以确定通过查看地址的第一部分来进行上课。这是内置在路由协议中的。

  • A类代表团各自包含16777216个地址
  • B类代表团各自包含65536个地址
  • C类代表团各自包含256个地址

对于不适合这些规模的网络,这效率很低。需要4096个地址的网络将获得16个C类委托(这对全局路由表不利,因为它们中的每一个都必须分别进行路由:类大小已内置在协议中),或者它们将获得1个B类委派(这会浪费很多地址)。

在1993年引入了CIDR。调整了协议以能够处理不同大小的前缀,并且可以路由(内部和外部)前缀,例如/ 30或/ 21或/ 15等,因此/ 0到/ 32之间的任何值都变为可能。需要2048个地址的组织可以得到/ 21:恰好是他们所需要的。

您可以在内部细分这些地址的方式也受到限制。有关于如何子网划分的规则。最初,您的分类网络中的每个子网都必须具有相同的大小。您需要一个具有128个地址的子网和另一个具有16个地址的子网:太糟糕了。

可变长度子网掩码(VLSM)是CIDR的内部网络等效项。VLSM的存在时间比CIDR长。1985年已经提到过。因此CIDR基本上将VLSM扩展到域间路由。使用VLSM,您的子网不必再都具有相同的大小。您可以根据需要为每个子网分配不同数量的地址。

这些天来,Internet上的所有路由都是无课的。路由表中的前缀可能是巧合的(或者由于历史原因)与有类结构匹配,但是协议将不再假定它们可以从地址的第一部分推断出前缀长度(子网掩码)。所有前缀长度都明确传达:无类。

说ISP负责C类网络同样过时。地址由RIR(区域Internet注册表,负责将地址委派给具有自己独立地址的ISP和企业的组织)完全不分类地分发。

IPv4地址类别实际上不再存在,并且在1993年已弃用。如果您查看旧的过时的路由协议,您当然仍然可以看到它们基于地址类别所做的假设,但是那是20年前了。


1
这些“规则”是路由协议的限制。您的所有网络都必须具有相同的大小,因为路由协议没有带有网络掩码。(例如RIPv1,IGRP)
Ricky Beam

1
是的,那是我说的。路由协议中携带前缀长度是VLSM和CIDR的实现方式
Sander Steffann 2015年

他们不是“根据地址猜测”,而是将本地接口网络掩码应用于整个类。例如。如果您具有10.0.0.5/24接口,则10/8中的所有内容均为/ 24。
Ricky Beam

1
那就是VLSM位。有点奇怪的是,他们假设每个以10开头的地址都属于同一地址。VLSM之前的位将假定因为本地接口为/ 24,所以10/8中的每个子网均为/ 24。这些天,/ 24和/ 8都是假设。每个子网的大小都可以不同,并且无法确定聚合边界的位置。
桑德·斯特凡2015年

1
补充说一下,IP地址的前几位确定了地址类别。第一比特0 = A类,前两个比特10 = B类,前三个比特110 = C类等另请参见en.wikipedia.org/wiki/...
一个CVN

29

分类寻址是“过去的事情”。

这是正确的,因为现代互联网中没有任何事情可以对类进行寻址[1]。使用分类寻址时,网络掩码是基于地址的固定值。在您的示例中,您不能“合并”三个C类范围以在一个LAN中拥有700个主机。每个范围的网络掩码自动为 24位。

CIDR通过取消地址指定掩码的规则来解决此问题。因此,LAN可以是任何大小。

您(以及很多其他人)仍然挂在“ C类”,“ B类”和“ A类”两个词上。这些结构已经不存在了。而且已经几十年了 人们使用该术语的意思是分别为24、16和8的网络掩码大小。它们并不意味着正在应用类语义。

[1] 10.0.0.1/24是有类系统中的无效配置。


1
我认为Windows仍将地址的IP类用作默认掩码。
塔米尔(Taemyr)

2
是的,但不是特别分类。它只是应用默认的CIDR。没有Microsoft在何处要求或指定IP地址类别”
Mike McMahon

@Taemyr不仅是Windows。多年来,Linux已经从地址的前几位派生默认掩码。Ubuntu 14.04仍然是这种情况。但这只是一个默认值,大多数时候都需要使用其他值来覆盖它。
卡巴斯德(Kasperd)

15

分类寻址仅支持3个单播掩码:/ 8,/ 16 /,/ 24。

CIDR允许掩码为/ 0到/ 32之间的任何值。

想想点对点串行:以前浪费了C / 24类(256 xIPs)并进行了分类设置;使用CIDR,它只需要/ 30(4 xIPs)或/ 31(2 xIPs)。

现在,大多数ISP只会将/ 28分配给提供14个IP甚至更少IP的客户。

两种操作模式不兼容,因为一种(分类)猜测来自IP的掩码,而另一种(CIDR)精确地指定它。

参见Wikipedia文章“ Classful Network”


多谢您抽出宝贵时间写答案。但是,我看不到您的答案与我的问题有任何关系。

5
他的回答很准确。当您了解无类别和有类别之间的区别时,答案将是有意义的。
Ricky Beam

@baerenfaenger这是我所理解的问题。“我根本不明白为什么……分类寻址已成为过去”……CIDR只是解决了转发表中多个条目的问题,对吧因此,IP地址类别仍然存在,不是吗?”
Pieter'7

但是,在IPv4中,/ 31子网网络不能包含任何IP地址,0是两者都是为网络本身和向网络广播的ID保留的。
棘轮怪胎2015年

2
@ratchet怪胎,除了ptp链接外,您不需要广播ip,可以摆脱/ 31 see tools.ietf.org/html/rfc3021
Pieter

5

正如许多答案已经解释的那样,类已成为过去,因为它们不允许除/ 8,/ 16和/ 24之外的子网掩码。

这些特定的子网掩码仍然非常受欢迎,尤其是/ 24,因为它们对我们人类来说是最容易的。对于这些掩码,地址的子网部分的末尾在(点分十进制)IP地址中用一个点对齐。这样就可以清楚地看到两个IP地址是否在同一子网中,无需进行任何计算。

这就是为什么A,B和C类术语坚持存在的原因,它们仍与最常见的子网掩码对齐。但是它们不再有意义了,说10.11.12.0/24是C类完全是错误的。根据定义,C类的第一个八位位组在192和223之间。


2

在有类路由中,网络掩码由地址的高位隐含,并且不存储在路由表中。该类是每个地址的属性,而不仅仅是路由拓扑的属性。C类网络不能是B类网络的子集,因为高位不能同时匹配两者。

假设您的组织具有3个C类网络,则必须注意哪些计算机在3个网络中的哪个地址上获得了地址。借助CIDR路由,他们可以使用允许所有计算机都位于同一子网中的网络掩码。


1

近年来,我看到的唯一实际的类行为是在点对点隧道协议中。PPTP许多人认为它本身已经过时了,但是肯定有很多仍在使用中。

当客户端连接到服务器时,隧道将获得默认路由或到服务器的有类网络的路由。https://technet.microsoft.com/zh-cn/library/cc779919%28v=ws.10%29.aspx

早在2016年,就有几个网络实际上是一个问题。

我相信,对于DHCP和各种附加脚本,确实存在变通办法,实际上对于其他方向的路由也是如此。如果可能的话,请使用不同的隧道协议,该协议可以更好地支持路由。

亲切的问候,

乔纳森


0

正如您正确描述的那样,与无类别寻址相比,无类别寻址的效率不高,因为在具有类别完全寻址的子网中仍然浪费了大量IP地址。

我只是不明白为什么我接触的每个资源都声称对类的寻址是“过去的事情”

IP确实可以处理C类网络,但这并非对所有ISP都是如此。此外,在上一个时代,所有子网(甚至用于家庭子网或公司子网)都使用classfull寻址,而如今,仅使用无类寻址(如果不是NAT)。

这就是类完全寻址已成为过去的原因。

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.