ipv6 转
时间:2009-04-10 来源:youngtao
“12月3日,备受关注的“中国下一代互联网示范工程(CNGI)”历经5年耕耘结出硕果,我国已建成全球最大的下一代互联网示范网络,推动并形成了中国的下一代互联网产业群,以IPv6路由器为代表的关键技术及设备产业化初成规模,市场占有率跃升至世界第二位。”
尽管IPv6的普及不是一会儿半会儿的事儿,但是IPv6的广泛应用已经不再是梦想,已经提到日程上来。IPv6的产业化很快就会到来,为了迎接IPv6的普及与应用。我做准备做一系列的IPv6操作实验,与网友们分享IPv6知识与乐趣。
一、为Windows XP 安装IPV6协议
Windows的新一代操作系统Vista与Windows Server 2008已经全面支持IPV6,Windows XP SP2也已经支持IPv6了,只不过是默认情况下没有安装。我们可以通过“本地连接”或命令行来安装IPV6协议。
1、安装IPV6协议

图一

图二

图三 ipv6 install,命令行下安装IPV6
2、检验安装

图四

图五 ::1为IPV6接口环回地址
二、为网卡配置IPV6地址
在Windows XP只能在命令行配置IPV6地址。
C:\>netsh
netsh>interface
netsh interface>ipv6
netsh interface ipv6>add address "本地连接" 1001:1:1:1:1:1:1:1
确定。
netsh interface ipv6>
以上命令表示为网卡配置了地直为1001:1:1:1:1:1:1:1的IPV6地址(十六进制数),在实验网络中为另一台计算机(Windows XP)配置了1001:1:1:1:1:1:1:2。

图六 ping测试成功
三、IPV6数据包

图七

图八
使用Windows Server 2008的DNS服务把域名解析为IPv6地址的实验。客房端使用Windows XP Professional。关于Windows Server 2008在这里不在赘述,可以参见我的博客里有关Windows Server 2008相关文章。
实验环境说明
DNS服务器 IPv4地址:192.168.0.3 IPV6地址:1001:1:1:1:1:1:1:3
域名:senya.org
WWW服务器 IPv4地址:192.168.0.3 IPv6地址:1001:1:1:1:1:1:1:3
主机名:web.senya.org
客户机: IPv4地址:192.168.0.1 IPv6地址:1001:1:1:1:1:1:1:1
一、为Windows Server 2008配置IPV6地址及配置DNS服务器
打开网络连接,右键单击“本地连接”,打开“本地连接”-“属性”对话框:

图一

图二 配置IPv6地址1001:1:1:1:1:1:1:3/64及DNS

图三 在Windows Server 2008的服务器管理中添加DNS服务器角色


图五 输入域名:senya.org

图六 新建主机

图七


图九 建立反向查找区域

图十

图十一 选择IPV6反向查找区域

图十二 输入前缀

图十三 反向区域文件名

图十四 新建主机并选择PRT记录项
图
图十五
二、配置客户端
为客户端IPV6配置DNS服务器:
C:\>netsh
netsh>interface
netsh interface>ipv6
netsh interface ipv6>
netsh interface ipv6>add dns "本地连接" 1001:1:1:1:1:1:1:3
确定。
netsh interface ipv6>
实验中表明,没有使用IPv6数据包来解析域名,而是使用了IPv6数据来收发DNS解析数据包。

图十六 使用域名访问网站(IPV6),成功解析

图十七 抓取的DNS数据包

图十八 DNS解析中响应客户端数据包
在实验中,无论是Windows Server 2008还是Windows XP均需要设置IPv4地址,DNS才能正常工作或解析。客户端在向DNS服务器请求解析域名时依然是使用IPv4数据包。
IPv6(Internet Protocol version 6)即网际协议第六版。我们当前正在使用的是第四版,我一般不说IPv4,只有与IPv6相提并论时才指出它是第四版。在IPv4之前,我们也没有用过第一、二、三版。为什么称当前使用的IP协议为第四版呢?我猜想TCP/IP开发者(文特●塞夫、罗伯特●卡恩)在设计这套协议时肯定经历了多个测试版本,在他们认为比较完美时,才推出来记大家使用。即IPv4是正式版,可能存在IPv1、IPv2、IPv3,这些版本都是测试版。这些仅仅是猜想而已。
前两天我们动手做了IPv6的相关实验,今天,我们来具体地了解IPv6的一些相关知识。这些知识需要记住哦。
一、为什么要开发IPv6
TCP/IP的开发者,当时并没有预料到互联网在今天会这么火,“计算机千年问题”大家应该还记得吧。互联网的迅猛发展使用TCP/IP协议已经不能满足人们的需要了,阻碍了互联网的发展,主要表现在:1、IP地址已经枯竭,不够用了。互联网技术来自于美国,当然互联网的发展、管理由美国人掌控了,据说美国一所大学拥有的IP地址数量比我们中国还要多!IP地地不够有而且分配不合理。于是出现了划分子网、无类编址、NAT技术来应对,但终究解决不了实质问题。IPv6的地址使用128bit表示,据估计,使用IPv6,可以让地球上的每一粒沙子分得一个IP地址。2、由于IPv4地址分配不合理及互联网的迅猛发展,互联网核心路由器的路由表日益膨胀,使得核心路由器负荷很重,在路由选择计算速度也明显下降。严重影响并制约了互联网的发展。IPv6在这方面做了改进,可以更好支持选路。IPv4数据包报头过于臃肿也会降低数据传输的速度,IPv6数据包采用主报头与扩展报头的方式,来减少不必的数据传输。3、IPv4对QoS(Quality of Service)支持不够好。网联会议、网络电话、网络电视迅速普及与使用,这就要求有更好的QoS来保障这些音视频实时转发。IPv6则提供更好的QoS服务。4、安全性问题。TCP/IP协议在诞生的那一天,根本没有考虑到安全性问题,这就致使今天我们的互联网安全性很差,可以利用协议本身进行攻击。为弥补TCP/IP协议的不安全因素,虽然开发了与之相关的安全补丁协议(IPSec,将其称之为补丁协议,是指它们后来才开发的,用来弥补),但不能从根本上解决安全问题。IPv6在安全性方面会大大增强。5、其它方面。
二、IPv6的地址分配
很吓人!看到这么长的IPv6地址,我就头痛,太长了!这是配置IPv6地址的最大感受。
IPv6地址分为三大类:Unicast(单播)、Multicast(多播)、AnyCast(任播或泛播)。IPv6地址架构这方面的详细信息大家可以参考RFC4291文档:http://www.rfc-editor.org/rfc/rfc4291.txt
IPv6地址共有128bit,采用冒号分十六进制法表示,分为八节,每节十六bit,形如:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789,怎么样,看着是不是让人头痛!IPv6支持零压缩表示。前面,我们提到IPv6环回地址是::1,它是被压缩后的表示方法,它的完整的记法是0:0:0:0:0:0:0:1。IPv6地址已经没有掩码一说,使用的是前缀。
多播(Multicast)地址比较容易识别,即所有以FF开头的IPv6地址都是多播地址。
IPv6的Unicast(单播)地址
IPv6的单播地址有多种类型:Global Unicast(全局单播地址)、Site-Local Unicast(场点本地单播地址)、Link-Local unicast(链路本地单播地址),在全局单播地址中,还有其它一些子类型的,有特殊用途的、保留的地址等。还有IPv6/IPv4嵌入式地址等。IPv6地址有些复杂,我们在做实验时怎么分配呢?大家可以这样做。全局单播地址的起始bit是001,链路本好单播地址的起始bit是1111111010,场点本地单播地址的起始bit是1111111011,我们可以在这三类单播地址中选择最简单的IPv6地址,如我选择的是1001:1:1:1:1:1:1:1/64。无论学习哪一门知识,我们都应该从易到难,逐步进行,学习IPv6也是一样,逐步学习。
三、IPv6数据报格
这方面的详细资料大家可以参考RFC2460文档, Internet Protocol, Version 6 (IPv6) Specification:http://www.rfc-editor.org/rfc/rfc2460.txt。
IPv6 报头格式
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Source Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Destination Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
下面拿一个实例加一解释与说明:

图一 我使用数据凶嗅探工具抓取的IPv6数据包
从上图中我们可以年到IPv6报头与IPv4相比较减少许少,这是因为IPv6报头采用主报头与扩展报头的结构。上图中只有一个IPv6主报头。对其数据域做一些解释与说明:
版本:6,表示是IPv6,占用4个bit。
流量类别(Traffic Class):0,表示该次流量没有加识别标志,是普通流量。
流标签(Flow Label):0。
载荷长度 (Payload Length):410
下一个首部(报头):TCP,值是6
跳数限制(Hop Limit):128。
源地址:1001:0001:0001:0001:0001:0001:0001:0001
目的地址:1001:0001:0001:0001:0001:0001:0001:0003
由上图我可以看出,Ethernet帧头中的协议类型(protocol type)的值变成了0x86DD,Ethernet帧头、TCP、HTTP等协议均没有发生变化。从这里我们看到网络协议分层的好处。IP协议是TCP/IP协议套件中最为重要的协议,与之关系密切的协议肯定也得做相应的变化,如IGMP、ICMP、路由协议(RIP、OSPF等)及物理地址到IP地址映射的协议。明天,我们来认识他们都做了哪些变化。
我们知道TCP/IP协议是分层设计的,当某一层的协议发生变化时,并不影响其它层的协议工作,但这些协议是互相协作工作的,IP协议是TCP/IP协议套件中的最为重要的协议,因此,IP协议的改变势必影响到与之关系密切的协议,再说了,通过对IP协议的改进,目的是让互联网更好的适应我们的需要。因此,其它有缺陷的协议也应该改进。
一、邻居发现协议
邻居发现协议(ND,Neighbour Discovery)的详细介绍请参见RFC2461:http://www.rfc-editor.org/rfc/rfc2461.txt,在IPv4中用ARP协议完成IP层逻辑地址到数据链路层物理地址的映射。的IPv6中已经不在使用ARP协议了,而是使用一个新的解析协议邻居发现协议(ND)。ND使用ICMPv6协议封装、发送接收数据。ND有两种类型的数据报文:Neighbor Solication和Neighbor Advertisement。Neighbor Solication报文用来请求IPv6地址到链路层物理地址解析,它的数据报文结构与内容如下:

图一 Neighbor Solication报文格式与内容
Neighbor Solication报文格式与内容与传输说明:上图中IPv6地址为1001:1:1:1:1:1:1:3的主机想知道IPv6地址为1001:1:1:1:1:1:1:1的主机的以太网MAC地址,于是IPv6地址为1001:1:1:1:1:1:1:3的主机发出一个组播IPv6数据报文,告诉该多播组中的主机,我的以太网Mac地址是多少,我的IPv6地址是多少,请告诉我IPv6地址为1001:1:1:1:1:1:1:1的的主机的以太网Mac地址是多少?
Neighbor Advertisement数据报文
Neighbor Advertisement报文是对Neighbor Solication报文的响应与回答:

图二 该报文是对图一所示的Neighbor Solication报文的回答
该报文要表达的意思是:我的IPv6地址是1001:1:1:1:1:1:1:1,我的以太网Mac地直是00:1E:90:1c:8c:4F。通过这两个报文的交换完成了IP层逻辑地址到数据链路层物理地址的映射。
二、ICMPv6
详细资料请参见RFC4443,http://www.rfc-editor.org/rfc/rfc4443.txt
ICMP通用报文格式:
以Echo Request、Echo Reply为介绍

图三 ICMPv6 Echo Request报文 ,该报文ICMP类型代码为128

图四 ICMPv6 Echo Reply报文,该报文ICMP类型代码为129