美文网首页
一文读完IPv4与IPv6的区别

一文读完IPv4与IPv6的区别

作者: 喜忧参半 | 来源:发表于2023-12-29 23:16 被阅读0次

IPv6编址与寻址

IPv6地址

IPv4:32 bits or 4bytes long
分为私有地址和公有地址,上网需要做一个NAT转换,主要为了解决地址少问题。
IPv6:128 bits or 16bytes : 4 tims the bits of IPv4


v6地址和v4地址表示方法不同:
用十六进制表示:如:FE08:...
16位一组,中间用:隔开,如:2001:12FC:..
若以零开头可以省略,全零的组可用"::"表示,如:1:2::ABCD:..
地址前缀长度用“/xx”表示,如: 1::1/64
注:“::” 一个v6地址只能出现一次


例如同一个地址的不同表示方法:
①0001:0123:0000:0000:0000:ABCD:0000:0001/96
②1:123:0:0:0:ABCD:0:1/96
③1:123::ABCD:0:1/96


v4环回地址是127.0.0.1,v6环回地址是0:0:0:0:0:0:0:1 简写 ::1
当电脑没有配置IPv6的时候,0:0:0:0:0:0:0:1充当占位符,
当配置了IPv6以后,在IPv6中代表默认路由,即:: 代表0.0.0.0/0


IPv6地址 = 前缀 + 接口标识
前缀:相当于v4网络地址中的网络ID
接口标识:相当于v4地址中的主机ID
如:2001:A304:6101:1::E0:F726:4E58/64
前缀是2001:A304:6101:1 接口标识:E0:F726:4E58 那么前缀64位,接口64位
如:2001:123::xx:xx:x/128 ,那么这个代表一个环回口地址 例如2.2.2.2/32
如:2001:123::xx:xx:x/127 ,那么这个代表一个点到点地址,例如12.1.1.1/30

IPv6地址分类

v6地址分为三种地址:
①单播地址(UA) ②组播地址(MA) ③泛播地址(AA)
在IPv6中不再使用广播的概念,所有的广播都是用组播代替。
单播和组播都和v4相同。泛播即任意播,是指,在分布式场景中,多个设备使用同一个泛播地址为最近的用户提供服务。

地址分类
地址类型 二进制前缀 IPv6标识
未指定 00..0(128bits) ::/128
环回地址 00..1(128bits) ::1/128
组播 11111111.xx FF00::/8
链路本地地址(用于路由协议) 1111111010.xx FE80::/10
站点本地地址(私有地址) 1111111011.xx FEC0::/10
全局单播(公有地址)
单播

单播地址用于一对一的连接,IPv6单播地址有以下类型:

  • 未指定的地址,环回地址和IPv4兼容地址
    IPv4兼容地址,是把v6地址的后32位,用来存放v4地址,例如:::192.168.30.1 = ::C048:1E01
  • 本地链路地址,简称Link-Local 地址
    FE80::/10
  • 本地站点地址,简称Site-Local地址
    FEC0::/10
  • 可聚合全球单播地址,简称AGUA地址
    2000::到3FFF:FFFF:FFFF:FFFF.....
    AGUA地址,前三位必须是001,后十三位为TLA,再后8位为RES区域位,再往后24位为NLAs,是网络位,供运营商进行分配,之后的16位为SLA,为子网位,分配给企业用,企业拿到的就是2::/48的地址。

组播

组播地址用于一到多的连接,地址主要是FF00::/8
前八位为FF,后四位代表标志位,Flag位为0代表永久的,Flag位为1代表暂时的,而再后四位代表范围,
范围为1代表本地接口范围,2代表本地链路范围,5代表本地站点范围,8代表组织结构范围,E代表全球范围。
例如FF02::9 这个地址FF开头,是个组播地址,第三位为0,代表永久分配,第四位为2,代表本地链路范围。

组播指定地址:

组播地址 范围 含义 描述
FF01::1 节点 所有节点 在本地接口范围的所有节点
FF01::2 节点 所有路由器 在本地接口范围的所有路由器
FF02::1 本地链路 所有节点 在本地链路范围的所有节点
FF02::2 本地链路 所有路由器 在本地链路范围的所有路由器
FF05::2 站点 所有路由器 在一个站点范围的所有路由器
节点必需的地址

任何一个v6节点都需要开启以下地址:
每个接口的本地链路地址、环回口地址、被分配的单播地址、
所有节点组播地址、主机所属的组播组地址、本地站点地址
所用的每个单播和任播地址的被请求节点组播地址(相当于v4的arp协议,使用ICMPv6)

被请求节点组播地址
就是本地链路范围的组播地址,前面是FF02:,中间是全零,然后是FF/104,即FF02::1:FF/104

IPv6在Ethernet技术上

IPv6拥有一个特定的Ethernet协议ID,是0x86DD,用来分辨是IPv6还是IPv4。

Destination Ethernet Address Source Ethernet Address Type header and payload
0x0800 IPv4
0x86DD IPv6
组播在Ethernet中的映射

如果一个数据包是三层的封装发送到组播地址,你肯定需要一个目的MAC地址,那么这个目的MAC如何表示?
答:把你要发送的这个三层的组播地址的最后三十二位拿出来,当做目标MAC,然后往前补16位的33:33.
即,比如发送的组播地址是FF02::1:FF17:FC0F,那么最后32位FF17:FC0F用来做MAC地址,并补齐地址为:33:33:FF17:FC:0F,这就是IPv6在以太协议栈中的地址映射。
不难发现,FF02::1:FF17:FC0F,前面是FF02,中间全零,后端是FFxx,这很显然是一个被请求节点组播地址。

接口ID的生成

v6地址中都会有接口ID,这是由MAC地址构成,通过48bit的MAC地址转化为64bit的接口ID,肯定是扩充得到的,通过EUI-64的扩充方式。

例如:一个MAC地址是00:90:27:17:FC:0F,通过把MAC地址对折,前面24bit,后面24bit,中间固定的插入FF:FE字段共16bit,得到一个EUI-64地址,EUI-64地址中的第7bit位代表物理地址的全球唯一性,如果不是1要改为1,与48bit位的物理地址相反,1为全球管理,0为本地管理。
通过实验能看出,IPv6的接口地址中式插入了FF:FE字段,并且在地址的第7bit改为了1.
IPv6地址配置技术

IPv6可以发现邻居,其实通过ICMPv6来实现的。(NDP_RFC2461
IPv6邻居发现原理:
首先PC1发送一个ICMP135类型邻居请求消息(NS)到PC2的被请求节点组播地址,PC2收到后,回复一个ICMP136类型邻居宣告消息(NA)到IPC1,这样在PC1就记录下了PC2的MAC地址,类似于v4网络中,将目标MAC存放在自己的ARP缓存表中。


我们抓包看看,在v6网络中是通过ICMPv6建立邻居关系,最后Neighbor Solicitation和Neighbor Advertisement就代表着建立邻居请求和邻居宣告的完成。
启用IPv6
  • 启用IPv6流量转发
Router(config) ipv6 unicast-routing  //默认关闭,跑路由协议需开启,其实就是加入组播地址 FF02::2
Router(config) ipv6 ref load-sharing original //等价路由下,基于hash算法的数据报流量分担
  • 通过在接口上配置IPv6地址,开启接口对IPv6支持
    Router(config-if-GigabitEthernet 0/0)#ipv6 address 2001:12::1/64 //PC机模式
  • 也可以不配置v6地址,先配置本地链路地址
    Router(config-if-GigabitEthernet 0/0)#ipv6 enable //默认情况下,不可用 PC机模式
IPv6的自动配置

IPv6地址的自动配置分为【无状态自动配置】和【有状态自动配置】。
IPv4中的DHCP配置,是一种有状态自动配置,是通过DHCP这种应用层协议来实现的。
IPv6中,可以通过ICMPv6实现无状态自动配置。
PC通过ICMP133向FF02::2发送一个RS请求,路由器收到后,通过ICMP134向目的地址FF02::1发送一个RA消息。这些地址都是基于Ethernet的。
FF02::2(链路上的所有路由器的组播地址) FF02::1(所有节点的组播地址)

IPv6路由选择(RiPng、OSPFv3)

RIPng中的主要更新
  • UDP端口号:IPv4中的RIP使用UDP520号端口,IPv6的RIPNG使用UDP521号端口
  • 本地链路地址:使用本地链路地址作为更新消息的源地址
  • 组播地址:IPv4中的RIP使用224.0.0.9,IPv6中的RIPng使用FF02::9
  • Metric值:在RIPng中,默认情况下进入路由表之前的RIPng度量值+1
  • 一些时间参数:见 “ show ipv6 rip”
    负载均衡功能:RIPng支持默认16条路径进行负载均衡(Max:64条)


OSPFv3

IPv6的OSPF和IPv4的OSPF差别并不大,下面的实验中,同时跑了IPv4和IPv6协议栈,基于接口的宣告可以加快邻居的建立关系。


基于IPv4和IPv6网络的共存和整合

-双栈协议(Dual Stack):网络中的主机、服务器和路由器可以同时使用IPv4和IPv6协议栈。
-隧道协议(Tunneling):隧道使孤立的IPv6主机、服务器、路由器和域利用现有的IPv4基础设施与其他IPv6网络通信。

例如在两端都是IPv6的网络,中间是IPv4的网络,这时候,如何让两端IPv6的网络能够实现OSFP路由协议的宣告,这时候使用tunneling,为IPv6地址做一层IPv4的封装,然后到对端后又进行解封装除去IPv4的头部,实现IPv6的互通。


以上就是目前IPv6的相关原理与配置方法,临近元旦终于有时间进行整理一下了。

相关文章

  • 云小课 | IPv4枯了,IPv6来了

    摘要:本篇主要分享IPv4与IPv6的区别和IPv6的应用场景,助您快速理解华为云IPv6双栈及IPv6 EIP。...

  • IPv6学习笔记

    根据图片进行分析,应用层、传输层和网络接口层上,IPv4与IPv6并无区别。可以说从IPv4过渡到IPv6并不需要...

  • 搭建IPV6测试环境

    搭建环境前先对IPv4 和 IPv6有个大致了解: IPv4 和 IPv6的直观区别就是 IP 地址前者是 .(d...

  • 区别pv4和ipv6

    ipv4和ipv6的区别有哪些?大家可以通过下文来了解ipv4和ipv6的区别,我们在连接无线网络是会出现ipv4...

  • 本地如何搭建IPv6环境测试你的APP

    IPv6的简介 IPv4 和 IPv6的区别就是 IP 地址前者是 .(dot)分割,后者是以 :(冒号)分割的(...

  • mac创建IPv6

    自从6月份开始,苹果对最新上架应用开始要求要适应IPv6(ps:IPv4与IPv6的区别就是IP地址的长度不一样)...

  • 一文读懂 IPv4 到 IPv6 的过渡技术

    在介绍 IPv4 到 IPv6 过渡技术之前,我们先来简单了解一下 IPv4 和 IPv6。什么是 IPv4?IP...

  • URL中使用IPv4,IPv6和主机名

    在浏览器的Http请求的URL中如何使用IPv4,IPv6和主机名,因为IPv6的地址需要加[],导致用法有点区别...

  • 用上下文协议写一个tcp连接

    ipv4 版 ipv6版

  • iOS ipv4和ipv6

    IPv6的网络下,API 中直接使用 IPv4为什么不通?? 首先IPv6网络下只能访问IPv6站点,IPv4下只...

网友评论

      本文标题:一文读完IPv4与IPv6的区别

      本文链接:https://www.haomeiwen.com/subject/siajndtx.html