IP以及IP划分

什么是IP地址

IP地址(Internet Protocol Address)是指互联网协议地址,又称网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。因此,IP地址是逻辑地址,每台主机的网卡上的MAC地址才是物理地址
IP地址其实是一串32位的二进制数,为了方便我们记忆我们以8位一组进行划分,中间用小数点分割,类似:172.20.5.6(10110110.00010100.00000101.00000110)

IPv4

根据使用场景(范围)

IPv4地址 有限地址 2^32 --约42亿

私有地址 --免费使用、本地唯一性

公有地址 --付费使用、全球唯一性

IPv4地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。

1、A类IP地址:一个A类IP地址由1字节(8位)的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 ~126.0.0.0。可用的A类网络有126(27-2)个,每个网络能容纳1亿多(224-2)个主机。

2、B类IP地址:一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0~191.255.255.255。可用的B类网络有16382(214-1)个,每个网络能容纳6万多(216-2)个主机 。

3、 C类IP地址:一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0~223.255.255.255。C类网络可达209万余(221-1)个,每个网络能容纳254(28-2)个主机。

4、 D类地址:D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络

5、 E类IP地址:以“llll0”开始,为将来使用保留。 全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。

  • D类IP地址。其范围是从224.0.0.0到239.255.255.255,用于网络中的组播(多点广播)通信。
  • E类IP地址。其范围是从240.0.0.0到255.255.255.255,主要用于将来使用和实验目的。

其中ABC三类地址为单播地址、D类地址为多(组)播地址、E类地址科研使用,保留

**单播地址:**既可以作为源地址,也可以作为目标地址使用

**多(组)播地址:**只能作为目标地址去使用

主类网:默认情况下,ABC三类地址的网络位、拥有默认的子网掩码长度

A /8 255.0.0.0

B /16 255.255.0.0

C /24 255.255.255.0

私有地址范围:

A:10.0.0.0/8

B:172.16.0.0/16-172.31.0.0/16

C:192.168.0.0/24-192.168.255.0/24

本地私有地址

169.254.x.x/16 本地私有地址
作用:当PC无法通过自动获取IP地址的方式(DHCP)获取到IP地址时,PC会自动产生一个IP地址,即169.254.x.x/16

192.168.1.0/24 主机位全 0 的地址-网络地址

主机位全0 的地址代表一个网段,代表本网段内的所有IP地址 —xxx班全体同学

代表地址范围:192.168.1.1/24-192.168.1.255/24

此地址不能给主机使用

192.168.1.255/24 主机位全 1 的地址-广播地址

主机位全1 的地址代表本网段内的广播地址,只能作为目标地址使用;也不能给主机使用 —xx班班群内@所有人

在一个网段内,除了主机位全0和主机位全1 的地址外,剩下的地址均可给主机使用

例:

写出172.16.3.0/16 的可用地址范围、可用主机数量、以及广播地址和网络地址

172.16.3.0/16、

可用主机数量:

65534=2^16-2

可用地址范围:

172.16.0.1/16-172.16.255.254/16

2^主机位-2

网络地址 172.16.0.0/16

广播地址 172.16.255.255/16

VLSM 可变长子网掩码 --子网划分

将原来的一个大的广播域逻辑的划分为若干个小的广播域

做法:通过借用主机位来充当网络位,实现

例1. 借1位 划分2个广播域–2个网段

192.168.1.0/24

192.168.1.00000000/24+1=25

192.168.1.10000000/24+1=25

192.168.1.0/25

可用地址范围:192.168.1.1/25-192.168.1.126/25

可用主机数量:126=2^25-2

网络地址:192.168.1.0/25

广播地址:192.168.1.127/25

192.168.1.128/25

可用地址范围:192.168.1.129/25-192.168.1.254/25

可用主机数量:126

网络地址:192.168.1.128/25

广播地址:192.168.1.255/25

例2. 借2位 划分 4个广播域-- 4个网段

192.168.1.0/24

192.168.1.00000000/24+2=26

192.168.1.01000000/24+2=26

192.168.1.10000000/24+2=26

192.168.1.11000000/24+2=26

192.168.1.0/26

网络地址:192.168.1.0/26

广播地址:192.168.1.63/26

可用地址范围:192.168.1.1/26 - 192.168.1.62/26

可用地址数量:62 = 2^6-2

192.168.1.64/26

网络地址:192.168.1.64/26

广播地址:192.168.1.127/26

可用地址范围:192.168.1.65/26 - 192.168.1.126/26

可用地址数量:62 = 2^6-2

192.168.1.128/26

网络地址:192.168.1.128/26

广播地址:192.168.1.191/26

可用地址范围:192.168.1.129/26 - 192.168.1.190/26

可用地址数量:62 = 2^6-2

192.168.1.192/26

借3位 划分 8个广播域-- 8个网段

192.168.1.0/24

192.168.1.00000000/24+3=27

192.168.1.00100000/24+3=27

192.168.1.01000000/24+3=27

192.168.1.01100000/24+3=27

192.168.1.10000000/24+3=27

192.168.1.10100000/24+3=27

192.168.1.11000000/24+3=27

192.168.1.11100000/24+3=27

192.168.1.0/27

网络地址:192.168.1.0/27

广播地址:192.168.1.31/27

可用地址范围:192.168.1.1/27 - 192.168.1.30/27

可用地址数量:30 = 2^5-2

192.168.1.32/27

192.168.1.64/27

192.168.1.96/27

192.168.1.128/27

192.168.1.160/27

192.168.1.192/27

192.168.1.224/27

划分网段数量=2^借位

可用主机数量=2^主机位-2(网络地址、广播地址)

可用地址范围=网络地址+1 - 广播地址-1

划分网段之间的关系:

简便算法:

首先:必须要找到首段地址,之后递增网段,递增的数值就是借位的最低位(最右边那位)的代表数字(也就是掩码:例:/27 就是第27位的代表数字)

IPv6

IPv6地址中分为本地链路地址(Link-Local Address)全局单播地址(Global Address)。
本地链路地址根据mac等信息通过指定算法得到,不需要从路由器获取。以fe80:开头
全局单播地址从需要和路由器进行协商获取,可以与公网通信。

全局单播地址可通过手动或自动方式配置,其中自动方式分为“**有状态”**和“无状态”。

有状态:可控、可管理。在网络中存在一个IP地址管理者,它能够识别客户端,根据不同的客户端,分配对应的IPv6地址,客户端与服务端之间需要维护IP地址的租期及续约。目前实现这种效果的,就是DHCPv6协议,IP地址管理者就是DHCPv6 Server

无状态:不可控、难管理。在网络中只有网关,没有IP地址管理者。因此无人去识别客户端,每个客户端根据网关发送的相同的RA报文内容,自行配置IPv6地址

在这种情况下,IPv6相关网络配置具有三种方式。

无状态(Stateless):通过邻居管理协议RA报文,从路由公告中配置IPv6地址。RA报文中会携带前缀等信息。同时IPv6DNS等信息也从RA报文中获取。
有状态(Stateful DHCPv6):通过DHCPv6协议获取IPv6相关信息。包括IP地址及DNS等信息。
无状态DHCPv6(Stateless DHCPv6):这种介于上面两种形式中间,IP地址从RA报文中计算得到,而DNS信息,通过DHCPv6协议获取。

RA、RS报文

简介
**NDP(Neighbor Discovery Protocol,邻居发现协议)**是IPv6的基础协议,它组合了IPv4中的ARP、ICMP路由器发现和ICMP重定向等协议,并对它们作了改进。作为IPv6的基础性协议,NDP还提供了前缀发现、邻居不可达检测、重复地址监测、地址自动配置等功能。

NDP定义了5种ICMPv6报文类型,包括RS、RA、NS、NA和Redirect报文。

NS、NA简单来说就是邻居设备之间互通信息,完成IPv6地址到链路层地址的解析,然后通过解析后得到的链路层地址和IPv6等地址信息来建立相应的邻居缓存表项。

而RS、RA报文用于路由器发现

路由器发现是指主机定位本地链路上的路由器和确定其配置信息的过程,主要包含以下3方面内容:

路由器发现(Router Discovery):主机发现邻居路由器及选择某一个路由器作为默认网关的过程。
前缀发现(Prefix Discovery):主机发现本地链路上的一组IPv6前缀,生成前缀列表。该列表用于主机的地址自动配置和on-link判断。
参数发现(Parameter Discovery):主机发现相关操作参数的过程,如MTU、报文的默认跳数限制、地址分配方式等信息。
全球单播地址的配置步骤如下
1)客户端在配置好链路本地地址后,发送RS报文,请求路由器的前缀信息。
2)路由器收到RS报文后,发送单播RA报文,其中携带M、O flag用于指示进行何种类型配置,A flag用于无状态地址自动配置的前缀信息。同时路由器也会周期性地发送组播RA报文。
3)客户端根据RA报文携带A flag,获取网关信息。如果是自动配置或者是无状态,则根据M、O flag,选择IPv6地址及DNS的获取方式
三个flag:M O A

**M flag:**Managed address
configuration字段,为1通过DHCPv6获取IP地址,为0则是通过RA报文获取地址。
**O flag:**Other configuration字段,为1通过DHCPv6获取DNS等其他配置,为0通过RA报文获取其他配置。
虽然M O flag具有四种组合,但实际中M=0,0=0是一直错误的配置,因为当IP通过DHCPv6
Server获取时,相应的DNS等其他配置信息也应从DHCPv6 Server获取以保证业务的连通性。

**A flag:**Autonomous address-configuration
flag(A)字段,表示是否可以使用RA报文前缀信息配置无状态地址。
通过前缀,可以获取子网掩码长度,网关,以及计算出IP地址,图中例子,前缀信息如下:

1
ICMPv6 Option (Prefix information : 2409:8a20:c1a:ce70::/64)

如果是客户端采用自动配置,那么则完全根据RA报文来决定如何获取IPv6相关配置,当然,客户端也可以无视RA报文,选择自己想要的配置方式。(如上图,RA报文配置为无状态DHCPv6模式,但是客户端其实也可以通过DHCPv6来获取有状态地址,只要DHCPv6 Server支持即可)。

所以,有状态及无状态地址并不是完全互斥,他们可以同时存在,如下图可以理解其流程:

地址构成

IPv6 与 IPv4 最显著的不同,就是其超大的地址空间。IPv4 有32比特 (4字节),允许大约42.9亿(232)个地址。而 IPv6 定义了128比特 (16字节),支持大约340 x 1036个地址。这是一个相当可观的数字,在可预见的未来都不会出现地址枯竭的问题。典型的 IPv6 地址可被划分成两部分。如下图所示,开头的64比特用来代表网络,后面的64比特用作接口标识:

img

接口标识(interface ID)可以有多种方式产生:

为了便于书写,IPv6 推荐末端加上网络前缀长度的压缩格式标记,据此上面的地址可以缩短表示为: 2001:db8:130f**:😗*7000:0:140b/64

2101:db6::/64 这个子网我想拆成有8个子网, 那8个子网分别是多少?

首先我们要知道IPv6 地址位有128位,一个IPv6由8个地址节组成,每个地址节为16位,所以2101:db6::/64 完整的16进制表达方式及二进制方式如下图

2101这样一个地址节有16位,拆成二进制表达方式为 0010 0001 0000 0001

所以以上要拆成8个子网(2^3=8)需要在原来的64位在往后延伸 3位,所以需要向下一个地址节中的第一个16进制数字中借用三位 0000

所以2101:db6::/64 这个子网拆成有8个子网有以下

所以完整的8个子网的地址网段为

简写:2101:db6::/64

完整写法:2101:0DB6:0000:0000:0000:0000:0000:0000/64

网络地址 2101:0DB6:0000:0000:0000:0000:0000:0000
起始地址 2101:0DB6:0000:0000:0000:0000:0000:0000
结束地址 2101:0DB6:0000:0000:FFFF:FFFF:FFFF:FFFF
IP 数量 18446744073709551616

子网1:2101:0db6:0000:0000:0000:0000:0000:0000/67

网络地址 2101:0DB6:0000:0000:0000:0000:0000:0000
起始地址 2101:0DB6:0000:0000:0000:0000:0000:0000
结束地址 2101:0DB6:0000:0000:1FFF:FFFF:FFFF:FFFF
IP 数量 2305843009213693952
子网2:2101:0db6:0000:0000:2000:0000:0000:0000/67

网络地址 2101:0DB6:0000:0000:2000:0000:0000:0000
起始地址 2101:0DB6:0000:0000:2000:0000:0000:0000
结束地址 2101:0DB6:0000:0000:3FFF:FFFF:FFFF:FFFF
IP 数量 2305843009213693952
子网3:2101:0db6:0000:0000:4000:0000:0000:0000/67

网络地址 2101:0DB6:0000:0000:4000:0000:0000:0000
起始地址 2101:0DB6:0000:0000:4000:0000:0000:0000
结束地址 2101:0DB6:0000:0000:5FFF:FFFF:FFFF:FFFF
IP 数量 2305843009213693952
子网4:2101:0db6:0000:0000:6000:0000:0000:0000/67

网络地址 2101:0DB6:0000:0000:6000:0000:0000:0000
起始地址 2101:0DB6:0000:0000:6000:0000:0000:0000
结束地址 2101:0DB6:0000:0000:7FFF:FFFF:FFFF:FFFF
IP 数量 2305843009213693952
子网5:2101:0db6:0000:0000:8000:0000:0000:0000/67

网络地址 2101:0DB6:0000:0000:8000:0000:0000:0000
起始地址 2101:0DB6:0000:0000:8000:0000:0000:0000
结束地址 2101:0DB6:0000:0000:9FFF:FFFF:FFFF:FFFF
IP 数量 2305843009213693952
子网6:2101:0db6:0000:0000:a000:0000:0000:0000/67

网络地址 2101:0DB6:0000:0000:A000:0000:0000:0000
起始地址 2101:0DB6:0000:0000:A000:0000:0000:0000
结束地址 2101:0DB6:0000:0000:BFFF:FFFF:FFFF:FFFF
IP 数量 2305843009213693952
子网7:2101:0db6:0000:0000:c000:0000:0000:0000/67

网络地址 2101:0DB6:0000:0000:C000:0000:0000:0000
起始地址 2101:0DB6:0000:0000:C000:0000:0000:0000
结束地址 2101:0DB6:0000:0000:DFFF:FFFF:FFFF:FFFF
IP 数量 2305843009213693952
子网8:2101:0db6:0000:0000:e000:0000:0000:0000/67

网络地址 2101:0DB6:0000:0000:E000:0000:0000:0000
起始地址 2101:0DB6:0000:0000:E000:0000:0000:0000
结束地址 2101:0DB6:0000:0000:FFFF:FFFF:FFFF:FFFF
IP 数量 2305843009213693952


https://jsweetcoffee.github.io/posts/0.html
作者
SCxiaoyun
发布于
2024年12月19日
许可协议