《IP路由协议疑难解析》一1.1 IP编址的概念

简介:

本节书摘来自异步社区《IP路由协议疑难解析》一书中的第1章,第1.1节,作者 【美】Zaheer Aziz, CCIE #4127 , Johnson Liu, CCIE #2637 , Abe Martey, CCIE #2373 , Faraz Shamim, CCIE #4131,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.1 IP编址的概念

IP路由协议疑难解析
编址是IP协议的关键。在图1-1所示的TCP/IP协议栈中,有一个通向底层(物理层和数据链路层)的网络接口层,IP协议的介质无关性就仰仗于该层。IP协议之所以能被人们广泛接受,介质无关性可能是重要原因之一。IP有自己的一套编址方案,独立于用来互连网络设备的局域网(LAN)或广域网(WAN)介质,这也暗合其介质无关性的架构。因此,IP可成功地运行在由各种各样的介质所组成的网络基础设施之上。IP协议栈的这种灵活性,兼之其简单性,也是促使该协议得到广泛使用的主要原因。

IP编址的原理是,为网络设备的每个网络接口(网卡)分配地址(即基于链路的地址分配方法),并不是为整台设备分配单一地址(即基于主机的地址分配方法)。设备的各个接口与名为子网络(或子网)的网络链路相连,并设有子网地址。接口的IP地址从其直连链路的子网地址空间中分配。基于链路的地址分配方法的优点是,路由器只需跟踪IP路由表中的IP子网,就能够汇总路由信息,而无需追踪到网络中的每台主机。这在诸如以太网之类的广播链路网络环境中会非常高效,在此类网络环境中,会同时连接多台设备。在运行IP的以太网络中,还会利用地址解析协议(Address Resolution Protocol,ARP)将直连主机的IP地址解析为相应的数据链路层地址。

目前,IP地址分为两类:IPv4地址和IPv6地址。在IPv6未得到正式启用之前,目前在用的IPv4地址用32 位来表示。确切说来,32位编址方案可提供多达232(4 294 967 295)个独一无二的主机地址。随着全球Internet规模的不断扩张,32位的IPv4编址方案已不能满足未来的发展,于是,128位的IPv6编址方案应运而生。在IPv4网络环境中排除IP路由协议故障是本书的主要内容。因此,本章只讨论IPv4编址结构及相关概念,但其中的大多数内容仍适用于IPv6。稍后几节将讨论下列与IPv4编址有关的主题:

IPv4地址类别;

私有IPv4地址空间;

IPv4子网划分和可变长子网掩码;

无类别域间路由。

1.1.1 IPv4地址类别

如前所述,IPv4地址的32位编址方案可容纳大量的主机地址。但是,IP编址方案基于链路,要求网络链路与一组IP地址相关联,而与链路直连的主机则设有具体的IP地址。这组IP地址称为地址前缀,俗称IP网络号(IP network number)。

起初,定义IP网络号时,可以说是壁垒森严——有严格的类别之分。对IP地址进行分类,其目的是要“划分”出能够支持各种数量级主机的IP地址组,从而提高IP地址空间的分配效率。这样一来,IP地址就可以根据链路上的主机数量“专类专用”。对IP地址进行分类的另外一项好处是,可使地址分配过程更为简单,更容易控制。

IP地址分为A、B、C、D、E等5大类,由IP地址第一字节的几个最高位来定义和区分。每类地址都含若干IPv4地址子网,每个子网均可容纳一定数量的主机。表1-1所列为5类IPv4地址。


29534bc598fc4baae8cc4f5754704aca4db9d07d

由表1-1可知,IP地址首字节的置位方式不同,与之相对应的地址类别以及地址范围也有所不同。

在这5类地址中,A、B、C 三类属于单播地址,用来实现单一信源与单一信宿之间的通信。D类地址专为IP多播应用而预留,多播是指单一信源与多个信宿之间的通信。E类地址则是出于实验目的而做预留。

为了使各类单播地址(A、B、C类)所能容纳的主机尽可能的多,人们把32位IP地址进一步划分为了网络标识符(网络ID)和主机标识符(主机ID)两个大块,如下所示。

A类地址:8位网络ID,24位主机ID。

B类地址:16位网络ID,16位主机ID。

C类地址:24位网络ID,8位主机ID。

图1-2所示为32位A类地址的划分情况。其首字节中的最高位固定为0,用整个首字节来表示网络ID,随后的3字节表示主机ID。

image

这一按严格的界限给IP地址分类的理念也称为有类IP地址划分。人们用掩码来“圈定”IP地址中的主机ID和网络ID。IP地址的结构经过多次改进,才进化成了现在这个样子,这些改进也使得IP地址分配在实战中更加高效。本章1.1.3节会对此作详细介绍。

为了易于识别,IP地址使用点分十进制的形式来表示。用点分十进制来表示时,32位IP地址以8位编为一组,每组之间用点号分开。然后,再将每个字节(八位组)转换为等值的十进制数。表1-1中的最后一列所示为各类IP地址类所属地址范围的点分十进制表示。

虽然有类编址的引入使得IPv4地址空间得到了较为充分的利用,但是地址分类界限太过严格也导致了IP地址空间使用效率低下。有鉴于此,有类编址逐渐被更为高效和更加灵活的无类编址取代。

使用无类编址时,任何IP网络号都可以用特定长度的前缀来表示。这一前缀表示法除了更加灵活以外,还可以使得IPv4地址空间得到更为充分的利用。以A类地址这一巨大的有类地址块为例,使用有类编址方案时,一个A类地址块只能分配给一个组织,而采用无类编址方案,则可将其剖成多个小地址块,分配给多个组织;与此相反,无类编址方案还允许对多个C类地址块做聚合处理,而无需“分别对待”。为节省资源,Internet路由器都会对路由表中的路由做地址聚合,这种路由聚合方式称为无类别域间路由(CIDR)。1.1.4节会对此展开深入讨论。

1.1.2 IPv4私有地址空间

人们对IPv4单播地址空间的某些地址块进行了预留,并将其指定为私有地址。私有地址空间专为不与公网(Internet)相连的网络而预留。RFC 1918将下列地址块定义为IPv4私有地址:

10.0.0.0~10.255.255.255;

172.16.0.0~172.31.255.255;

192.168.0.0~192.168.255.255。

RFC 1700载有已预留及已分配(Internet相关)参数的通用信息,包括已预留的IP地址信息1。使用网络地址转换(Network Address Translation,NAT)技术,启用了IPv4私有地址空间的私有网络仍然可以连接到公网(Internet)。

1原文是“RFC 1700 provides general information on reserved or allocated parameters, including reserved addresses.”——译者注

1.1.3 子网划分和可变长子网掩码

CIDR诞生之前,每个有类网络只能分配给一个组织。在组织内部,可用子网划分技术将有类地址块分割为多个小地址块,供同一网域内的不同网段使用。

IP子网划分是指把有类IP地址的某些主机位“并入”网络ID,从而在IP地址类别中引入了另一层级。这一经过扩展的网络ID称为子网号或IP子网。试举一例,可“借用”B类网络地址主机ID字段两字节中的一个,来创建出255个子网,用剩下的那个字节来表示每个子网的主机ID,如图1-3所示。

image

执行IP子网划分时,会对有待分配的有类网络的掩码进行调整,以反映出新创建子网的网络号和主机号。图1-4所示为划分B类地址时,新创建的子网及与之相对应的掩码。掩码中一连串的1和0分别表示网络位和主机位。通常,书写IP地址时,也可以用前缀长度表示法,即指明子网掩码中1的个数。比如,可把172.16.1.0 255.255.255.0写为172.16.1.0/24。

image

虽然有类编址方案支持子网划分,能够满足地址块之内的高效地址分配需求,但在有类网络环境中,要求所使用的子网掩码一致,这属于硬性规定。VLSM属于更深层次的子网划分,允许同一(主类)网络号“配搭”不同的子网掩码,这样一来,便可根据网域内不同网段的使用方式,更加灵活地分配不同大小的IP地址块。比方说,利用VLSM, 可把B类地址172.16.0.0/16划分为多个子网掩码为24位的“小型”子网,即“借用”了这一B类地址中的8位主机位作为子网位。然后,还可以对新生成的首个子网172.16.1.0/24,做进一步的子网划分,例如,可再次“借用”其8位主机位中的4位作为子网位。于是,便划分出了更小的地址块,如172.16.1.0/28、172.16.1.16/28、172.16.1.32/28等。只有无类网络环境才支持VLSM,在此类网络环境中,运行于路由器上的路由协议及相关路由软件都支持无类编址。图1-5演示了如何用VLSM实施子网划分。

image

1.1.4 无类别域间路由

VLSM虽有助于提高已分配地址块的IP地址使用效率,但不能解决为各个组织有效分配IP地址的难题。有许多组织都分配有多个C类网络,而非单个B类网络,这不但会使得有类IP地址块的使用效率极低,而且还导致全球Internet路由表的有类路由条数迅猛增长。如此一来,IP地址很快将会消耗殆尽,于是无类别域间路由(Classless InterDomain Routing,CIDR)技术应运而生。

CIDR支持任意长度的IP网络号,完全摒弃了有类网络中网络号与主机号“界限分明”的概念。图1-6列举了CIDR的两大优点。打破了地址类别这一概念之后,就可以很方便地用192.168.0.0/16来表示从192.168.0.0到192.168.255.0这样一个个零散的C类地址块。再说具体一点,这就意味着上述256个“老式”的C类地址块可聚合为单一地址块,此类地址块也称为CIDR地址块或超网(supernet)。

image

CIDR还能非常灵活地支持对(IP地址中的)网络号进行子网划分,划分出来的子网可分配给不同的组织,以实现域间路由信息的交换。比如,可将地址块131.108.0.0/16划分为4个“二级”地址块(131.108.0.0/18、131.108.64.0/18、131.108.128.0/18和131.108.192.0/18),然后,再分配给4个不同的组织。

相关文章
|
6月前
|
存储 JSON 数据格式
ElasticSearch基础概念解析
以上就是ElasticSearch的基础概念。理解了这些概念,你就可以更好地使用ElasticSearch,像使用超级放大镜一样,在数据海洋中找到你需要的珍珠。
193 71
|
12月前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
412 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
6月前
|
监控 负载均衡 安全
静态IP代理与动态IP代理:提升速度与保障隐私的技术解析
本文探讨了静态IP代理和动态IP代理的特性和应用场景。静态IP代理通过高质量服务提供商、网络设置优化、定期更换IP与负载均衡及性能监控提升网络访问速度;动态IP代理则通过隐藏真实IP、增强安全性、绕过封锁和提供独立IP保障用户隐私。结合实际案例与代码示例,展示了两者在不同场景下的优势,帮助用户根据需求选择合适的代理服务以实现高效、安全的网络访问。
204 1
|
8月前
|
XML Java 开发者
Spring底层架构核心概念解析
理解 Spring 框架的核心概念对于开发和维护 Spring 应用程序至关重要。IOC 和 AOP 是其两个关键特性,通过依赖注入和面向切面编程实现了高效的模块化和松耦合设计。Spring 容器管理着 Beans 的生命周期和配置,而核心模块为各种应用场景提供了丰富的功能支持。通过全面掌握这些核心概念,开发者可以更加高效地利用 Spring 框架开发企业级应用。
231 18
|
8月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
296 11
|
9月前
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
324 4
|
11月前
|
机器学习/深度学习 自然语言处理 JavaScript
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
在信息论、机器学习和统计学领域中,KL散度(Kullback-Leibler散度)是量化概率分布差异的关键概念。本文深入探讨了KL散度及其相关概念,包括Jensen-Shannon散度和Renyi散度。KL散度用于衡量两个概率分布之间的差异,而Jensen-Shannon散度则提供了一种对称的度量方式。Renyi散度通过可调参数α,提供了更灵活的散度度量。这些概念不仅在理论研究中至关重要,在实际应用中也广泛用于数据压缩、变分自编码器、强化学习等领域。通过分析电子商务中的数据漂移实例,展示了这些散度指标在捕捉数据分布变化方面的独特优势,为企业提供了数据驱动的决策支持。
1195 2
信息论、机器学习的核心概念:熵、KL散度、JS散度和Renyi散度的深度解析及应用
|
10月前
|
域名解析 网络协议 测试技术
IP、掩码、网关、DNS1、DNS2到底是什么东西,ping telnet测试
理解IP地址、子网掩码、默认网关和DNS服务器的概念是有效管理和配置网络的基础。通过使用ping和telnet命令,可以测试网络连通性和服务状态,快速诊断和解决网络问题。这些工具和概念是网络管理员和IT专业人员日常工作中不可或缺的部分。希望本文提供的详细解释和示例能够帮助您更好地理解和应用这些网络配置和测试工具。
4522 2
|
10月前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
180 1
|
10月前
|
消息中间件 存储 负载均衡
Apache Kafka核心概念解析:生产者、消费者与Broker
【10月更文挑战第24天】在数字化转型的大潮中,数据的实时处理能力成为了企业竞争力的重要组成部分。Apache Kafka 作为一款高性能的消息队列系统,在这一领域占据了重要地位。通过使用 Kafka,企业可以构建出高效的数据管道,实现数据的快速传输和处理。今天,我将从个人的角度出发,深入解析 Kafka 的三大核心组件——生产者、消费者与 Broker,希望能够帮助大家建立起对 Kafka 内部机制的基本理解。
301 2

推荐镜像

更多
  • DNS