当前位置:首页 > 实用技巧 >

判断ipv6地址是否合法(怎么判断ipv6地址有没有效)

来源:原点资讯(www.yd166.com)时间:2023-12-20 05:23:10作者:YD166手机阅读>>

判断ipv6地址是否合法,怎么判断ipv6地址有没有效(1)

IPv6协议对IPv4做了诸多改进,最普及的改变就是地址数量的扩展,IP地址从IPv4的32位地址扩展到128位。

此外,IPv6改进了报文头部,IPv4的报文头部根据options不同,可以从20字节到60字节,不利于报文处理。IPv6简化了报文头部,固定为40字节长度,基本上只包含了两个16个字节的源和目的地址,余8字节存放其它信息。IPv4将options放在IPv4报文头部,而ipv6是放在扩展头部,跟在40字节的报头的后面。

IPv6附带的相关协议及RFC非常多,比如ICMPv6、DHCPv6、Stateless Address Autoconfiguration (SLAAC)机制、Layer 2对IPv6的支持、路由协议、QoS协议、安全协议、Mobile IPv6,以及各种IPv4向IPv6过渡的协议。

本文主要介绍IPv6地址的一些基础知识。

IPv6地址有128位(16字节),分为8个16位的字段,以冒号分隔。支持缩写,每个字段里的前置0可以省略,比如0ab3可以缩写为ab3。

地址中连续0可以用双冒号缩写,但是只能使用一次,因为它会被展开足够多的0来满足128位的要求,比如:2001:ab3:0:0:0:0:0:1 可以缩写为 2001:ab3::1。

与IPv4不同,对于IPv6的地址字段,全0或全1都是合法值。

地址类型和地址构成

IPv4有单播、广播和组播地址,IPv6不再使用广播地址,而是使用组播地址。IPv4已经使用的anycast地址类型可能继续在IPv6中使用。

目前IPv6地址分为下面几种类型:

  • unicast 唯一标识一个IPv6 Interface。
  • multicast 标识一组IPv6 Interfaces,发到multicast地址的报文会送到组内所有成员。
  • anycast 标识多个Interface(一般是不同节点),发到anycast地址的报文只会发给其中一个interface,通常是最近的那个。

IPv6地址大体可分为Prefix和Host两部分,Prefix标记法沿用了IPv4的CIDR(但含义不同)。Prefix也称为Global Routing Prefix,用于地址路由。

IPv6支持地址域的概念,有全球和非全球域。IPv4使用私有地址段(如192/8,10/8,172/8等)来表示非全球域,IPv6则将地址域设计在框架里,每个IPv6地址(除未分配的地址)都有特定的域,地址域是作为地址的一部分被编码。

目前常见的Prefix如下,未列出的地址范围为保留的或未分配的(除几个特例):

2000::/3

global unicast

fe80::/10

link-local unicast

fc00::/7

unique-local ipv6 address

ff00::/8

multicast

IANA (Assigned Numbers Authority) 目前只分配001范围的地址(即global unicast),见http://www.iana.org/assignments/ipv6-address-space

有一些特殊分配的地址的Prefix为0x00,包括:未指定的地址、loopback地址、嵌入IPv4的IPv6地址。

全球唯一单播地址的高位为001。高位为ff的IPv6地址总是多播地址。

anycast地址使用单播地址范围,与global unicast地址范围相同,通过Prefix无法区分anycast和unicast。anycast地址用于提供冗余和负载均衡。

如果多个接口分配了同一个单播地址,就构成了anycast地址。需要配置接口让它们知道这是一个anycast地址。每个host都在路由表中有一项记录,发送方无法指定发送到哪个host,而是由路由协议决定。anycast不是为IPv6创造的,在IPv4就已经有rfc了。

NAT短期内缓解了地址不够的问题,但也带来了很多问题,例如端到端,IPSEC。NAT也造成了私有网络的地址重叠,在合并网络时产生问题。IPv6的地址扩展可以不再借助于NAT,从设计上也不再支持NAT。

全球单播地址

全球单播地址也即全球唯一的公网IP地址,它的地址定义如下:

n bits

64 - n bits

64 bits

Global routing prefix

Subnet ID

Interface ID

  • Global routing prefix:明确分配给一个站点的地址范围,bit0-2为001。由国际注册机构和ISP分配,地址具有层级结构。
  • Subnet ID: 一个站点内的link。
  • Interface ID: Interface identifier,确定一个子网中的interface,在子网内唯一。子网总是64位,所以IPv6没有子网掩码的问题。

除了prefix为0b11111111的多播地址,001-111范围的prefix要求interface identifier为64位,遵循EUI-64格式,EUI-64是IEEE定义的唯一标识符。

处于IPv6环境的设备上电时,可以请求Network Prefix,它可以从路由器得到一个或多个prefix,根据prefix信息,设备可以自动配置一个或多个全球IP地址(根据自己的MAC地址或者私有的随机数)。而在IPv4环境,只能手工设置,或者通过DHCP服务。

基于IPv6的地址结构,可以选择两种类型的地址:

  • 唯一稳定IP地址,通过手动配置、DHCP服务、使用EUI-64接口ID的无状态地址自动配置,或使用永久ID的其它地址类型。
  • 临时短暂的IP地址,使用随机数,以均匀间隔改变。

SLAAC(Stateless Address Autoconfiguration)

设备通过IPv6的SLAAC机制自行设置地址(通过DHCPv6获取地址称为 Stateful Address Autoconfiguration)。

Interface在自动配置过程中遵循EUI-64格式。比如Interface使用自身MAC地址自动配置本地链路地址,64位Interface Identifier必须从48位的MAC地址创建:

  • 将0xfffe插入到MAC地址的第三和第四字节
  • Universal/Local位(bit1)取补

比如,48位的MAC地址 00:02:b3:1e:83:29 转换成EUI-64为 02:02:b3:ff:fe:1e:83:29。

Interface的link-local地址是前缀fe80::/64和64位Interface Identifier的组合,构成IPv6地址 fe80::202:b3ff:fe1e:8329。

可以登录Linux系统看看IPv6地址,都是这种规则生成的。

Link-local地址

在IPv4,组织内部常常使用私有地址范围,通过NAT连接Internet。IPv6分配了两个地址域(Scopes)用于link-local和site-local用途,由prefix标识。

link-local地址仅用于单个link,不能被路由,不需要global prefix,可用于无状态自动配置,用于近邻发现(neighbor discovery),无路由的网络,适合临时网络。

Link-local地址的前缀为fe80::/10,定义如下:

10 bits

54 bits

64 bits

1111 1110 10

0

Interface ID

Site-local, Unique Local IPv6地址

site-local地址前缀为fec0::/10,由于很多潜在的问题出现,已经作废,取而代之的是Unique Local IPv6地址(ULA),简称Local IPv6地址。这些地址也是全局唯一的,但不能接入internet,它被设计为用于公司内部或有限的网络。类似于10.0.0.0/8的IPv4地址。

ULA地址的特征:

  • 有全局唯一的prefix。
  • 允许网络的私有联接,没有地址冲突的风险
  • 独立于ISP
  • 可用于无internet的内部通信
  • 支持使用global unicast地址的应用

地址定义为:

Prefix 7 bits

1 bit

40 bits

16 bits

64 bits

1111 110

L

Global ID

Subnet ID

Interface ID

L目前定义为1,因此也可以认为 prefix=fd00::/8

global id是随机生成的(rfc4193定义了pseudo-random global id algorithm,包含了时间,硬件标识和其它系统相关的数据)。用来确保ULA的唯一性,当合并ULA网络时不会产生冲突。

Link-local地址默认通过autoconfiguration分配,ULA需要通过配置路由器或者DHCPv6的local prefix来分配。

多播地址

多播地址的前缀是ff00::/8,定义:

8 bits

4 bits

4 bits

112 bits

1111 1111

Flags: 0RPT

Scope

Group Identifier

Flags标识位高位为0,其它各位分别表示:

  • R: Rendezvous point embedded
  • P:Multicast address based on network prefix
  • T:Temporary multicast address

Scope用于限制多播地址的范围,有如下定义:

0

保留

1

interface-local scope

2

link-local scope

3

保留

4

Admin-local scope

5

site-local scope

6, 7

未分配

8

Organizational-local scope

9, A, B, C, D

未分配

E

Global scope

F

保留

除interface-local,link-local,global之外的scope,必须由管理员定义和配置。已分配的多播地址见www.iana.org/assignments/ipv6-multicast-addresses

Anycast地址

anycast地址用于提供冗余和负载均衡。anycast不是为IPv6创造的,在IPv4就已经有RFC了。

IPv6的anycast地址与global unicast地址范围相同。每个host都在路由表中有一项记录,发送方无法指定发送到哪个host,而是由路由协议决定。

特殊地址

prefix为0000 0000的地址是保留的

未指定的地址:0:0:0:0:0:0:0:0称为全零地址,表示缺少有效地址,类似IPv4的0.0.0.0

环回地址:0:0:0:0:0:0:0:1(::1)

其它的特殊地址类型用于辅助向IPv6的迁移,这些虚拟接口也称为伪接口(Pseudo-interfaces)。这些特殊地址包括:IPv6内嵌IPv4地址、6to4地址、6rd地址、ISATAP地址、Teredo地址等等,大部分已经作废,这里就不展开了。

相关的工具

ipv6calc:地址转换工具。ipcalc也支持IPv6地址。

ping6:与ping同等。

ip6tables:用于IPv6的iptables工具。

栏目热文

如何判断ipv6地址(如何判断ipv6地址的合法)

如何判断ipv6地址(如何判断ipv6地址的合法)

大家好,今天分享一篇来自小白系统官网(xiaobaixitong.com)的图文教程。随着ipv4地址耗尽,ipv6的推...

2023-12-20 05:00:54查看全文 >>

合法ipv6地址怎么判断(如何判断ipv6地址正确)

合法ipv6地址怎么判断(如何判断ipv6地址正确)

1、问题描述编写一个函数判断一个字符串是IPv4地址还是IPv6地址或者两者都不是。IPv4地址以十进制格式表示,它由四...

2023-12-20 05:09:47查看全文 >>

湖南卫视跨年演唱会现场在哪(2015湖南卫视跨年演唱会在线观看)

湖南卫视跨年演唱会现场在哪(2015湖南卫视跨年演唱会在线观看)

官 宣 啦 ~《2023-2024湖南卫视芒果TV跨年晚会》定档12月31日19:30在海口五源河体育场举办今年在海口五...

2023-12-20 05:13:04查看全文 >>

湖南卫视跨年演唱会几个小时(湖南卫视跨年演唱会一共几个)

湖南卫视跨年演唱会几个小时(湖南卫视跨年演唱会一共几个)

作者|西西责编|向晚晚2023年已经接近尾声,新的一年即将来临。新年伊始,最让人期待的当然要数跨年演唱会啦。在众多电视台...

2023-12-20 05:39:20查看全文 >>

湖南卫视跨年演唱会全阵容(湖南卫视跨年演唱会最佳位置)

湖南卫视跨年演唱会全阵容(湖南卫视跨年演唱会最佳位置)

假如你有幸成为湖南卫视跨年晚会的一员,那么你将会亲眼见证一场视听盛宴的诞生。想象一下,灯光在舞台上闪烁,音乐在空气中回荡...

2023-12-20 05:12:21查看全文 >>

怎样查询ipv6地址是不是固定的(怎么看ipv6的地址和网关)

怎样查询ipv6地址是不是固定的(怎么看ipv6的地址和网关)

因为携号转网成功,电信第一时间就把我的宽带拆了,而移动赠送的1000M宽带又迟迟未能上门安装,所以导致接近一周的时间断网...

2023-12-20 05:16:09查看全文 >>

ipv6地址划分方法(ipv6的地址表示方法有几种)

ipv6地址划分方法(ipv6的地址表示方法有几种)

引言随着数字经济的快速发展,网络地址资源逐渐成为制约发展的瓶颈问题,目前广泛应用的互联网协议第四版(IPv4)在全球范围...

2023-12-20 05:07:47查看全文 >>

ipv6地址有三种表示(ipv6怎么表示地址)

ipv6地址有三种表示(ipv6怎么表示地址)

大家好,我是IT售前工程师Bernie。自1981年9月开始,IPv4开始大行其道。作为互联网通信协议的第四个版本,在长...

2023-12-20 05:44:47查看全文 >>

怎么验证ipv6的静态地址有效(获取的ipv6地址是固定的吗)

怎么验证ipv6的静态地址有效(获取的ipv6地址是固定的吗)

题目编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。如果是有效的 IPv4 地址,返回 ...

2023-12-20 05:11:55查看全文 >>

如何判断ipv6地址来源(如何判断是否开启ipv6)

如何判断ipv6地址来源(如何判断是否开启ipv6)

来源:科技日报本报记者 陈 瑜 11月15日,在第二届中国互联网基础资源大会上,IPv6被多位专家热议。工信部信息通信管...

2023-12-20 05:21:43查看全文 >>

文档排行