计算机网络 ------ 网络层(CIDR)
我们今天来看IPv4地址划分的另一种方法 ------ CIDR。
CIDR的提出背景
CIDR(无类域间路由,Classless Inter-Domain Routing)的提出背景主要源自于两个关键问题:IP地址空间的迅速消耗和互联网路由表的爆炸性增长。
- IP地址耗尽:早期的互联网采用的是分类的IP地址系统(A类、B类、C类等),这种分配方式固定且僵化,导致大量IP地址分配不均和浪费。特别是随着互联网的迅速普及,可用的IPv4地址开始面临严重的短缺问题。A类地址块过大,适合大型网络,但数量稀少;B类地址虽较适中,但也造成浪费;而C类地址虽小,却无法满足大规模网络的需求。因此,需要一种更高效、灵活的地址分配策略来缓解地址空间的紧张状况。
- 路由表膨胀:每个互联网服务提供商(ISP)和大型网络都需要维护路由表来指导数据包的转发。在传统的分类地址体系下,随着互联网的扩展,独立的网络数量急剧增加,导致全球路由器的路由表项数目激增。这不仅消耗了更多的硬件资源,也降低了路由查找的速度,影响了网络性能和稳定性。
为了应对这些挑战,CIDR于1993年被引入。它打破了传统分类地址的限制,引入了可变长度子网掩码(VLSM),允许网络管理员根据实际需求自由划分和分配IP地址,既有效利用了稀缺的地址资源,又通过路由聚合减少了路由表的大小,提高了网络路由的效率和可扩展性。CIDR的实施是互联网架构史上的一个重要里程碑,它延长了IPv4的使用寿命,并为后来IPv6的设计和过渡提供了宝贵经验。
什么是CIDR
CIDR(无类域间路由)地址划分是一种改进的IP地址分配方式,它摒弃了传统的A类、B类、C类等分类地址的划分,转而使用可变长度子网掩码(VLSM)的概念。在CIDR中,IP地址被表示为一个地址和一个网络前缀的组合,例如192.0.2.0/24
。这里的/24
表示前24位是网络部分,剩余的8位用于主机地址。
基本概念
- 网络前缀(Prefix) :指定了IP地址中用作网络部分的位数。例如,在
/24
中,前24位代表网络部分。- 块大小(Block Size) :根据前缀确定的地址块的大小,如
/24
块包含2^(32-24)=2^8=256个地址。- 聚合(Aggregation):CIDR允许将多个连续的网络块聚合为一个更大的网络块,减少路由表条目,提高路由效率。
- 子网划分:在CIDR框架下,可以根据需要灵活地从大块地址中划分出小的子网,每个子网可以有不同的主机数。
划分示例
假设有一个地址块10.0.0.0/16
,表示有2^16(即65,536)个地址。如果要从中划分出几个不同大小的子网,可以这样操作:
- 子网1:
10.0.0.0/18
,前18位为网络部分,剩下14位为主机部分,此子网有2^14=16,384个地址。- 子网2:
10.0.128.0/18
,同样有16,384个地址,但与子网1是不重叠的独立地址块。- 子网3:
10.0.64.0/20
,前20位为网络部分,剩下12位为主机部分,包含2^12=4,096个地址。
应用优势
- 高效地址分配:CIDR减少了地址浪费,使得IP地址分配更加适应实际网络规模。
- 简化路由:通过路由聚合,大幅度减小了Internet骨干路由器中的路由表条目数量,提高了路由效率。
- 灵活性:网络管理员可以根据实际需求动态调整网络大小和结构。
CIDR是现代互联网基础设施中不可或缺的一部分,对于理解和管理复杂的网络环境至关重要。
举个例子
路由聚合
路由聚合,也称为路由汇总或CIDR(无类域间路由)路由聚合,是网络工程中一项关键技术,其目的是优化IP网络中的路由选择过程,提高网络效率和可管理性。以下是路由聚合的一些关键点:
- 基本原理 :路由聚合通过将多个具有连续网络前缀的路由条目合并为一个更概括的路由条目来工作。例如,如果有多个路由分别指向
10.0.1.0/24
、10.0.2.0/24
至10.0.3.0/24
,它们可以被聚合为一个10.0.0.0/22
的路由条目。这样做是因为所有这些网络的前22位是相同的,因此可以用一个更宽泛的前缀来代表它们。- 作用:
- 减小路由表大小:通过减少路由表中的条目数量,路由聚合可以降低对路由器内存的需求,加快路由表查询速度,从而提高整体网络性能。
- 优化路由通告:在Internet的层级结构中,服务提供商可以向其对等体或客户通告更少的聚合路由,而不是每个具体网络的路由,减少了网络间的路由信息交换量。
- 增强网络稳定性:当网络发生局部变化时,聚合路由可以保持不变,避免因个别路由变化而引起的全局路由振荡。
- 提高安全性:对外部隐藏具体的网络拓扑细节,增加网络的防御能力。
- 实施考虑:
- 连续性:只有连续的、具有相同前缀的网络才能被有效聚合。
- 重叠问题:确保聚合后的路由不会与现有的其他路由条目产生冲突或重叠。
- 配置与协议支持:路由聚合通常在边界网关协议(如BGP)中配置,并依赖于协议的支持来传播聚合信息。
- 与带宽聚合的区别:需要注意的是,虽然都叫做"聚合",路由聚合与带宽聚合(也称链路聚合或多线路负载均衡)是两个不同的概念。带宽聚合是指将多条物理链路合并为一个逻辑链路,以增加带宽和提高连接可靠性,而路由聚合则是关于路由表条目的优化和简化。
常用数字
这里大家要记一下常用的数字的二进制: