这导致使用网络地址转换器 (NAT) 将多个专用地址映射到一个公共 IP 地址。 此机制造成的主要问题是处理开销和端对端连接性的缺失。
因其固有的预定义类组织,IPv4 缺乏真正的层次结构支持。 无法通过真正地映射网络拓扑的方式构成 IP 地址。 由于存在这种重大的设计缺陷,所以需要通过大型路由表将 IPv4 数据包传送至 Internet 上的任何位置。
对于 IPv4,地址必须以静态方式分配,或使用配置协议,如 DHCP。 在理想情况下,主机不需要依靠 DHCP 基础结构的管理。 主机可基于其所在的网络段自行配置。
IPv4 不需要针对提供交换数据的身份验证或加密的机制的支持。 IPv6 在这一方面作出更改。 Internet 协议安全 (IPSec)是 IPv6 支持要求。
新协议套件必须满足以下基本需求:
使用 IPv6 时,地址长度为 128 位。 地址空间如此之大的一个原因是将可用地址细分为可以反映 Internet 拓扑的路由域的层次结构。 另一个原因是映射将设备连接到网络的网络适配器(或接口)的地址。 IPv6 有可以解析最低级别的地址(即网络接口级别的地址)的固有功能以及自动配置功能。
以下是用于将 IPv6 地址表示为文本字符串的三种常规形式:
这是首选形式 n:n:n:n:n:n:n:n
。 每个 n 表示地址的 8 个 16 位元素之一的十六进制值。 例如:3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562
。
由于地址长度,有些地址通常包含一长串的零。 若要简化这些地址的编写,可使用压缩形式,其中 0 块的单个相邻的序列由双冒号 (::)
表示。 该符号在地址中只能出现一次。 例如,多播地址 FFED:0:0:0:0:BA98:3210:4562
的压缩形式是 FFED::BA98:3210:4562
。 单播地址 3FFE:FFFF:0:0:8:800:20C4:0
的压缩形式是 3FFE:FFFF::8:800:20C4:0
。 环回地址 0:0:0:0:0:0:0:1
的压缩形式是 ::1
。 未指定地址 0:0:0:0:0:0:0:0
的压缩形式是 ::。
此形式合并了 IPv4 和 IPv6 地址。 在这种情况下,地址格式为 n:n:n:n:n:n:d.d.d.d
,其中每个 n 表示六个 IPv6 高序位 16 位地址元素的十六进制值,每个 d 表示一个 IPv4 地址的十进制值。
地址中的前导位定义了特定 IPv6 地址类型。 包含这些前导位的可变长度字段称为格式前缀 (FP)。
IPv6 的单播地址分为两个部分。 第一部分包含地址前缀,第二部分包含接口标识符。 表示 IPv6 地址/前缀组合的简洁方法如下:ipv6-address/prefix-length。
以下是具有 64 位前缀的地址示例。
3FFE:FFFF:0:CD30:0:0:0:0/64
.
本示例中的前缀是 3FFE:FFFF:0:CD30
。 此地址也可以采用压缩形式编写为 3FFE:FFFF:0:CD30::/64
。
IPv6 定义以下地址类型:
单个接口的标识符。 发送到此地址的数据包将会发送到已标识接口。 可通过高序位八进制数的值,区分单播地址和多播地址。 多播地址的高序位八进制数具有 FF 的十六进制值。 此八进制数的任何其他值标识单播地址。 以下是不同类型的单播地址:
这些地址用于单个链接,并且具有以下格式:FE80::InterfaceID。 链接本地地址用于链接的节点之间以实现自动地址配置、邻居发现,或者用于不存在路由器的情况。 链接本地地址主要用于启动时,以及系统尚未获取较大范围地址时。
这些地址用于单个站点,具有以下格式:FEC0::SubnetID:InterfaceID。 站点本地地址用于在站点内寻址,无需全局前缀。
这些地址可以在 Internet 上使用,并具有以下格式:GlobalRoutingPrefix::SubnetID:InterfaceID。
一组接口(通常属于不同节点)的标识符。 发送到此地址的数据包将发送到由该地址标识的所有接口。 多播地址类型取代了 IPv4 广播地址。
一组接口(通常属于不同节点)的标识符。 发送到此地址的数据包将发送到由该地址标识的仅一个接口。 这是路由指标标识的最近接口。 任播地址取自单播地址空间,无法从语法上进行区分。 寻址的接口根据其配置区分单播和任播地址。
通常,节点始终具有链接本地地址。 它可能具有站点本地地址和一个或多个全局地址。
灵活的路由机制是 IPv6 的优势之一。 由于 IPv4 网络 ID 以前和现在的分配方式,需要由 Internet 主干网上的路由器来维护大型路由表。 这些路由器必须了解所有路由,才能转发可能定向到 Internet 任何节点的数据包。 借助聚合地址的功能,IPv6 可以灵活寻址,并且大大减小路由表的大小。 在这种新型寻址体系结构中,中间路由器必须仅跟踪网络中的本地部分,才能恰当地转发消息。
邻居发现提供的一些功能是:
路由器发现:这允许主机识别本地路由器。
地址解析:这允许节点解析相应的下一跃点地址的链接层地址(地址解析协议 [ARP] 的替换)。
地址自动配置:这允许主机自动配置站点本地和全局地址。
邻居发现使用 IPv6 的 Internet 控制消息协议 (ICMPv6) 消息,包括:
IPv6 的一个重要目标是支持节点即插即用。 也就是说,可以将节点插入 IPv6 网络,让其自动进行配置,无需任何人为干预。
IPv6 支持以下自动配置类型:
这种类型的配置需要一定程度的人为干预,因其需要 IPv6 动态主机配置协议 (DHCPv6) 服务器来安装和管理节点。 DHCPv6 服务器保存向其提供配置信息的节点列表。 它还维护状态信息,这样服务器知道每个地址的使用时间,以及何时可用于重新分配。
这种配置类型适用于小型组织和个人。 这种情况下,每个主机通过接收的路由器播发的内容确定其地址。 使用 IEEE EUI-64 标准来定义地址的网络 ID 部分,可以合理地假定链接上主机地址的唯一性。
无论如何确定地址,节点必须验证可能的地址对于本地链接是否唯一。 通过向可能的地址发送邻居请求消息可完成此操作。 如果节点收到任何响应,就知道该地址已在使用,并且必须确定其他地址。
移动设备的广泛应用催生了新的要求:设备必须能够随意改变 IPv6 Internet 上的位置,但是仍然保持现有连接。 为实现此功能,向移动节点分配一个始终可以到达的主地址。 当移动节点在其中时,它连接到主链接并使用其主地址。 当移动节点离开时,主代理(通常是路由器)在移动节点和其正与之通信的节点之间中继消息。
若要使用 IPv6 协议,请确保当前运行的操作系统版本支持 IPv6,并确保正确配置了操作系统和网络类。
下表列出了各种配置
启用 OS IPv6? | 已启用代码 IPv6? | 说明 |
---|---|---|
❌ 否 | ❌ 否 | 可以分析 IPv6 地址。 |
❌ 否 | ✔️ 是 | 可以分析 IPv6 地址。 |
✔️ 是 | ❌ 否 | 使用未标记为过时的名称解析方法,可以分析并解析 IPv6 地址。 |
✔️ 是 | ✔️ 是 | 使用所有方法(包含标记为过时的方法),可以分析并解析 IPv6 地址。 |
已.net为例:
IPv6 默认启用。 若要在环境变量中配置此开关,请使用 DOTNET_SYSTEM_NET_DISABLEIPV6 环境变量。
已linux为例
一:检查Linux是否已经开启ipv6
1.使用 ifconfig 查看自己的IP地址是否含有IPv6地址。
inet6 addr: fe80::213:d4f*::/64 Scope:Link
二:开启ipv6
1、找到配置sysctl.conf 文件,路径在:/etc/sysctl.conf ,找到如下配置:
将列出的ipv6相关配置更改为0
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
3、然后执行sysctl -p命令
sysctl -p
4、找到 network.conf 文件,路径在:/etc/sysconfig/network
找到如下配置:
将列出的配置更改为 yes
5、重启网络服务
service network restart
至此,设备就开启了IPV6功能。
6、通过ifconfig 命令检查是否已经启动ipv6
ifconfig|grep -i inet6
三、配置IPV6地址
1、网卡配置信息
vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加:
IPV6INIT=yes
IPV6ADDR=/<子网前缀长度>
IPV6_DEFAULTGW=
IPV6INIT=yes
IPV6ADDR=/<子网前缀长度>
IPV6ADDR_SECONDARIES="/<子网前缀长度> /<子网前缀长度>"
IPV6_DEFAULTGW=
如:
IPV6INIT=yes 网卡初始化IPv6协议栈
IPV6ADDR=2001:250:4000:2000::53 配置IPv6地址
IPV6_DEFAULTGW=2001:250:4000:2000::1 配置IPv6网关
systemctl restart network.service 重启网络服务,使配置生效
2、linux下添加默认路由。
ip -6 route add / via
ip -6 route add default via 2001:0db8:0:f101::1
route -A inet6 add / gw
route -A inet6 add default gw 2001:0db8:0:f101::1
3、查看路由
ip -6 route show
route -A ‘inet6’
route -6
Internet 协议版本 6 (IPv6) 概述
Linux下配置系统ipv6环境