IP协议学习笔记
IP的作用类似物理世界中的地址,用于定位机器的位置。只不过物理的地址是文字描述,计算机世界的IP是一串二进制数,并且它是有一定约定和规则的。
下面我来学习关于IP的一些历史约定和规则。
IP地址格式
- 4.4.4.4
- 8.8.8.8
- 114.114.114.114
- 242.105.13.65
- 102.32.175.117
- 123.157.162.46
- 255.255.255.255
这些用四个点.
划分,且每个段的范围是 \(2^8\)(从0开始),这就是IP。
IP地址由两部分组成:
- 网络部分 + 主机部分
为什么要分两部分?
网络ID的作用:
- 识别网络:网络ID用于识别特定的网络或子网。
- 路由:路由器使用网络ID来决定如何转发数据包。
- 网络划分:帮助组织有效地管理和划分网络。
主机ID的作用:
- 识别主机:在特定网络内唯一标识一台主机或设备。
- 寻址:允许数据包准确地传递到网络内的特定设备。
分割的重要性:
- 层次结构:创建了网络的层次结构,简化了互联网的组织。
- 效率:提高了路由效率,路由器只需要关注网络ID,而不是每个单独的IP地址。
- 灵活性:允许网络管理员根据需要灵活地分配和管理IP地址。
实际应用:
- 当数据包从一个网络发送到另一个网络时,路由器只查看网络ID部分。
- 一旦数据包到达目标网络,本地设备(如交换机)使用主机ID将其导向特定设备。
IP分类
IP转为二进制,根据判断前几位,设备就能判断这个IP是什么类的IP。
A、B、C类默认网络掩码:
- A:IP/8
- B:IP/16
- C:IP/24
约定:
C类也叫C段。
为什么要IP分类?
这是一个很好的问题,涉及到了互联网发展的历史。IP地址分类(A、B、C、D、E类)是早期互联网设计的一部分,主要用于简化网络地址的分配和路由。让我为您解释一下:
-
IP地址分类的历史背景:
IP地址分类系统是在1981年通过RFC 791引入的,当时是为了更有效地分配和管理有限的IPv4地址空间。这个系统被称为"有类别寻址"(classful addressing)。 -
各类IP地址的特征:
A类:- 第一位为
0
- 网络地址占8位,主机地址占24位
- 范围:1.0.0.0 到 126.255.255.255
- 适合大型网络
B类:
- 前两位为
10
- 网络地址占16位,主机地址占16位
- 范围:128.0.0.0 到 191.255.255.255
- 适合中型网络
C类:
- 前三位为
110
- 网络地址占24位,主机地址占8位
- 范围:192.0.0.0 到 223.255.255.255
- 适合小型网络
D类:
- 前四位为
1110
- 用于多播(multicast)也叫组播,无子网掩码
- 范围:224.0.0.0 到 239.255.255.255
E类:
- 前五位为
11110
- 保留用于未来或实验用途
- 范围:240.0.0.0 到 255.255.255.255
- 255.255.255.255 作为广播地址
- 第一位为
-
历史作用:
- 简化地址分配:便于Internet号码分配机构(如IANA)管理和分配IP地址。
- 简化路由:路由器可以根据IP地址的前几位快速确定网络类别。
- 灵活性:不同类别适合不同规模的网络。
-
局限性:
随着互联网的快速发展,这种分类方法显现出一些问题:- 地址空间浪费:特别是A类和B类网络中,很多地址未被充分利用。
- 缺乏灵活性:难以适应中等规模的网络需求。
-
发展:
为了解决这些问题,后来引入了无类别域间路由(CIDR)和网络地址转换(NAT)等技术,使IP地址的分配和使用更加灵活和高效。虽然现在我们主要使用CIDR,但了解IP地址分类仍然对理解网络历史和某些遗留系统有一点帮助,主要吹牛时用,不至于不知道别人说什么。
总结:
古老的IP分类——有类网络已经被抛弃了,现在是NAT + CIDR的 无类网络 时代。
CIDR 和 子网掩码介绍
CIDR(Classless Inter-Domain Routing)是一种用于表示IP地址和其相关子网掩码的方法。格式为:IP地址/前缀长度,在介绍CIDR 之前先认识子网掩码。
用Windows系统的朋友,对这个图肯定很熟悉吧:
子网掩码(Subnet Mask)又叫网络掩码、地址掩码,必须结合IP地址一起对应使用。
子网掩码的组成:
- 同IP地址一样,子网掩码是由长度为32位二进制数组成的一个地址。
- 子网掩码32位与IP地址32位相对应,IP地址如果某位是网络地址,则子网掩码为1,否则为0。
- 举个栗子:如:11111111.11111111.11111111.00000000
注:左边连续的1的个数代表网络号的长度,(使用时必须是连续的,理论上也可以不连续),右边连续的0的个数代表主机号的长度。
子网掩码的作用:
- 只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作;
- 子网掩码和IP地址做“与”运算,分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上,还是在远程网络网上。
关注到:
子网掩码可以分离出IP地址中的网络地址
和主机地址
。
为什么要分离出网络地址、主机地址有什么用?
-
因为两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同;
-
如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。
在如下拓扑图示例中,A与B,C与D,都可以直接相互通信(都是属于各自同一网段,不用经过路由器),但是A与C,A与D,B与C,B与D它们之间不属于同一网段,所以它们通信是要经过本地网关,然后路由器根据对方IP地址,在路由表中查找恰好有匹配到对方IP地址的直连路由,于是从另一边网关接口转发出去实现互连。
子网掩码的的表示方法:
-
点分十进制表示法
二进制转换十进制,每8位用点号隔开
例如:子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0 -
CIDR斜线记法
IP地址/n
也可以理解为:IP地址/前缀长度- 例1:192.168.1.100/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000
- 例2:172.16.198.12/20,其子网掩码表示为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000
不难发现,例1中共有24个1,例2中共有20个1,所以n是这么来的。运营商ISP常用这样的方法给客户分配IP地址。
示例:
1表示网络地址,0表示主机地址
CIDR: IP/8
二进制:11111111.00000000.00000000.00000000
十进制:255.0.0.0
CIDR: IP/16
二进制:11111111.11111111.00000000.00000000
十进制:255.255.0.0
CIDR: IP/24
二进制:11111111.11111111.11111111.00000000
十进制:255.255.255.0
CIDR的优势:
- 灵活性:允许更精细的子网划分。
- 效率:相比传统的A、B、C类地址分类,可以更有效地利用IP地址空间。
NAT+公网、私网地址
IPv4只有43亿个地址,远远不能满足全世界的网络需求,
通过配置NAT + CIDR,区分公网地址和私网地址,巧妙地解决了这个问题。
公网和私网IP地址的区分是网络管理中的一个重要概念。让我为您详细解释:
-
公网IP地址:
- 定义:公网IP地址是在全球互联网上唯一的地址,可以直接访问互联网。
- 分配:由互联网服务提供商(ISP)或地区互联网注册机构(RIR)分配。
- 特点:全球唯一,可以直接在互联网上路由。
-
私网IP地址:
- 定义:私网IP地址是在局域网内部使用的地址,不能直接访问互联网。
- 分配:由网络管理员在局域网内分配,或通过DHCP自动分配。
- 特点:可以在不同的局域网中重复使用。
-
私网IP地址范围:
根据RFC 1918,以下IP地址范围被保留用于私网:类 私有地址范围 CIDR表示法 A 10.0.0.0 ~ 10.255.255.255 10.0.0.0/8 B 172.16.0.0 ~ 172.31.255.255 172.16.0.0/12 C 192.168.0.0 ~ 192.168.255.255 192.168.0.0/16 -
如何区分:
- 地址范围:如果一个IP地址落在上述私网地址范围内,它就是私网IP。
- 网络设置:查看设备的网络设置可以确定IP地址类型。
- 在线工具:有许多在线工具可以帮助判断一个IP是公网还是私网。
-
使用场景:
- 私网IP:用于家庭、办公室或企业内部网络。多台设备可以共享一个公网IP。
- 公网IP:用于需要直接访问互联网的服务器、网站托管等。
-
NAT(网络地址转换):
- 私网设备通过NAT技术,使用路由器的公网IP访问互联网。
- NAT允许多个私网IP共享一个公网IP,提高了IP地址的利用效率。
-
安全性:
- 私网IP提供了一定程度的安全性,因为它们不能直接从互联网访问。
- 公网IP更容易受到直接的网络攻击,因此需要更严格的安全措施。
CIDR 与 VLSM
上面铺垫了那么多,其实重点就是要讲清楚CIDR 与 VLSM这两个概念。
VLSM —— VLSM(Variable Length Subnet Mask,可变长子网掩码),更好理解的词:子网划分,规定了在一个有类(A、B、C类)网络内包含多个子网掩码的能力,以及对一个子网的再进行子网划分的能力,作用是:提升IP的利用率、实际使用率。
VLSM:子网掩码往右边移,掩码netmask增长。
上图的局域网也就两台机器,要是使用192.168.10.240/24 就有256-2 = 254 个可用IP,有点浪费了。划分成 192.168.10.240/30 ,子网/30的可用IP是4个,减去2个(一个网络号,一个广播号),就刚好只剩下2个,就没有造成浪费。
CIDR —— CIDR(Classless Inter-Domain Routing,无类别域间路由),更好理解的词: 路由聚合或者 超网。CIDR本质是消除了传统的A类、B类和C类地址以及划分子网的概念,将多个地址块聚合在一起生成一个更大的网络,从而包含更多的主机。
CIDR:子网掩码往左边移,掩码netmask缩短。
在A路由器上,就有4个路由表,把它聚合成一张路由表,传递到路由器B,减少路由B的压力,作用是为了减少骨干路由器的压力。
CIDR与VLSM总结:
在某种程度上来说,CIDR和VLSM它们之间可以看做是逆过程,CIDR是聚合(找多个路由表的相同的位数,然后把相同位数的求出来)、VLSM是切分(找到划分的界限,划分下去,需要考虑-2)。
VLSM 子网划分案例
一个子网划分的案例:
将 192.168.1.0/24这个C类地址进行子网划分,网络位向主机位借1位:
那么将划分出子网1——192.168.1.0/25
当我们借用一位进行子网划分时,这一位成为了区分两个子网的关键。
在二进制中,这一位可以是0或1,因此产生了两个子网。
那么将划分出子网2——192.168.1.128/25
这种划分方法允许我们创建两个大小相等的子网,每个子网可以容纳126个主机。
这在需要将一个大网络分割成两个较小网络的情况下非常有用。
练习
-
例1:某企业分配给产品部的IP地址块为192.168.31.192/26,分配给市场部的IP地址块为192.168.31.160/27,分配给财务部的IP地址块为192.168.31.128/27,那么这三个地址块经过聚合后的地址为?
-
例2:计算一下 172.16.1.0/27 这个子网的网络号、广播号、以及可用IP地址?
Reference
6--10VLSM子网划分
https://www.bilibili.com/video/BV1pY411P7tU/
6-11CIDR无类域间路由
https://www.bilibili.com/video/BV1vR4y1K7Ge/