前言
一、ipv6介绍
1.1 背景
IPv6 将网络地址位数从 32 位扩展到 128 位, 这代表着可以为地球上的任何需要联网的设备提供唯一确定的地址。正是因为有了全球范围内可确定的地址,IPv6 提供了全球范围内的地址可达,端到端的安全通信,以及对所有对地址有要求的应用和服务的支持。 除此之外,丰富的 IPv6 地址空间消除了网络中的 NAT(Network Address Translation)瓶颈,提高了网络效率。
1.2 对比ipv4
差异点 | ipv4 | ipv6 | 备注 |
长度 | 长度为32位,4段,每段8位 | 长度为128位,8段,每段16位 | |
可分配ip数量 | 可分配ip有限为 2^32 -1 | 可分配ip数量为 2^128 - 1 |
二、IPv6
2.1 地址格式
由于 IPv6 的地址有 128 位长,比 32 位的 IPv4 地址表示起来复杂的多。目前,IPv6 的地址由一串 16 进制的数字表示,每 16 位之间用分号(:)隔开,格式如下:x:x:x:x:x:x:x:x.
下面是两个 IPv6 地址例子:
2001:0DB8:7654:3210:FEDC:BA98:7654:3210 1080:0:0:0:8:800:200C:417A
通常情况下 IPv6 地址会包含连续的 0。为避免 IPv6 地址表示的复杂性,连续的 0 可缩写为两个冒号表示(::
)。able1 lists IPv6 地址的缩写格式。
两个冒号可以用在 IPv6 地址的一部分。你可以在一个接口上配置多个地址,但只能一个 link-local 地址。注意两个冒号(::
) 只能在 IPv6 地址中出现一次,只能代表最长的连续的 0。
2.2 单播 Unicast 地址
一个 IPv6 单播地址是用来标示一个网络节点的一个接口。一个数据包的目的地址是一个单播地址时,他将被送到以这个地址标示的网络接口。一个 IPv6 的路由器应支持下列单播地址类型:
Global aggregatable address
:可汇聚的全球化地址。
Site-local address
:区域内的地址 (proposal to remove by IETF)
Link-local address
: 链路接口地址
IPv4-compatible IPv6 address
: 兼容 IPv4 的地址
2.3 可汇聚的全球地址
一个可汇聚的全球地址是一个带有全球化的可汇聚的 IPv6 前缀的地址。 这种结构化的全球化的单播地址可以进行严格的路由前缀的汇聚,这样就可以大大减少整个路由表的路由条数,减少路由的复杂度。 可汇聚的全球 地址用来标示链路地址,可以进行多级的路由汇聚,一直到顶级的 Internet 服务提供商(ISPs).全球化的可汇聚的IPv6 地址被定义为全球化的路由前缀, 子网络号,和接口地址。除了以二进制 000 开始的地址, 所有的全球化的IPv6 单播地址都带有 64 位的接口地址。目前, 全球化的单播地址的分配范围从以二进制的 001 (2000::/3)开始。
IPv6基础知识详解IPv6基础知识详解
2.4 Site-Local 地址
一个 site-local 地址是一个带着前缀 FEC0::/10 和 16 位子网号加上 64 位的 EUI-64 格式的 IPv6 单播地址。Site-local 地址非常像 IPv4 中的私有地址空间 10.0.0.0/8;可以在一个区域内部进行路由的查找,而不需要全球化的唯一的地址前缀。 Site-local 地址可以被认为是私有地址,因为他只能在一个严格限制的区域内使用。
IPv6基础知识详解IPv6基础知识详解
2.5 Link-Local 地址
个 link-local 地址是一个带有 link-local 前缀 FE80::/10(1111 1110 10)的 IPv6 单播地址,他采用修改的 EUI-64 地址格式自动产生。 Link-local 地址可用于邻居发现协议(neighbor discovery protocol)和无状态自动配置进程。 在同一个链路上的节点可使用 link-local 地址来通信; 不需要 site-local 地址或全球化的单播地址。
IPv6基础知识详解IPv6基础知识详解
2.6 与 IPv4 兼容的 IPv6 地址
一个 IPv4 兼容的 IPv6 地址是一个高 96 位全 0 的,低 32 位为 IPv4 地址的 IPv6 单播地址。这种 IPv4 兼容的IPv6 地址可表示为 0:0:0:0:0:0:A.B.C.D 或::A.B.C.D. 整个 128 位的 IPv4 兼容的 IPv6 地址是将网络节点的 IPv4地址直接植入 IPv6 地址的低 32 位。IPv4 兼容的 IPv6 地址用来在运行 IPv4 和 IPv6 双栈时使用自动的隧道技术(tunnels)。
IPv6基础知识详解IPv6基础知识详解
2.7 IPv6 地址类型: Anycast 地址
一个 anycast 地址是一个属于多个网络节点的接口的 IPv6 的地址。一个以 anycast 地址为目的地址的数据包将被转发到最近的网络接口;接口的远近由路由的计算结果来确定。Anycast 地址从地址的结构上来说同单播地址是不可分的,因为 anycast 地址存在于单播地址的地址空间。但一个单播地址可以被超过一个网络接口接收时,他就是一个 anycast 地址。Anycast 地址需要在网络节点上明确定义:这个地址是一个 anycast 地址。
2.8 IPv6 地址类型: 组播地址 Multicast
一个前缀 FF00::/8(1111 1111)的 IPv6 地址就代表它是一个 IPv6 组播地址。一个数据包的目的地址为组播地址时,他将被复制转发到多个网络的接收者。组播地址前缀的第二个八进制数代表组播地址的范围。这个八进制数被分为两部分:前四位为 0000 代表是一个永久性的组播地址,前四位为 0001 代表是暂时的组播 地址;后四位代表组播范围,目前定义了 1, 2, 5, 8, or E,分别代表不同的组播范围。如 Figure6 所示。比如:组播地址的前缀为 FF02::/16 代表是一个永久性的组播地址,在链路范围。
常见问题
1.ipv4 ping ipv6 不可通
PS C:\Users\Administrator> ping -6 ipv6.baidu.com Ping request could not find host ipv6.baidu.com. Please check the name and try again.
一般是路由器不支持ipv6,或者路由器没有分配ipv6地址给你本机
2.ssh 连接ipv6 连不上去
sshd_config 配置 ListenAddress ::
或者 AdressFamily
3.ping本机ping不通
记得加网卡地址
形如:
ping6 fe80::20c:29ff:fe94:f265%eth0
4.windows ping命令和linux 命令不同
windows:
ping -6 ipv6.baidu.com
linux:
ping6 ipv6.baidu.com
5.ping6 ipv6 connect:network is unreachable
- link-local地址,需要转为由路由器动态分配的ipv6地址,ipv6地址才能互相访问。
- VMware Workstation启用IPv6支持
6. 为什么ping ipv6+%网卡
在使用 SSH 连接到 IPv6 地址时,需要指定网卡名称(interface name)是因为一个主机可能会有多个网络接口(network interface),每个网络接口都有一个唯一的 IPv6 地址。如果不指定网卡名称,SSH 将无法确定要使用哪个IPv6地址进行连接。
使用 SSH 连接时,使用以下命令指定网卡名称:
ssh -6 [IPv6地址]%[网卡名称]
其中,[IPv6地址]
是要连接的 IPv6 地址,%
是分隔符,[网卡名称]
是指定的网络接口的名称。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了ipv6相关的坑
参考: