网络设备通信需要有IP地址,在无类别域间路由 (CIDR) 出现之前,IP 地址是有类的,并且效率低下
在早期的互联网中,,IP地址被分成了A类、B类、C类三大类,称之为有类别,子网掩码长度都是固定死的, 这种ip地址的分配方式问题是 1、IP地址浪费:由于一个网段中包含的ip地址过多,根本用不完,导致IP地址存在严重的浪费 在有类寻址系统中,每个类都支持固定数量的设备: A 类支持 16777214 台主机 B 类支持 65534 台主机 C 类支持 254 台主机 在分配 IP 地址时,有类安排效率低下,并会导致 IP 地址空间的浪费。 例如,拥有 300 台设备的组织无法使用 C 类 IP 地址,该类只允许连接 254 台设备。因此,该组织不得不申请 B 类 IP 地址,该类提供 65534 个唯一的主机地址。 但是,只需要连接 300 台设备,这就会剩下 65234 个未使用的 IP 地址空间。 2、网络设计局限性大:由于每个子网的地址数量太多,无法灵活的进行网络规划,并且路由表项过多 有类 IP 限制了您根据需要合并网络的能力。例如,以下 IP 地址属于有类架构中的不同 C 类网络: 192.168.1.0 192.168.0.0 作为网络管理员,您无法合并两个网络,因为 C 类子网掩码固定为 255.255.255.0。
什么是 CIDR?
为了解决上述两个问题,诞生了CIDR,CIDR是一个新的IP地址分配方式,采用的是可变长的子网掩码,称之为无类别域间路由(消除传统的分A类、B类以及子网划分概念,重新开始)
在CIDR中,IP地址的表达格式为:“IP地址/前缀长度”
比如 192.168.0.1/24,表示的就是以192.168.0.1为IP地址,前24位为网络地址,是可以根据自己的需求改变的---》子网划分
CIDR解决了什么问题
CIDR的核心思想是无视传统的A、B、C类地址划分方法,允许任意长度的网络前缀,因此CIDR允许网络以任意大小来划分,这就增加了地址空间的使用率,减少了浪费。 其次,CIDR通过IP前缀来进行路由聚合,可以显著减少路由表项,从而改善了全球Internet的可伸缩性 综上,就是两点 ======>1、变长子网划分-》减少ip浪费 例如,如果你只需要30个地址,你可以使用一个/27的子网(例如,192.168.1.0/27),这将给你32个地址(减去网络地址和广播地址后可用30个), 与C类网络(提供256个地址)相比,可以大大降低IP地址的浪费。 ======>2、路由聚合 路由聚合也称作路由汇总或超网划分。这允许多个相接的子网被表示为一个单一的、较大的地址块,以此降低全局路由表的大小。 例如,假设有8个C类网络(192.168.1.0/24,192.168.2.0/24,...,192.168.8.0/24)。 在没有路由聚合的情况下,路由器需要在路由表中为这8个网络各添加一条路由记录。使用CIDR的路由聚合, 这8个网络可以用一个单一的CIDR块“192.168.0.0/21”进行表示,显著减少了路由信息的数量,通过减少路由表的大小,增强了互联网的可扩展性。
有类地址与无类地址
IP 地址由两部分组成: 1、网络地址,这是一连串指向网络唯一标识符的数字 2、主机地址,这是一连串数字,表示网络上的主机或单个设备标识符 在 20 世纪 90 年代初之前,IP 地址都是使用有类寻址系统分配的。地址的总长度是固定的,分配给网络和主机部分的位数也是固定的。 有类地址 一个 IPv4 地址由 32 位组成。用句点分隔的每串数字由 8 位组成,以 0 到 255 的数字形式表示。组织可以购买三类 IPv4 地址。 A 类 A 类 IPv4 地址有 8 个网络前缀位。例如,以 44.0.0.1 为例,其中 44 是网络地址,0.0.1 是主机地址。 B 类 B 类 IPv4 地址有 16 个网络前缀位。例如,以 128.16.0.2 为例,其中 128.16 是网络地址,0.2 是主机地址。 C 类 C 类 IPv4 地址有 24 个网络前缀位。例如,以 192.168.1.100 为例,其中 192.168.1 是网络地址,100 是主机地址。 无类地址 无类或无类别域间路由 (CIDR) 地址使用可变长度子网掩码 (VLSM) 来改变 IP 地址中网络地址位和主机地址位之间的比率。子网掩码是一组标识符,通过将主机地址变为零,从 IP 地址返回网络地址的值。 VLSM 序列允许网络管理员将 IP 地址空间分解为不同大小的子网。每个子网可以有灵活的主机数量和有限的 IP 地址数量。CIDR IP 地址在普通 IP 地址的基础上附加了一个后缀值,说明网络地址前缀位数。 例如,192.0.2.0/24 是一个 IPv4 CIDR 地址,其中前 24 位(即 192.0.2)是网络地址。
CIDR地址块-》层层分配下去
CIDR 数据块是共享相同网络前缀和位数的 IP 地址的集合。一个大数据块由更多 IP 地址和一个小后缀组成。
互联网号码分配机构 (IANA) 向区域互联网注册管理机构 (RIR) 分配大型 CIDR 数据块。然后,RIR 将较小的数据块分配给本地互联网注册管理机构 (LIR),然后由本地互联网注册管理机构 (LIR) 将其分配给组织。同时,私人用户向其互联网服务提供商申请 CIDR 数据块。
IPv6 中如何使用 CIDR?
IPv6 是一种旨在取代 IPv4 的网络寻址系统。IPv6 使用 128 位的唯一标识符,这使它能够容纳比 IPv4 多 1028 倍的 IP 地址。 IPv6 地址由 8 个以冒号分隔的十六进制值组成。IPv6 具有更大的地址空间,可容纳如今越来越多连接到互联网的设备。 在无类别域间路由 (CIDR) 下,IPv6 地址可以与任意位长度的前缀聚合,这一点与 IPv4 地址类似。例如,2001:0db8:/32 是一个 IPv6 CIDR 地址,以前 32 位或 2001:db8 作为网络地址。
https://aws.amazon.com/cn/what-is/cidr/
Kubernetes 为每个节点分配一个 /24 CIDR 地址块(256 个地址),以便每个 Pod 可以拥有唯一的 IP 地址。
例如: node01: 10.244.0.0/24 node02: 10.244.1.0/24 node03: 10.244.2.0/24
CIDR 地址块的大小对应于每个节点的最大 Pod 数量,但不是一一对应的,通常可用IP地址数为Pod数据量的两倍,如此,当 Pod 被添加到节点或从节点中移除时,Kubernetes 能够减少 IP 地址的重用。
下表列出了 CIDR 块的大小以及 Kubernetes 根据每个节点的 Pod 数量上限分配给节点的可用 IP 地址的相应数量:
每个节点的最大 Pod 数量 | 每个节点的 CIDR 范围 | IP 地址数量 |
---|---|---|
8 | /28 | 16 |
9 – 16 | /27 | 32 |
17 – 32 | /26 | 64 |
33 – 64 | /25 | 128 |
65 – 128 | /24 | 256 |
129 – 256 | /23 | 512 |
默认情况下,Kubernetes的节点配置为运行不超过 110 个 Pod、每个节点的CIDR范围为/24、每个节点可用IP地址数量为256
配置每个物理节点的最大POD数时,会间接配置每个物理节点的ip地址空间
例如: 1、配置每个物理节点的最大pod数为30,则默认使用/26的CIDR范围,即每个节点可用ip为64个 2、如果没有设置每个节点的最大pod数,则默认使用/24的CIDR范围,即每个节点可用ip为256个
了解
减少每个节点的最大 Pod 数量可以使集群拥有更多节点,因为每个节点所需的总 IP 地址空间较小。减少每个节点的最大 Pod 数量也可以创建需要较少 IP 地址的较小集群。例如,每个节点有 8 个 Pod,每个 Pod 分配一个 /28 CIDR。这些 Pod IP 地址范围确定了成功创建集群所需的 IP 地址数量。
根据每个节点的最大 Pod 数量,Kubernetes 会为每个节点分配一个 /24 CIDR 范围以供节点的 Pod 使用。由于此集群从 /21 CIDR 范围 (cluster-ipv4-cidr) 分配 Pod IP 地址,因此最多可以有八个节点(24-21 = 3,2**3 = 8)。
这将创建一个最多可包含 128 个节点的集群。根据每个节点的最大 Pod 数量,Kubernetes 会为每个节点分配一个 /28 CIDR 范围以供节点的 Pod 使用。因为所有 Pod 的地址可用范围是 /21 ,这意味着最多可以有 128 个节点(28-21 = 7,27 = 128)。
拓展阅读参考下GKE:https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr?hl=zh-cn#gcloud