网络Internet 协议版本 6 (IPv6)
Posted 软泡芙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络Internet 协议版本 6 (IPv6)相关的知识,希望对你有一定的参考价值。
文章目录
Internet 协议版本 6 (IPv6) 是 Internet 的网络层的标准协议套件。 IPv6 旨在解决当前版本的 Internet 协议套件(称作 IPv4)存在的许多问题,包括地址消耗、安全性、自动配置和扩展性等问题。 IPv6 扩展了 Internet 的功能以启用新型应用程序,包括对等和移动应用程序。 以下是当前 IPv4 协议的主要问题:
- 地址空间快速消耗。
这导致使用网络地址转换器 (NAT) 将多个专用地址映射到一个公共 IP 地址。 此机制造成的主要问题是处理开销和端对端连接性的缺失。
- 层次结构支持缺失。
因其固有的预定义类组织,IPv4 缺乏真正的层次结构支持。 无法通过真正地映射网络拓扑的方式构成 IP 地址。 由于存在这种重大的设计缺陷,所以需要通过大型路由表将 IPv4 数据包传送至 Internet 上的任何位置。
- 复杂的网络配置。
对于 IPv4,地址必须以静态方式分配,或使用配置协议,如 DHCP。 在理想情况下,主机不需要依靠 DHCP 基础结构的管理。 主机可基于其所在的网络段自行配置。
- 缺乏内置身份验证和保密性。
IPv4 不需要针对提供交换数据的身份验证或加密的机制的支持。 IPv6 在这一方面作出更改。 Internet 协议安全 (IPSec)是 IPv6 支持要求。
新协议套件必须满足以下基本需求:
- 低开销的大规模路由和寻址。
- 针对各种连接情况进行自动配置。
- 内置身份验证和保密性。
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。 站点本地地址用于在站点内寻址,无需全局前缀。
- 全局 IPv6 单播地址:
这些地址可以在 Internet 上使用,并具有以下格式:GlobalRoutingPrefix::SubnetID:InterfaceID。
- 多播地址:
一组接口(通常属于不同节点)的标识符。 发送到此地址的数据包将发送到由该地址标识的所有接口。 多播地址类型取代了 IPv4 广播地址。
- 任播地址:
一组接口(通常属于不同节点)的标识符。 发送到此地址的数据包将发送到由该地址标识的仅一个接口。 这是路由指标标识的最近接口。 任播地址取自单播地址空间,无法从语法上进行区分。 寻址的接口根据其配置区分单播和任播地址。
通常,节点始终具有链接本地地址。 它可能具有站点本地地址和一个或多个全局地址。
IPv6 路由
灵活的路由机制是 IPv6 的优势之一。 由于 IPv4 网络 ID 以前和现在的分配方式,需要由 Internet 主干网上的路由器来维护大型路由表。 这些路由器必须了解所有路由,才能转发可能定向到 Internet 任何节点的数据包。 借助聚合地址的功能,IPv6 可以灵活寻址,并且大大减小路由表的大小。 在这种新型寻址体系结构中,中间路由器必须仅跟踪网络中的本地部分,才能恰当地转发消息。
邻居发现
邻居发现提供的一些功能是:
-
路由器发现:这允许主机识别本地路由器。
-
地址解析:这允许节点解析相应的下一跃点地址的链接层地址(地址解析协议 [ARP] 的替换)。
-
地址自动配置:这允许主机自动配置站点本地和全局地址。
邻居发现使用 IPv6 的 Internet 控制消息协议 (ICMPv6) 消息,包括:
- 路由器播发:由路由器在伪周期基础上发送或作为路由器招标的响应发送。 IPv6 路由器使用路由器
- 播发来播发其可用性、地址前缀和其他参数。
- 路由器招标:由主机发送以请求链接上的路由器立即发送路由器播发。
- 邻居招标:由节点发送,以进行地址解析、重复地址检测或验证邻居是否仍可以访问。
- 邻居播发:由节点发送,以响应邻居招标或通知邻居链接层地址的更改。
- 重定向:由路由器发送,以指示特定目标的下一个更好的跃点地址,用于发送节点。
IPv6 自动配置
IPv6 的一个重要目标是支持节点即插即用。 也就是说,可以将节点插入 IPv6 网络,让其自动进行配置,无需任何人为干预。
自动配置类型
IPv6 支持以下自动配置类型:
- 有状态自动配置:
这种类型的配置需要一定程度的人为干预,因其需要 IPv6 动态主机配置协议 (DHCPv6) 服务器来安装和管理节点。 DHCPv6 服务器保存向其提供配置信息的节点列表。 它还维护状态信息,这样服务器知道每个地址的使用时间,以及何时可用于重新分配。
- 无状态自动配置:
这种配置类型适用于小型组织和个人。 这种情况下,每个主机通过接收的路由器播发的内容确定其地址。 使用 IEEE EUI-64 标准来定义地址的网络 ID 部分,可以合理地假定链接上主机地址的唯一性。
无论如何确定地址,节点必须验证可能的地址对于本地链接是否唯一。 通过向可能的地址发送邻居请求消息可完成此操作。 如果节点收到任何响应,就知道该地址已在使用,并且必须确定其他地址。
IPv6 移动性
移动设备的广泛应用催生了新的要求:设备必须能够随意改变 IPv6 Internet 上的位置,但是仍然保持现有连接。 为实现此功能,向移动节点分配一个始终可以到达的主地址。 当移动节点在其中时,它连接到主链接并使用其主地址。 当移动节点离开时,主代理(通常是路由器)在移动节点和其正与之通信的节点之间中继消息。
禁用或启用 IPv6
若要使用 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
添加:
- 单IPv6地址:
IPV6INIT=yes
IPV6ADDR=<IPv6地址>/<子网前缀长度>
IPV6_DEFAULTGW=<IPv6网关>
- 多IPv6地址:
IPV6INIT=yes
IPV6ADDR=<IPv6地址>/<子网前缀长度>
IPV6ADDR_SECONDARIES="<IPv6地址1>/<子网前缀长度> <IPv6地址2>/<子网前缀长度>"
IPV6_DEFAULTGW=<IPv6网关>
如:
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环境
WIN10 Internet协议版本tcp/ipv4属性灰色没有法点击
问题图如下:
1、右键打开“计算机”点击菜单,选中“管理”;
2、进入计算机管理后,打开“设备管理器”,然后在右侧打开点击“网络适配器”,如果有驱动的话,在驱动上右键点击菜单,选中卸载;
3、卸载网卡驱动后,打开上方的“扫描检查驱动器改动”图片,重头安装驱动便可。
以上是关于网络Internet 协议版本 6 (IPv6)的主要内容,如果未能解决你的问题,请参考以下文章