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


分配每个需要寻址超过255个主机的组织一个B类地址,这在技术上可以寻址65535主机。

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

192.42.42
192.42.43
192.42.44


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

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

192.42.42.0/21



到目前为止,一切都很好。但是,我只是无法理解为什么我接触的每个资源都声称分类寻址已成为“过去的事情”。毕竟,ISP负责C类网络地址,并确实将这些地址分配给其客户。 CIDR只是解决了转发表中多个条目的问题,对吗?因此,IP地址类别还在,不是吗?

考试即将来临,因此非常感谢您的帮助。 :P

评论

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

我很想说这已经成为过去,因为它涉及IPv4

我很想指出@HagenvonEitzen,这在现实中是完全不正确的。

这已经成为过去,因为1993年是22年前。请参阅RFC 1517、1518、1519。不要信任任何声称今天有类别地址有用的资源,或者将其视为具有历史意义的东西。

#1 楼

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

对于不适合这些规模的网络,这效率很低。需要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和企业的组织)完全不分类。在1993年已弃用。如果您查看旧的过时的路由协议,您当然仍然可以看到它们基于地址类所做的假设,但这是20年前了。

评论


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

–瑞奇
2015年7月9日在23:06

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

–桑德·斯特凡(Sander Steffann)
2015年7月9日在23:09

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

–瑞奇
2015年7月9日在23:15

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

–桑德·斯特凡(Sander Steffann)
15年7月9日在23:21

补充说一下,IP地址的前几位确定了地址类别。第一位0 = A级,前两位10 = B级,前三位110 = C级,依此类推。另请参见en.wikipedia.org/wiki/…

–用户
17年9月8日在17:19

#2 楼


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


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

CIDR通过废除地址指示掩码的规则来解决此问题。因此,LAN可以是任意大小。

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

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

评论


我认为Windows仍将地址的IP类用作默认掩码。

–塔米尔
15年7月10日在13:22

是的,但不是特别分类。它只是应用默认的CIDR。否Microsoft在哪里要求或指定IP地址类别?

–迈克·麦克马洪
2015年7月11日下午0:57

@Taemyr不只是Windows。多年来,Linux从地址的前几位派生默认掩码。 Ubuntu 14.04仍然是这种情况。但这只是一个默认值,大多数情况下需要使用其他值来覆盖它。

–卡巴斯德
15年7月11日在12:40

#3 楼

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

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

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

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

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

请参阅Wikipedia文章“经典的网络”。 ”。

评论


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

–user15544
2015年7月9日在18:59



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

–瑞奇
15年7月9日在20:30

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

– Pieter
15年7月10日在6:50



但是,在IPv4中,/ 31子网网络不能包含任何IP地址,0是两者都保留用于网络本身和向网络广播的ID。

–棘轮怪胎
15年7月11日在14:33

@ratchet怪胎,除了ptp链接之外,那里您不需要广播ip,可以使用/ 31摆脱困境,请参阅tools.ietf.org/html/rfc3021

– Pieter
15年7月11日在21:36

#4 楼

正如许多答案已经解释的那样,类已成为过去,因为它们不允许除/ 8,/ 16和/ 24之外的子网掩码。这些特定的子网掩码仍然非常流行,尤其是/ 24,因为它们对我们人类来说是最容易的。对于这些掩码,地址的子网部分的末尾在(点分十进制)IP地址中用一个点对齐。因此,从视觉上可以清楚地看到两个IP地址是否在同一子网中,无需进行任何计算。子网掩码。但是它们不再有意义了,说10.11.12.0/24是C类完全是错误的。根据定义,C类的第一个八位位组在192和223之间。

#5 楼

在分类路由中,网络掩码由地址的高位隐含,并且不存储在路由表中。该类是每个地址的属性,而不仅仅是路由拓扑的属性。 C类网络不能是B类网络的子集,因为高位不能同时匹配这两个类。 3个网络中的3个通过CIDR路由,他们可以使用允许所有计算机都位于同一子网中的网络掩码。

#6 楼

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

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

有一些网络实际上是个问题,最近在2016年。

我相信有一些DHCP和各种附加脚本的解决方法,并且确实适用于另一方向的路由。如果可能,请使用其他更好地支持路由的隧道协议。



乔纳森。

#7 楼

正如您所正确描述的那样,与无类别寻址相比,无类别寻址效率不高,因为许多IP地址仍然浪费在具有全类别寻址的子网中。我碰到的资源声称有类别的地址寻址已成为过去,


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