ipv6

认识IPv6地址

我们知道,IPv4地址是类似 A.B.C.D 的格式,它是32位,用"."分成四段,用10进制表示;而IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128位的,用":"分成8段,用16进制表示;可见,IPv6地址空间相对于IPv4地址有了极大的扩充

RFC2373中详细定义了IPv6地址,按照定义,一个完整的IPv6地址的表示法:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
例如:2031:0000:1F1F:0000:0000:0100:11A0:ADDF

为了简化其表示法,rfc2373提出每段中前面的0可以省略,连续的0可省略为"::",但只能出现一次。例如:
1080:0:0:0:8:800:200C:417A
FF01:0:0:0:0:0:0:101
0:0:0:0:0:0:0:1
0:0:0:0:0:0:0:0

上述地址可简写为:
1080::8:800:200C:417A
FF01::101
::1
::

类似于IPv4中的CDIR表示法,IPv6用前缀来表示网络地址空间,比如:
2001:250:6000::/48 表示前缀为48位的地址空间,其后的80位可分配给网络中的主机,共有2的80次方个地址

ok,下面解释一些常见的IPv6地址或者前缀:

::/128      即0:0:0:0:0:0:0:0,只能作为尚未获得正式地址的主机的源地址,不能作为目的地址,不能分配给真实的网络接口
::1/128     即0:0:0:0:0:0:0:1,回环地址,相当于ipv4中的localhost(127.0.0.1),ping locahost可得到此地址

2001::/16     全球可聚合地址,由 IANA按地域和ISP进行分配,是最常用的IPv6地址
2002::/16     6 to 4 地址,用于6to4自动构造隧道技术的地址
3ffe::/16     早期开始的IPv6 6bone试验网地址
注:上面三类属于单播地址,都是目前互联网上广泛应用的IPv6地址

fe80::/10     本地链路地址,用于单一链路,适用于自动配置、邻机发现等,路由器不转发
ff00::/8      组播地址

::A.B.C.D          其中<A.B.C.D>代表ipv4地址,兼容IPv4的IPv6地址。自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6节点将使用这些地址
::FFFF:A.B.C.D     其中<A.B.C.D>代表ipv4地址,例如 ::ffff:202.120.2.30 ,是IPv4映射过来的IPv6地址,它是在不支持IPv6的网上用于表示IPv4节点


以上copy自:http://ipv6.sjtu.edu.cn/address.php

======================================================================================================================

IPv6 = 网络号 + 硬件地址

多数人都把 DHCP 分配 IP 地址看成是天经地义。但我们仔细想想,为什么局域网内一定要有一台地位特殊的服务器给大家分配 IP 地址?网卡有独一无二的硬件 MAC 地址,为什么不直接用网卡的 MAC 地址呢?计算机网络教科书会告诉我们,这是为了路由,也就是 IP 地址采用全球范围内自顶向下逐级分配的方式,就像邮政地址一样。而零散的 MAC 地址就像手机号,我们显然无法方便地根据手机号找到一个人的确切位置。


教科书是对的。不过我们为什么不把这两种方案结合起来,在全球范围内的广域网中使用逐级分配的地址,而在局域网内直接使用硬件 MAC 地址呢?IPv6 就是这样工作的。IPv6 协议并不仅仅是把 32 位的地址扩展到了 128 位,还做了很多细节的改进,把 IPv4 协议中的很多历史遗毒清理掉了。IP 地址的分配就是其一。


当一个 IPv6 客户端接入网络时,它会根据自己的硬件 MAC 地址自动生成一个局域网内使用的链路本地(link local)地址,这样局域网内就可以通信了。例如硬件地址为 00:d0:b7:27:2b:92,生成的链路本地地址就是 fe80::2d0:b7ff:fe27:2b92。也就是说,局域网内的通信不依赖任何 “地址分配服务器”。事实上,在 IPv4 的世界里,很多操作系统在检测不到 DHCP 的环境下(例如双机网线直连)会根据 RFC3927 协议分配一个 169.254.*.* 的 “链路本地” IP 地址,当然这个过程需要协商,不像 IPv6 这样直接根据硬件地址就生成了。


IPv6 客户端的下一件事情是发出广播消息寻找邻居,看哪个邻居愿意充当它的网关,为它提供局域网以外的访问。这就是 Router Solicitation。局域网中的网关会回复 Router Advertisement,表示 “我愿意给你提供局域网以外的访问”,并把这个局域网在全球有效的 “网络号” 告诉客户端(例如,在少年班学院上网,网络号就是 2001:da8:d800:701)。客户端随后就记住了网关的地址,并把 “网络号” 与网卡的硬件 MAC 地址拼接起来,构成一个全球唯一的 IPv6 地址。

Capture

IPv6 的网络号与 IPv4 一样,采用全球范围内自顶向下分配的方式,这样世界上任何一台主机给它发数据包的时候,网络中的各级路由器只要像邮局一样,逐级投递这个数据包就行了。到达它所在的局域网后,数据包就会被根据硬件地址投递到相应的主机。(当然,事实上网关上维护着一个硬件地址和 IPv6 地址的对应表,不要在意这些细节……)


画外音:如果 IPv6 客户端想联系的本来就是局域网内的服务器,则使用的是另一对请求与回应消息:Neighbor Solicitation 与 Neighbor Advertisement,类似 IPv4 中的 ARP 协议。IPv6 里的这些东西都是基于 ICMPv6 协议的,而 ICMPv6 运行在 IPv6 协议之上,不再像 IPv4 那样 ARP 与 IPv4 并列了。ICMPv6 协议承载了这么重要的网络功能,可不是只用来 ping 网络测试,因此写 ip6tables 防火墙规则的时候千万别把它封掉了。

以上copy自: http://blog.renren.com/blog/350643946/936790769

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值