- IPV6技术架构
- 技术背景
- IPv4的局限性
- ipv6的优势基础知识
- 重复地址检测DAD
- IPv4 到 IPv6的过渡技术
- IPv4和IPv6地址的对应关系
- 常见的IPv6地址
- IPv4地址资源的紧张限制了Internet的进一步发展,虽然后期出现了NAT、CIDR、VLSM等技术的使用仅仅暂时缓解IPv4地址紧张,但不是根本解决办法。
新技术的出现对IP协议提出了更多的需求
- IPv4只有32bits地址长度,空间小(大约40亿左右可用地址)
- 地址分配的及其不合理,用于历史原因,发展中国家的地址获取受到了极大的限制.因此IPv6的推行在亚太区及其迫切
- 中国截止2002年8月,只有大约2502万个IPv4地址,B类地址不足200个, A类地址一个没有.2002年8月后,有所增加,但仍然不能满足当前网络需要
- 主机的地址配置变得很困难,如果没有DHCP服务的存在,只能人为完成地址配置,容易出现地址冲突
- 路由器上各种路由协议配置比较复杂
超大的地址空间
- IPv6提供了 128bits (大约3.4*1038个地址,理论上是地球表面原子数的100倍, 广告语:每粒沙子都有一个IP地址)的地址空间
- IPv6地址具备全球可达性和灵活性
- 端到端的访问不再依赖于NAT技术
- 简化路由表
- 一个接口可以配置多个IPv6地址,因此更容易实现重编址
简单的包头
- 包头简单,定长大小(40Bytes),使数据转发效率更高
- 扩展包头可以实现新的技术扩展,并且不影响原包头
- 没有广播数据,全都被组播数据取代
- 没有校验和,靠二层与四层的检测机制来确认完整性
移动性和安全性
- IPSec和Mobile IP内嵌到了 IPv6中,支持性更好
多种迁移方法
- 双协议栈(同时支持IPv4与IPv6)
- 在IPv4与IPv6地址之间进行NAT-P的转换
- 判断主机当前运行的是否是IPv6网络
- www.kame.net 查看ip地址数量
- IPv6地址表示
一个地址分为8段,每段里面有4个十六进制数。段和段之间冒号分十六进制用冒号来分割。
IPv6定义了一种简写方式:
1.每段中,从左往右的起始的0可以省略掉
2.一段中如果是4个0,可以简写为一个0
3.对于中间几段都为连续的0,我们可以简写为“::”,
注意:一个IPv6地址只能有一个“::”。
- IPv6地址分类
1.单播
与IPv4一样,就是点到点的流量类型,用来作为全球唯一的标示符。
2.组播
跟IPv4一样,一对多,多对多或者多对一。只不过在IPv6中,组播功能比IPv4的组播功能多了点,IPv6组播还可以代替IPv4的广播。
3.任意播
就是提供相同服务的服务器,只要给他们配置了相同的IPv6单播地址,这个时候我们 就称之为叫任意播地址。
- 单播地址
1 可聚合全球单播地址(简称AGUA地址)
相比IPv4,就好比IPv4的公网地址。
AGUA地址范围:
前缀一般是从2000::/3开始分发的
最小值:2000::
最大值:3FFF:FFFFFF
最常用的AGUA地址是2001::/16开头的
而2002::/16是用于做6to4 tunnel的。
- link-Local(链路本地地址)
第一段前十位,是FE80::/10开头的地址。
相当于IPv4的mac地址
不管有几个AGUA地址,不管有没有启用link-Local地址,接口都会自动生成一个link-Local地址
并且link-Local地址只有一个
- Site-Local(站点本地地址)
并不是官方定义的,是由微软定义的,比尔盖茨定义的
相当于IPv6地址中的私有地址
第一字段的前10bite以FEC0::/10开头的地址
4.Unspecified address(未指定地址)
在IPv4当中有这么一种情况,就是PC不知道自己的IP地址,但是还想发送IP报文,在报文中必须包含源与目的IP地址,而源IP地址我不知道,我该填什么?
一般会填0.0.0.0/32,这个地址代表我想要发包,但是由于我不知道我本地地 址,我只能暂时使用这个地址来表明我自己。
而IPv6也有类似情况,IPv6的未指定地址是 0:0:0:0:0:0:0:0/128。
5.缺省地址
和IPv4的缺省地址一样,表达方式为0:0:0:0:0:0:0:0/0。
- 总结:
单播
AGUA地址—公网地址
link-Local地址—链路本地—默认由mac地址得来的
站点本地地址—微软定义—私网
未指定地址—::/128
缺省地址:::/0
组播
FF00::/8的第一个0代表是Flag位,第二个0代表是Scope。
我们接触最多的Flag位是0,代表永久组播地址
如果Flag位为1,代表是临时组播地址
Scope位:
1代表接口本地有效
2代表广播域内有效
3不关心
4不关心
5代表AS内有效
8也不关心
E代表整个Internet有效
见到最多的组播地址都是以FF02开头,也是常用的IPv6组播地址
FF02::1 ————— All nodes (link-local)
FF02::2 ————— All routers (link-local)
FF02::5 ————— OSPFv3 routers
FF02::6 ————— OSPFv3 designated routers
FF02::9 ————— Routing Information Protocol (RIPng)
FF02::A ————— EIGRP routers
FF02:: D————— All PIM routers
任意播
R2show ipv int f1/0 //查看接口下的ip
- 单播地址配置方法:
IPv6 enable自动生成link-Local地址
通过配置+EUI-64机制
手工配置
- mac
组播MAC地址,开头定为33.33,后面的32位由IPv6组播地址的后32位,直接填充进MAC地址上来。
- 重复地址检测(Duplicate Address Detection)确保网络中无两个相同的单播地址
任何地址均需做DAD
- 地址配置给接口前称为“tentative地址”,暂时不可用
- 双栈技术
链路层收到数据帧后,拆开并检查IP包头
如果包头中第一个字段为4,则该数据包由IPv4协议栈处理
如果包头中第一个字段为6,则该数据包由IPv6协议栈处理
双栈要求网络节点必须同时支持IPv4 & IPv6
- 隧道技术
- 手动隧道:GRE隧道,IPv6 over IPv4隧道
- 自动隧道:IPv4兼容隧道,6to4隧道
为了使您更好的理解 IPv6,在这里给出一个表格,以比较IPv4和IPv6地址对应关系和区别。
IPv4地址 | IPv6地址 |
组播地址( 224.0.0.0/4) | IPv6组播地址(FF00::/8) |
广播地址 | 无,只有任播( anycast)地址 |
未指定地址为 0.0.0 .0 | 未指定地址为 :: |
回路地址为 127.0.0.1 | 回路地址为 ::1 |
公用 IP地址 | 可汇聚全球单播地址 |
私有地址( 10.0.0 .0/8、172.16.0.0/12和192.168.0.0/16) | 本地站点地址( FEC0::/48) |
Microsoft自动专用IP寻址自动配置的地址(169.254.0.0/16) | 本地链路地址( FE80::/64) |
表达方式:点分十进制 | 表达方式:冒号十六进制式(取消前置零、零压缩) |
子网掩码表示:以点阵十进制表示法或前缀长度表示法( CIDR) | 子网掩码表示:仅使用前缀长度表示法( CIDR) |
? ::/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试验网 地址,属于单播地址。
? fe80::/10 本地链路地址,用于单一链路,适用于自动配置、邻机发现等,路由器不转发以fe80开头的地址。
? ff00::/8 组播地址。
? ::A.B.C.D 兼容IPv4的IPv6地址,其中<A.B.C.D>代表IPv4地址。自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6节点将使用这些地址。
? ::FFFF:A.B.C.D 是IPv4映射过来的IPv6地址,其中<A.B.C.D>代表IPv4地址,例如 ::ffff:202.120.2.30 ,它是在不支持IPv6的网上用于表示IPv4节点。