IPV6实际应用
发布时间:2013-05-06 浏览次数:

编址

从IPv4到IPv6最显著的变化就是网络地址长度。RFC 2373 和RFC 2374定义的IPv6地址,就像下面章节所描述的,有128位长;IPv6地址的表达形式一般采用32个十六进制数

IPv6中可能的地址有3.4×10^38个。也可以想象为16个因为32位地址每位可以取16个不同的值。

在很多场合,IPv6地址由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)。

 

IPv6地址为128位长,但通常写作8组,每组为四个十六进制数的形式。例如:

FE80:0000:0000:0000:AAAA:0000:00C2:0002 是一个合法的IPv6地址。

Pv6 网络地址和IPv4网络地址的转化关系

要是嫌这个地址看起来还是太长,这里还有种办法来缩减其长度,叫做零压缩法。如果几个连续段位的值都是0,那么这些0就可以简单的以::来表示,上述地址就可以写成FE80::AAAA:0000:00C2:0002。这里要注意的是只能简化连续的段位的0,其前后的0都要保留,比如FE80的最后的这个0,不能被简化。还有这个只能用一次,在上例中的AAAA后面的0000就不能再次简化。当然也可以在AAAA后面使用::,这样的话前面的12个0就不能压缩了。这个限制的目的是为了能准确还原被压缩的0.不然就无法确定每个::代表了多少个0.

2001:0DB8:0000:0000:0000:0000:1428:0000

2001:0DB8:0000:0000:0000::1428:0000

2001:0DB8:0:0:0:0:1428:0000

2001:0DB8:0::0:0:1428:0000

2001:0DB8::1428:0000都是合法的地址,并且他们是等价的。但

2001:0DB8::1428::是非法的。(因为这样会使得搞不清楚每个压缩中有几个全零的分组)

同时前导的零可以省略,因此:

2001:0DB8:02de::0e13等价于2001:DB8:2de::e13

一个IPv6地址可以将一个IPv4地址内嵌进去,并且写成IPv6形式和平常习惯的IPv4形式的混合体。IPv6有两种内嵌IPv4的方式:IPv4映像地址和IPv4兼容地址。

IPv4映像地址有如下格式:::ffff:192.168.89.9

这个地址仍然是一个IPv6地址,只是0000:0000:0000:0000:0000:ffff:c0a8:5909的另外一种写法罢了。IPv4映像地址布局如下:

| 80bits |16 | 32bits |

+---------------------------- +--------+------------------------|

0000....................0000 | FFFF | IPv4 address |

+---------------------------- +--------+----------------------- |

IPv4兼容地址写法如下:::192.168.89.9

如同IPv4映像地址,这个地址仍然是一个IPv6地址,只是0000:0000:0000:0000:0000:0000:c0a8:5909的另外一种写法罢了。IPv4兼容地址布局如下:

| 80bits |16 | 32bits |

+---------------------------- +--------+------------------------|

0000....................0000 | 0000 | IPv4 address |

+---------------------------- +--------+----------------------- |

IPv4兼容地址已经被舍弃了,所以今后的设备和程序中可能不会支持这种地址格式。

为了便于大家对IPv6的理解,下面以表的形式把现在的IPv4与IPv6中的一些关键项进行对比,参见表[9]3。

IPv6安装

1. Windows 2000 操作系统

(1) 确认windows操作系统的补丁包已经升级到SP4。

(2) 下载补丁包“tcpipv6-sp4.exe”,并双击运行该自解压文件

(3) 依次打开“控制面板、“网络和拨号连接”,右击“本地连接,再依次单击“属性”、“安装”、“协议”,选择“MSR IPv6 Protocol”协议,即可成功安装IPv6协议栈。

2. Windows XP/Windows 2003 操作系统

(1) IPv6 协议栈的安装

在 开始 --> 运行 处执行 ipv6 install

(2) IPv6 地址设置

在 开始 --> 运行 处执行 netsh 进入系统网络参数设置环境,然后执行

interface ipv6

画面显示:netsh interface ipv6>

然后再执行

add address “本地连接” 2001:da8:207::9402

(3) IPv6默认网关设置

在上述系统网络参数设置环境中执行

add route ::/0 “本地连接” 2001:da8:207::9401 publish=yes

(4)网络测试命令

ping6 、 tracert6

3. Windows Vista 操作系统

(1) 开始——程序——附件——右键点击“命令提示符”——以管理员身份运行

(2) netsh interface ipv6isatapset state enabled回车

(3) netsh interface ipv6isatapset router 隧道IP 回车

4. Linux 操作系统

(1) 安装ipv6协议

modprobe ipv6

(2)IPv6 地址设置

ifconfig eth0 inet6 add 2001:da8:207::9402

(3) IPv6 默认网关设置

route -A inet6 add ::/0 gw 2001:da8:207::9401

(4) 网络测试命令

ping6 、 traceroute6

5. Solaris 操作系统

(1) 创建 IPv6 接口

touch /etc/hostname6.hme0

(2)添加 IPv6 地址

在 /etc/inet/ipnodes 文件中 , 加入如下一行:

2001:da8:207::9402 ipv6.********.bnu-ipv6

(3)设置 dns 查找顺序

在 /etc/nsswitch.conf 文件中 , 修改 hosts 和 ipnodes 项如下 :

hosts: files dns

ipnodes: files dns

(4) 添加默认路由

route add -inet6 default 2001:da8:207::9401 -interface

(5) 测试命令

ping -A inet6 IPv6 目标地址

traceroute -A inet6 IPv6 目标地址

6.win7/win8操作系统安装

win7/win8为自带不用安装

7. Mac OS 操作系统

Mac OS 从10.5leopard开始自带

隧道测试

1. ISATAP隧道点IP地址是isatap.********.

用户设置isatap隧道的终结点router为 isatap.**********

Windows XP/2003 设置如下:

C:\Documents and Settings\Administrator>netsh

netsh>int

netsh interface>ipv6

netsh interface>ipv6>install

netsh interface ipv6>isatap

netsh interface ipv6 isatap>set router isatap.**********(或是高端路由器的IP)

Vista 或Win7 设置如下:

鼠标右键点击“开始->;程序->;附件->;命令提示符”,选择“以管理员身份运行”。

在新开启的【命令提示符】窗口中执行以下两条命令:

netsh interface ipv6 isatap set router isatap.**********

netsh interface ipv6 isatap set state enabled

(部分Vista系统的电脑会在本地LAN中发出IPv6 RA,导致相邻用户不走隧道,此时最好在本地网卡上禁用IPv6选项)

Linux 设置如下:

ip tunnel add sit1 mode sit remote 202.120.58.150 local a.b.c.d

ifconfig sit1 up

ifconfig sit1 add 2001:da8:8000:d010:0:5efe:a.b.c.d/64

ip route add ::/0 via 2001:da8:8000:d010::1 metric 1

注意: 上面的 a.b.c.d 请使用你的真实IPv4地址代替

配置好之后 ipconfig后应该看到一个2001:da8:8000:d010 为前缀的v6地址,hostid为5efe:a.b.c.d,其中a.b.c.d为你的真实的IPV4地址。

推荐使用ISATAP隧道方式接入,不要和下面的另一种6to4隧道同时使用。

2. 网络中心6to4隧道点IP地址是202.112.26.246

如果您无法使用ISATAP方式接入,可以考虑使用这种方式。

用户设置6to4隧道的终结点relay为202.112.26.246

Windows XP/2003 设置如下:

C:\Documents and Settings\Administrator>netsh

netsh>int

netsh interface>ipv6

netsh interface>ipv6>install

netsh interface ipv6>6to4

netsh interface ipv6 6to4>set relay 202.112.26.246 enable

然后 ipconfig后应该看到一个2002:xx:xx为前缀的v6地址,hostid亦为xx:xx,

其中xx.xx为你的真实的IPV4地址转化成得ipv6地址。

自动获得的默认网关是2002:ca70:1af6::ca70:1af6

 

寻址

在 Internet 协议版本 6 (IPv6) 中,地址的长度是 128 位。地址空间如此大的一个原因是将可用地址细分为反映 Internet 的拓扑的路由域的层次结构。另一个原因是映射将设备连接到网络的网络适配器(或接口)的地址。IPv6 提供了内在的功能,可以在其最低层(在网络接口层)解析地址,并且还具有自动配置功能。

表示形式

以下是用来将 IPv6 地址表示为文本字符串的三种常规形式:

十六进制

这是首选形式 n:n:n:n:n:n:n:n。每个 n 都表示8个 16 位地址元素之一的十六进制值。例如:

3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562.

压缩形式

由于地址长度要求,地址包含由零组成的长字符串的情况十分常见。为了简化对这些地址的写入,可以使用压缩形式,在这一压缩形式中,多个 0 块的单个连续序列由双冒号符号 (::) 表示。此符号只能在地址中出现一次。例如,多路广播地址 FFED:0:0:0:0:BA98:3210:4562 的压缩形式为 FFED::BA98:3210:4562。

单播地址 3FFE:FFFF:0:0:8:800:20C4:0 的压缩形式为 3FFE:FFFF::8:800:20C4:0。环回地址0:0:0:0:0:0:0:1 的压缩形式为 ::1。未指定的地址 0:0:0:0:0:0:0:0 的压缩形式为 ::。

混合形式

此形式组合 IPv4 和 IPv6 地址。在此情况下,地址格式为 n:n:n:n:n:n:d.d.d.d,其中每个 n 都表示六个 IPv6 高序位 16 位地址元素之一的十六进制值,每个 d 都表示 IPv4 地址的十进制值。

地址类型

地址中的前导位定义特定的 IPv6 地址类型。包含这些前导位的变长字段称作格式前缀 (FP)。

IPv6单播地址被划分为两部分。第一部分包含地址前缀,第二部分包含接口标识符。表示 IPv6 地址/前缀组合的简明方式如下所示:ipv6 地址/前缀长度

以下是具有 64 位前缀的地址的示例

3FFE:FFFF:0:CD30:0:0:0:0/64.

此示例中的前缀是 3FFE:FFFF:0:CD30。该地址还可以以压缩形式写入,如 3FFE:FFFF:0:CD30::/64。

IPv6 定义以下地址类型:

单播地址(Unicast) 用于单个接口的标识符。发送到此地址的数据包被传递给标识的接口。通过高序位八位字节的值来将单播地址与多路广播地址区分开来。多路广播地址的高序列八位字节具有十六进制值 FF。此八位字节的任何其他值都标识单播地址。

以下是不同类型的单播地址:

链路本地地址。这些地址用于单个链路并且具有以下形式:FE80::InterfaceID。链路-本地地址用在链路上的各节点之间,用于自动地址配置、邻居发现或未提供路由器的情况。链路-本地地址主要用于启动时以及系统尚未获取较大范围的地址之时。

站点本地地址。这些地址用于单个站点并具有以下格式:FEC0::SubnetID:InterfaceID。站点本地地址用于不需要全局前缀的站点内的寻址

可聚集全球地址。这些地址可用在 Internet 上并具有以下格式:001(FP,3 位)TLA ID(13 位)Reserved(8 位)NLA ID(24 位)SLA ID(16 位)InterfaceID(64 位)。

镶有IPv4地址的IPv6地址。这些地址主要是用在自动隧道上,这类节点即支持IPv4也支持IPv6,兼容的地址通过设备以隧道方式传送报文

任播地址(Anycast) 任播,也叫泛播。一组接口的标识符(通常属于不同的节点)。发送到此地址的数据包被传递给该地址标识的所有接口(根据路由走最近的路线)。任播地址类型代替 IPv4广播地址

通常,节点始终具有链路本地地址。它可以具有站点本地地址和一个或多个全局地址。

组播地址(Multicast) IPv6中的组播在功能上与IPv4中的组播类似:表现为一组接口对看到的流量都很感兴趣。

组播分组前8比特设置为FF。接下来的4比特是地址生存期:0是永久的,而1是临时的。接下来的4比特说明了组播地址范围(分组可以达到多远):1为节点,2为链路,5为站点,8为组织,而E是全局(整个因特网)。

路由

IPv6 的优点之一就是提供灵活的路由机制。由于分配 IPv4 网络 ID 所用的方式,要求位于 Internet 中枢上的路由器维护大型路由表。这些路由器必须知道所有的路由,以便转发可能定向到 Internet 上的任何节点数据包。通过其聚合地址能力,IPv6 支持灵活的寻址方式,大大减小了路由表的规模。在这一新的寻址结构中,中间路由器必须只跟踪其网络的本地部分,以便适当地转发消息。

邻居发现 

邻居发现提供以下一些功能

路由器发现。这允许主机标识本地路由器。

地址解析。这允许节点为相应的下一跃点地址解析链路层地址(替代地址解析协议[ARP])。

地址自动配置。这允许主机自动配置站点-本地地址和全局地址。

邻居发现将 Internet 控制消息协议用于 IPv6 (ICMPv6) 消息,这些消息包括:

路由器广告。在伪定期的基础上或响应路由器请求由路由器发送。IPv6 路由器使用路由器广告来公布其可用性、地址前缀和其他参数。

路由器请求。由主机发送,用于请求链路上的路由器立即发送路由器广告。

邻居请求。由节点发送,以用于地址解析、重复地址检测,或用于确认邻居是否仍可访问。

邻居广告。由节点发送,以响应邻居请求或通知邻居链路层地址中发生了更改。

重定向。由路由器发送,从而为某一发送节点指示指向特定目标的更好的下一跃点地址。

自动配置

IPv6 的一个重要目标是支持节点即插即用。也就是说,应该能够将节点插入 IPv6 网络并且不需要任何人为干预即可自动配置它。

自动配置的类型 IPv6 支持以下类型的自动配置:

全状态自动配置。此类型的配置需要某种程度的人为干预,因为它需要动态主机配置协议来用于 IPv6 (DHCPv6) 服务器,以便用于节点的安装和管理。DHCPv6 服务器保留它为之提供配置信息的节点的列表。它还维护状态信息,以便服务器知道每个在使用中的地址的使用时间长度以及该地址何时可供重新分配。

无状态自动配置。此类型配置适合于小型组织和个体。在此情况下,每一主机根据接收的路由器广告的内容确定其地址。通过使用 IEEEEUI-64标准来定义地址的网络 ID 部分,可以合理假定该主机地址在链路上是唯一的。

不管地址是采用何种方式确定的,节点都必须确认其可能地址对于本地链路是唯一的。这是通过将邻居请求消息发送到可能的地址来实现的。如果节点接收到任何响应,它就知道该地址已在使用中并且必须确定其他地址。

IPv6 移动性 

移动设备的迅速普及带来了一项新的要求:设备必须能够在 IPv6 Internet 上随意更改位置但仍维持现有连接。为提供此功能,需要给移动节点分配一个本地地址,通过此地址总可以访问到它。在移动节点位于本地时,它连接到本地链路并使用其本地地址。在移动节点远离本地时,本地代理(通常是路由器)在该移动节点和正与其进行通信的节点之间传递消息。

此处插入介绍。