IPv4解决地址缺少的办法:
NAPT:一个公网地址和端口号共同映射一个私网地址和端口号
CIDR:无类域间路由(超网)(VLSM的反向应用)
国际IP地址分配方式:
1.ICANN的IANA部门负责将IP地址分配给5个区域性的互联网注册机构RIR ,比如APNIC,它负责亚太地区的IP分配
2.RIR将地址进一步分配给当地的ISP,比如:中国电信和中国移动
3.ISP再根据自己的情况,将IP地址分配给机构或者直接分配给用户,比如将IPv4 A类地址分配给一个超大型机构,而将IPv4 C类地址分配给一个中型企业
ICANN:Internet的中心管理机构
IANA:网际网络号码分配局
RIR:区域网际网路注册管理机构,负责对本区域的IP地址规划
ISP:运营商
五大RIR:
RIPE - 欧洲IP地址注册中心
LACNIC - 拉丁美洲和加勒比海Internet地址注册中心
ARIN - 美国Internet编号注册中心
AFRINIC - 非洲-网络信息中心
APNIC - 亚太地址网络信息中心
IPv4地址现状:
IPv4公网地址耗尽。是当前IPv6替代IPv4的最大原动力
Internet用户快速增长,随着科技行业的发展,有更多的用户、更多种类的设备接入公网
IPv4缺乏真正的端到端通信模型。NAT确实能解决私有地址空间与公网互访的问题,但是却破坏了端到端通信的完整性
IPv4无法适应新技术的发展,如物联网等。所有行业都是IPv6的潜在用户
广播机制的存在,对ARP的依赖等,使得IPv4局域网的相关运作问题频发
IPv4对移动性的支持不够理想
临时应对措施:
1991年,IETF为了推迟IPv4地址耗尽发生的时间点,推出分类网络方案
1993年,推出网络地址转换(NAT)与无类别域间路由(CIDR)
但是这些过渡方案皆无法阻止位址枯竭问题的发生,只能减缓它的发生速度,并不能从根本上解决问题
IETF在20世纪90年代提出下一代互联网协议——IPv6,目前IPv6成为公认的IPv4未来的升级版本
IPv6原理描述:
IPv6技术特点:
地址空间巨大:采用128比特标识。128位的地址结构使IPv6理论上可以拥有(43亿×43亿×43亿×43亿)个地址。近乎无限的地址空间是IPv6的最大优势
精简报文结构:使用了新的协议头格式,IPv6数据包有全新的报文头,而并不是仅仅简单地将IPv4报文头中的地址部分增加到128bits而已。在IPv6中,报文头包括固定头部和扩展头部,一些非根本性的和可选择的字段被移到了IPv6协议头之后的扩展协议头中。这使得网络中的中间路由器在处理IPv6协议头时,有更高的效率
实现自动配置和重新编址:IPv6协议内置支持通过地址自动配置方式使主机自动发现网络并获取IPv6地址,大大提高了内部网络的可管理性
支持层次化网络编址:巨大的地址空间使得IPv6可以方便的进行层次化网络部署。层次化的网络结构可以方便的进行路由聚合,提高了路由转发效率
支持端对端安全:IPv6中,网络层支持IPSec的认证和加密,支持端到端的安全
更好的支持QoS:IPv6在包头中新定义了流标签的特殊字段。IPv6的流标签字段使得网络中的路由器可以对属于一个流的数据包进行识别并提供特殊处理。用这个标签,路由器可以不打开传送的内层数据包就可以识别流,这就使得即使数据包有效载荷已经进行了加密,仍然可以实现1对QoS的支持
支持移动特性:采用Routing header和Destination option header等扩展报头,使得IPv6提供了内置的移动性
IPv6报文格式:IPv6数据包由一个IPv6基本报头、多个扩展报头和一个上层协议数据单元组成
![](https://img-blog.csdnimg.cn/d28e8ad5d2734a1681a07844607a2560.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pif56m65LqI6JOd,size_20,color_FFFFFF,t_70,g_se,x_16)
IPv6基本报头(IPv6 Header):每一个IPv6数据包都必须包含报头,有8个字段,其长度固定为40bytes
基本报头提供报文转发的基本信息,会被转发路径上面的所有路由器解析
上层协议数据单元(Upper Layer Protocol Data Unit):
上层协议数据单元一般由上层协议包头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文
IPv6报头格式中主要字段:
Version:版本号,长度为4bit。对于IPv6,该值为6
Traffic Class:流类别,长度为8bit。等同于IPv4中的ToS字段,表示IPv6数据报的类或优先级,主要应用于QoS
Flow Label:流标签,长度为20bit。IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流
Payload Length:有效载荷长度,长度为16bit。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)
Next Header:下一个报头,长度为8bit,指明下一个扩展报头(如果存在)或上层协议的类型;作用等同IPv4中protcol,标识上层头部类型
Hop Limit:跳数限制,长度为8bit。该字段类似于IPv4中的Time to Live字段,它定义了IP数据报所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据报将被丢弃
Source Address:源地址,长度为128bit。表示发送方的地址
Destination Address:目的地址,长度为128bit。表示接收方的地址
扩展报头:扩展报头是可选的,只有需要该扩展报头对应的功能时,数据的发送者才会添加相应扩展报头;
基本要求:必须是64bit的倍数,便于64位处理器的处理
![](https://img-blog.csdnimg.cn/87550ac1626b4dffa5fbdc00b391f730.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pif56m65LqI6JOd,size_19,color_FFFFFF,t_70,g_se,x_16)
Next Header:下一个报头,长度为8bit。与基本报头的Next Header的作用相同。指明下一个扩展报头(如果存在)或上层协议的类型
Extension Header Length:报头扩展长度,长度为8bit。表示扩展报头的长度(不包含Next Header字段)
Extension Head Data:扩展报头数据,长度可变。扩展报头的内容,为一系列选项字段和填充字段的组合
若扩展报头有效内容达不到64bit,则使用特定的填充字段填充到64bit的倍数:
两种方法:1.使用单字节的0填充
2.使用多字节的填充字段
![](https://img-blog.csdnimg.cn/6e6917b27eca4f4397a75871cab32cc4.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pif56m65LqI6JOd,size_20,color_FFFFFF,t_70,g_se,x_16)
扩展报头种类:当超过一种扩展报头被用在同一个IPv6报文里时,报头必须按照下列顺序出现
报头类型 Next Header字段值 描述
逐跳选项报头 0 该选项主要用于为在传送路径上的每跳转发指定发送参数,传送路径上的每台中间节点都要读取并处理该字段
应用场景:
1.用于承载巨型载荷—Jumbo Payload Length(长度为32bit)
当出现大于65535字节的数据包,Payload Length无法标识有效数据长度,Payload Length置为0,有效部分用Jumbo Payload Length处理
2.用于路由器提示
3.用于资源预留
目的选项报头 60 目的选项报头携带了一些只有目的节点才会处理的信息。目前,目的选项报文头主要应用于移动IPv6
路由报头 43 路由报头和IPv4的Loose Source and Record Route选项类似,该报头能够被IPv6源节点用来强制数据包经过特定的路由器
分段报头 44 同IPv4一样,IPv6报文发送也受到MTU的限制。当报文长度超过MTU时就需要将报文分段发送,而在IPv6中,分段发送使用的是分段报头
identification
M1表示有更多分片,0表示没有分片
id标识分片是否属于同一个数据流
根据identification找到数据包的所有分片,再根据偏移量将分片重组
认证报头 51 该报头由IPSec使用,提供认证、数据完整性以及重放保护。它还对IPv6基本报头中的一些字段进行保护(只提供对数据的保护功能)
封装安全净载报头 50 该报头由IPSec使用,提供认证、数据完整性以及重放保护和IPv6数据报的加密,类似于认证报头,但功能更全(除了提供数据的保护,还提供数据的加密功能)
IPv6和IPv4的区别:
1.增加了流标签字段,使用S.IP+Flow Label唯一标识一个数据流,相比于IPv4而言,只需要解析网络层协议,不再需要解析传输层信息
2.IPv6由于报头是定长的字段,直接用Payload Length表示有效数据部分,不再需要向IPv4 total(总长度)Length - header Length 得来,减少设备计算
3.IPv6取消了校验功能,校验由上层协议完成(UDP或TCP必须具备校验功能);
好处:取消重复校验
4.IPv6把一些可选功能全部移植到扩展头部,对于不需要扩展功能的路由器需要解析的内容变少,减轻设备压力
路由负载分担:
IPv4基于流负载分担:源目IP、源目端口号、传输层协议类型(五元组)(需要解析三四层参数)
IPv6基于流负载分担:流标签+源地址(只需要解析网络层协议,不再需要解析传输层信息)
IPv6地址分类:
![](https://img-blog.csdnimg.cn/8ad069a119db45c7991d0cb5dc10b025.png)
单播地址(Unicast Address):标识一个接口,目的地址为单播地址的报文会被送到被标识的接口。在IPv6中,一个接口拥有多个IPv6地址是非常常见的现象
可聚合全球单播地址:
作用类似于IPv4中的公网地址。这种类型的地址允许路由前缀的聚合,从而限制了全球路由表项的数量
001固定 顶级站点聚合(13bit) 次级站点聚合 接口id (固定前缀001,建议分配64位)
由前缀、子网ID和接口标识组成,用于IPv6 Internet。它们是全局唯一的和全局可路由的
![](https://img-blog.csdnimg.cn/73fd9147eed24595bbc224adec92107b.png)
全局路由前缀:由提供商指定给一个组织机构,一般至少为48bit。目前已经分配的全局路由前缀的前3bit均为001。因此前缀为2000::/3(IANA)
子网:组织机构可以用子网ID来构建本地网络(Site),与IPv4中的子网号作用相似。子网ID通常最多分配到第64位(公司运营商自行分配)
接口id(主机位):用来标识一个设备(Host),与IPv4中的主机ID作用相似
链路本地地址:在一个节点启动IPv6协议栈时,节点的每个接口会自动配置一个链路本地地址。该地址专门用来和相同链路上的其他主机通信
1.源IP地址是链路本地地址的数据报文,是不能被路由器转发的,链路本地地址只在一条链路有效
2.链路本地地址实现路由协议地址和业务地址解耦,专门为路由协议服务;例如OSPFv3发送的协议报文源IP都是链路本地地址(广泛应用于邻居发现、无状态地址等)
链路本地地址固定前缀FE80::/10,将接口ID添加在后面作为地址的低64位
每一个IPv6接口都必须具备一个链路本地地址
切换全球单播地址,不会影响OSPFv3的正常运行,OSPFv3基于链路本地地址去通信
3.链路本地地址作为路由协议的下一跳地址
4.链路本地地址用来标识设备在链路上的位置
5.如何配置链路本地地址:
在接口下一定要配置一个全球单播地址,链路本地地址才会生效
默认链路本地地址在配置了全球单播地址之后才会生效
配置方法:1.自动生成:[Huawei-GigabitEthernet0/0/0]ipv6 address auto link-local
2.手动,先配链路本地地址,后配全球单播地址 [Huawei-GigabitEthernet0/0/0]ipv6 address FE80::/10 link-local
唯一本地地址:IPv6的私网地址,概念上类似于IPv4中的私网地址,仅能够在本地网络使用,在IPv6 Internet上不可被路由(任何没有申请到提供商分配的全球单播地址的组织机构都可以使用唯一本地地址。唯一本地地址只能在本地网络内部被路由转发而不会在全球网络中被路由转发)
由RFC4193定义;
作用:为了代替站点本地地址的功能,又使这样的地址具有唯一性,避免产生像IPv4的私有地址泄漏到公网而造成的问题(仅能在一个站点内使用。由于本地站点地址的废除&#x