《IPv6应用和实现技术.ppt》由会员分享,可在线阅读,更多相关《IPv6应用和实现技术.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、IPv6应用和实现技术应用和实现技术20052005年年1111月月2828日日内容内容n nIPv6现状n n支持IPv6的操作系统n n安装IPv6n n使用IPv6n n深入Linux IPv6FFIPv6现状n n支持IPv6的操作系统n n安装IPv6n n使用IPv6n n深入Linux IPv6内容内容IPv6标准组织标准组织n nIETF IETF:http:/http:/www.ietf.orgwww.ietf.orgn nIP Version 6 Working GroupIP Version 6 Working Groupn n制订制订IPv6IPv6规范和标准规范和标准
2、n nIPv6 OperationsIPv6 Operationsn n为运营为运营IPv4/IPv6IPv4/IPv6共存的共存的InternetInternet和在已有的和在已有的IPv4IPv4网络或者新的网络或者新的网络安装中部署网络安装中部署IPv6IPv6提供指导提供指导n n其它其它IPv6IPv6相关工作组相关工作组n n6lowpan,mip6,6lowpan,mip6,mipshopmipshop,monami6,multi6,shim6,monami6,multi6,shim6n n3GPP 3GPP:http:/www.3gpp.orghttp:/www.3gpp.or
3、gn nIPIP多媒体子系统多媒体子系统 (IMS)(IMS)使用使用IPv6IPv6n nITU-T ITU-T:http:/www.itu.int/ITU-T/index.htmlhttp:/www.itu.int/ITU-T/index.htmln n在电信网络中采用在电信网络中采用IPv6IPv6技术技术Nov 05,Re-charter or close国外国外IPv6研究和应用研究和应用n n6BONE6BONE:http:/http:/n n19961996年年年年IETFIETF建立的建立的建立的建立的IPv6IPv6测试床测试床测试床测试床n n20042004年年年年1 1
4、月月月月1 1日:不再分配日:不再分配日:不再分配日:不再分配3ffe3ffe前缀前缀前缀前缀n n20062006年年年年6 6月月月月6 6日:结束使命日:结束使命日:结束使命日:结束使命n nThe IPv6 ForumThe IPv6 Forum:http:/http:/n n倡导倡导倡导倡导IPv6IPv6,提升,提升,提升,提升IPv6IPv6的市场和用户意识的市场和用户意识的市场和用户意识的市场和用户意识n nIPv6 Ready Logo Program(Phase 2)IPv6 Ready Logo Program(Phase 2)n nWIDEWIDE:http:/http
5、:/www.wide.ad.jpwww.wide.ad.jpn nKAMEKAME,USAGEUSAGE,TAHITAHI:实现和验证:实现和验证:实现和验证:实现和验证IPv6IPv6n nNautilus6Nautilus6:移动通信中的:移动通信中的:移动通信中的:移动通信中的IPv6IPv6应用应用应用应用n nIPv6 ClusterIPv6 Cluster:http:/www.ist-ipv6.orghttp:/www.ist-ipv6.orgn n欧洲欧洲欧洲欧洲IPv6IPv6研究和开发项目研究和开发项目研究和开发项目研究和开发项目n nIPv6 Cluster MemberI
6、Pv6 Cluster Member:Euro6IX Euro6IX,6NET6NETn nMoonv6Moonv6由于产品部署,开始由于产品部署,开始制订制订Phaseout计划计划IPv6技术相关的高级功技术相关的高级功能和应用的研究和开发能和应用的研究和开发国内国内IPv6应用应用n nCNGI:中国下一代互联网示范工程n n20032003年年8 8月启动月启动n nCNGICNGI最大的核心网最大的核心网CERNET2CERNET2n n20042004年年1212月科大作为合肥主节点接入月科大作为合肥主节点接入CERNET2CERNET2n n20042004年年1212月月CER
7、NET2CERNET2开通,以开通,以2.5Gbps2.5Gbps10Gbps10Gbps速速率连接全国率连接全国2020个主要城市个主要城市n n电信、网通电信、网通/中科院、移动、联通和铁通的中科院、移动、联通和铁通的IPv6IPv6网络正在建设中网络正在建设中结论结论n nIPv6核心协议的研究、开发、测试工作已经基本结束,开始进入IPv6增强功能和应用的研究开发阶段n nIPv6研究试验网阶段基本结束,已经进入由产品级设备构成的商用实验网阶段内容内容n nIPv6应用现状FF支持IPv6的操作系统n n安装IPv6n n使用IPv6n n深入Linux IPv6Windows操作系统操
8、作系统研究版(Research IPv6)技术预览版(TechnologyPreview)开发预览版(Developer Preview)正式产品版适用windowsWindows NT4.0Windows 2000Windows 2000SP1-SP4Windows xpWindows xp(SP1)Windows server 2003 family备注最早的IPv6版版本本,最新版为1.4,1998年1.0版只支持windows 2000不提供技术支持正式产品,提供技术支持Linux操作系统操作系统n n19961996发布第一个基于内核发布第一个基于内核2.1.82.1.8的的IPv6
9、 patchIPv6 patchn n基于基于BSD APIBSD APIn n内核版本内核版本2.22.2及其以后内置及其以后内置IPv6IPv6支持,最新稳定版支持,最新稳定版本本2.6.142.6.14n n缺乏维护,有些部分不符合现有的缺乏维护,有些部分不符合现有的IPv6IPv6规范规范n nUSAGI IPv6USAGI IPv6实现实现n n20002000年年1010月启动月启动n n目标是发布针对目标是发布针对LinuxLinux系统的具有产品级质量的系统的具有产品级质量的IPv6IPv6和和IPsecIPsec(包括(包括IPv4IPv4和和IPv6IPv6)协议栈,还包括
10、)协议栈,还包括glibcglibc库中的库中的IPv6 APIIPv6 API和和IPv6IPv6应用应用n n许多代码已经移植到许多代码已经移植到mainline Linuxmainline Linux内核树中,特别是内核树中,特别是2.62.6版本版本BSD系列操作系统系列操作系统n nKAME:http:/n n19981998年由年由WIDE ProjectWIDE Project启动启动n n为为BSDBSD系列操作系统提供支持系列操作系统提供支持IPv6IPv6和和IPsecIPsec(包(包括括IPv4IPv4和和IPv6IPv6)协议栈)协议栈n nFreeBSD 4.0Fr
11、eeBSD 4.0及以上版本及以上版本n nOpenBSDOpenBSD 2.7 2.7及以上版本及以上版本n nNetBSDNetBSD 1.5 1.5及以上版本及以上版本n nBSD/OS 4.2BSD/OS 4.2及以上版本及以上版本n n20052005年年1111月,月,KAME ProjectKAME Project结束结束n n在在20062006年年3 3月底完成月底完成IPv6IPv6参考实现参考实现开始转向开始转向IPv6技术相关的高级技术相关的高级功能和应用的研究和开发功能和应用的研究和开发其它操作系统其它操作系统n n嵌入式操作系统嵌入式操作系统n nVxworksVx
12、works、WinCEWinCE、MontaVistaMontaVista Linux Linux 等嵌入式等嵌入式LinuxLinux操作操作系统系统n nInterpeakInterpeak IPNET IPv4/IPv6 IPNET IPv4/IPv6协议栈协议栈n nn n路由器厂商路由器厂商n nCISCO IOS 12.2(2)TCISCO IOS 12.2(2)T及其以后的版本支持及其以后的版本支持IPv6IPv6n nHitachiHitachi、Nortel NetworksNortel Networks、Juniper NetworksJuniper Networks、6W
13、IND6WINDn n内容内容n nIPv6应用现状n n支持IPv6的操作系统FF安装IPv6n n使用IPv6n n深入Linux IPv6Windows操作系统(操作系统(1)n nWindows XPn n提供对提供对IPv6IPv6的支持(开发预览版,的支持(开发预览版,SP1SP1以上是正以上是正式版)式版)n n命令行窗口中运行命令行窗口中运行n nipv6 install ipv6 install/安装安装IPv6IPv6协议栈协议栈n nipv6 uninstall;ipv6 uninstall;重启机器重启机器/卸载卸载IPv6IPv6协议栈协议栈Windows操作系统(操
14、作系统(2)n nWindows 2000Windows 2000n n下载下载IPv6IPv6协议软件包协议软件包tpipv6-001205.exetpipv6-001205.exehttp:/ n运行运行tpipv6-001205.exetpipv6-001205.exe,将文件解压指定目录(例如,将文件解压指定目录(例如C:IPv6KitC:IPv6Kit)n n右键我的电脑,选择右键我的电脑,选择“属性属性”,选中,选中“常规常规”页,确定页,确定windows 2000windows 2000的的SPSP版本版本 n n对于对于SP1SP1,直接运行,直接运行setup.exeset
15、up.exe即可即可 n n对于对于SP2SP2,SP3SP3,SP4SP4,首先执行,首先执行C:IPv6Kitsetup.exe-xC:IPv6Kitsetup.exe-x,将文件解压到,将文件解压到目录目录C:IPv6KitIPv6C:IPv6KitIPv6,然后修改,然后修改C:IPv6KitIPv6C:IPv6KitIPv6中的文件中的文件hotfix.inihotfix.ini,在在VERSIONVERSION段中,把段中,把NTServicePackVersionNTServicePackVersion=256=256改成改成512(SP2)512(SP2)、768(SP3)76
16、8(SP3)、1024(SP4)1024(SP4),保存。最后运行,保存。最后运行C:IPv6KitIPv6C:IPv6KitIPv6中的中的hotfix.exehotfix.exe n n重启重启 ,右键,右键“网上邻居网上邻居”,选择,选择“本地连接本地连接”,安装,安装IPv6IPv6协议栈协议栈Linux操作系统操作系统n n2.42.4内核内核n n编译内核时的选项编译内核时的选项(.(.configconfig)n nCONFIG_EXPERIMENTAL=yCONFIG_EXPERIMENTAL=yn nIPv6IPv6在还只是内核中的一个试验功能在还只是内核中的一个试验功能n
17、nCONFIG_MODULES=yCONFIG_MODULES=yn n内核支持模块,使得内核支持模块,使得IPv6IPv6可以编译成模块的形式可以编译成模块的形式n nCONFIG_NET=yCONFIG_NET=yn n选择网络支持选择网络支持n nCONFIG_INET=yCONFIG_INET=yn n支持支持TCP/IPTCP/IP协议协议n nCONFIG_IPv6=CONFIG_IPv6=y/my/mn ny y:编译到内核里:编译到内核里n nmm:以模块的形式编译:以模块的形式编译n nCONFIG_PROCCONFIG_PROCn n虚拟文件系统可以显示虚拟文件系统可以显示
18、IPv6IPv6等系统状态信息等系统状态信息n n/proc/net/proc/net,/proc/sys/net/proc/sys/net n n2.62.6内核内核n n编译选项一样编译选项一样n n可能需要升级模块加载可能需要升级模块加载/卸载工具卸载工具n nmodule-init-tools,module-init-tools,modutilsmodutils等等Linux IPv6路由器配置路由器配置n n打开数据包转发功能n necho 1 /proc/sys/net/ipv6/conf/all/forwardingecho 1 /proc/sys/net/ipv6/conf/a
19、ll/forwardingn n下载并安装路由器公告守护程序radvdn nhttp:/v6web.litech.org/radvdhttp:/v6web.litech.org/radvdn n配置路由器公告,缺省为radvd.confn n运行radvd内容内容n nIPv6应用现状n n支持IPv6的操作系统n n安装IPv6FF使用IPv6n n深入Linux IPv6配置工具配置工具n nWindowsWindows操作系统操作系统n nipv6ipv6:显示:显示IPv6IPv6配置信息,并且可以用来对接口、地址配置信息,并且可以用来对接口、地址和路由表进行配置和路由表进行配置 n
20、nnetshnetsh:网络配置命令行脚本工具。配置:网络配置命令行脚本工具。配置IPv6IPv6需更改到需更改到 netshnetsh interface ipv6 interface ipv6 上下文上下文n nLinuxLinux操作系统操作系统n nifconfigifconfig:显示和配置:显示和配置IPv6IPv6接口信息接口信息n nrouteroute:显示和配置:显示和配置IPv6IPv6路由信息路由信息n nip ip:更加强大的:更加强大的IP/IPv6IP/IPv6配置工具,能够配置和显示配置工具,能够配置和显示IPv6IPv6地址、路由、邻机缓存等信息。如果只关注地
21、址、路由、邻机缓存等信息。如果只关注IPv6IPv6信息,信息,使用使用 ip ip-f inet6 -f inet6 或者或者 ip ip-6-6网络诊断网络诊断n nping/ping6n n使用使用ICMP Echo RequestICMP Echo Request和和ICMP Echo ReplyICMP Echo Reply报文报文n n对网络连通状态进行诊断,包括对网络连通状态进行诊断,包括RTTRTT延时、丢延时、丢包率包率n nping6:1ping6:1;ping gatewayping gateway最简单也是最有效的网络诊断工具网络分析网络分析n n数据包捕获和分析实现数
22、据包捕获和分析实现n nlibpcaplibpcap:为各种:为各种(类类)Unix)Unix和和LinuxLinux操作系统提供了一个操作系统提供了一个系统无关的数据包捕获接口函数库系统无关的数据包捕获接口函数库n nwinpcapwinpcap:为:为win32win32平台提供了一个数据包捕获和网络分平台提供了一个数据包捕获和网络分析的体系结构,包括一个底层的动态链接库析的体系结构,包括一个底层的动态链接库(packet.dllpacket.dll)和一个高层的系统无关的库和一个高层的系统无关的库(wpcap.dllwpcap.dll)n n工具工具n ntcpdumptcpdump:N
23、etBSDNetBSD,LinuxLinux,FreeBSDFreeBSDn n使用使用-n-n选项选项n nEtherealEthereal:windowswindows,linuxlinux,SolarisSolaris路径跟踪路径跟踪(1)n ntrace routen n实现源到目的地的路由跟踪实现源到目的地的路由跟踪n n超出中继点限制来探测中间路由器超出中继点限制来探测中间路由器n nICMPICMP或者或者UDPUDPECHO RequestHop Limit=1Time ExceedECHO RequestHop Limit=1ECHO RequestHop Limit=2EC
24、HO RequestHop Limit=1ECHO RequestHop Limit=2Time ExceedTime ExceedECHO ReplyECHO ReplyECHO ReplyECHO RequestHop Limit=3路径跟踪路径跟踪(2)n n具体实现具体实现n nWindowsWindows操作系统操作系统n n命令行下运行命令行下运行tracerttracertn nICMPv6 ECHO RequestICMPv6 ECHO Request,中间路由器回送,中间路由器回送ICMPv6 Time exceedICMPv6 Time exceed,目的端回送,目的端回送
25、 ICMPv6 ECHO ReplyICMPv6 ECHO Replyn n对于每个对于每个Hop LimitHop Limit值,源端发送三个值,源端发送三个ICMPv6 ECHO RequestICMPv6 ECHO Request报文报文n nHop LimitHop Limit设置最大为设置最大为3030,IPIP载荷载荷7272字节字节n nLinuxLinux操作系统操作系统n nTraceroute6Traceroute6n n缺省使用缺省使用UDPUDP,源端口使用,源端口使用3283432834,目的端口,目的端口3343433434,中间路由器回送,中间路由器回送ICMPv
26、6 ICMPv6 Time exceedTime exceed,目的端回送,目的端回送 ICMPv6 ICMPv6 UDP port unreachable UDP port unreachable n n对于每个对于每个Hop LimitHop Limit值,源端发送三个值,源端发送三个UDPUDP报文报文n nHop LimitHop Limit设置最大为设置最大为3030,IPIP载荷载荷2424字节字节n n一些问题一些问题n n中间路由器不回送或者过滤中间路由器不回送或者过滤ICMPv6ICMPv6错误报文错误报文n n中间路由器限制中间路由器限制ICMPv6ICMPv6错误报文的发
27、送速率错误报文的发送速率内容内容n nIPv6应用现状n n支持IPv6的操作系统n n安装IPv6n n使用IPv6FF深入Linux IPv6以下讨论主要基于以下讨论主要基于Linux 2.4内核源码内核源码IPv6IPv6相关代码主要位于内核的相关代码主要位于内核的相关代码主要位于内核的相关代码主要位于内核的/net/ipv6/net/ipv6目录下目录下目录下目录下Linux网络协议栈实现层次网络协议栈实现层次n nBSD socketBSD socket层:这一部分处理层:这一部分处理BSD BSD socketsocket相关操作,每个相关操作,每个socketsocket在内核以
28、在内核以structstruct socket socket结构体现结构体现n nINET socketINET socket层:层:BSD socketBSD socket是个可以是个可以用于各种网络协议的接口,而当用于用于各种网络协议的接口,而当用于tcp/iptcp/ip,即建立了,即建立了AF_INET/AF_INET6AF_INET/AF_INET6形式的形式的socketsocket时,还需要保留些额外的时,还需要保留些额外的参数,于是就有了参数,于是就有了structstruct sock sock结构结构n nTCP/UDPTCP/UDP层:处理传输层的操作层:处理传输层的操作
29、n nIPv4/IPv6IPv4/IPv6层:处理网络层的操作,网层:处理网络层的操作,网络层用络层用structstruct packet_typepacket_type结构表示结构表示n n数据链路层(设备驱动程序):每个数据链路层(设备驱动程序):每个网络设备以网络设备以structstruct net_devicenet_device表示表示IPv6数据包外出处理(数据包外出处理(1)n n在数据发送前,建立在数据发送前,建立在数据发送前,建立在数据发送前,建立socketsocketn n用户程序用户程序用户程序用户程序.intint sockfdsockfd;sockfdsockf
30、d=socketsocket(AF_INET6,SOCK_DGRAM,0);(AF_INET6,SOCK_DGRAM,0);.n nBSD socketBSD socket层层层层n n通过通过通过通过0 x800 x80中断进入系统内核,调用中断进入系统内核,调用中断进入系统内核,调用中断进入系统内核,调用sock_createsock_create等函数,生成等函数,生成等函数,生成等函数,生成structstruct socket socket结构并且初始化结构并且初始化结构并且初始化结构并且初始化n nINET socketINET socket层层层层n n调用调用调用调用inet6
31、_createinet6_create等函数,生成等函数,生成等函数,生成等函数,生成structstruct sock sock结构并且初始化结构并且初始化结构并且初始化结构并且初始化IPv6数据包外出处理(数据包外出处理(2)n n发送发送发送发送IPv6IPv6数据数据数据数据n n用户程序用户程序用户程序用户程序.writewrite(sockfd,Hello,strlen(Hello(sockfd,Hello,strlen(Hello););.n nBSD SocketBSD Socket层层层层n n通过通过通过通过0 x800 x80中断进入内核,调用中断进入内核,调用中断进入内
32、核,调用中断进入内核,调用sock_sendmsgsock_sendmsgn nINET SocketINET Socket层层层层n n调用调用调用调用inet_sendmsginet_sendmsgn nTCP/UDPTCP/UDP层层层层n n对于对于对于对于TCPTCP调用调用调用调用tcp_sendmsgtcp_sendmsg-tcp_pushtcp_push-tcp_write_xmittcp_write_xmit-tcp_transmit_skbtcp_transmit_skb-tcpv6_xmittcpv6_xmitn n对于对于对于对于UDPUDP调用调用调用调用udpv6_
33、sendmsgudpv6_sendmsgn nIPIP层层层层n n对于对于对于对于TCPTCP调用调用调用调用ip6_xmitip6_xmit n n对于对于对于对于UDP/ICMPUDP/ICMP调用调用调用调用ip6_build_xmitip6_build_xmit n n数据链路层数据链路层数据链路层数据链路层dev-dev-hard_start_xmithard_start_xmit(skb(skb,dev);,dev);然后调用然后调用然后调用然后调用实际设备驱动程序的数据发送函数实际设备驱动程序的数据发送函数IPv6数据包进入处理数据包进入处理n n数据链路层数据链路层数据链路层
34、数据链路层n n当接收到当接收到当接收到当接收到IPv6IPv6数据包时,设备产生一个硬件中断,然后将数据包数据包时,设备产生一个硬件中断,然后将数据包数据包时,设备产生一个硬件中断,然后将数据包数据包时,设备产生一个硬件中断,然后将数据包放到队列中等待。然后通过放到队列中等待。然后通过放到队列中等待。然后通过放到队列中等待。然后通过软中断机制软中断机制软中断机制软中断机制调用调用调用调用net_tx_actionnet_tx_action函数函数函数函数n n在在在在IPIP层层层层n n调用调用调用调用ipv6_rcvipv6_rcv-ip6_rcv_finiship6_rcv_finis
35、h-ip6_inputip6_input-ip6_input_finiship6_input_finishn n在在在在TCP/UDPTCP/UDP层层层层n n对于对于对于对于TCPTCP调用调用调用调用tcpv6_rcvtcpv6_rcvn n对于对于对于对于UDPUDP调用调用调用调用udpv6_rcvudpv6_rcvn n对于对于对于对于ICMPICMP调用调用调用调用icmpv6_rcvicmpv6_rcvn n在在在在SocketSocket层找到相应的层找到相应的层找到相应的层找到相应的socksock,然后将数据放到队列中,通,然后将数据放到队列中,通,然后将数据放到队列中,
36、通,然后将数据放到队列中,通知上层数据到达知上层数据到达知上层数据到达知上层数据到达n n对于对于对于对于TCPTCP调用调用调用调用_tcp_v6_lookup_tcp_v6_lookupn n对于对于对于对于UDPUDP调用调用调用调用udp_v6_lookupudp_v6_lookup我们讨论的是数据包的目的端是本我们讨论的是数据包的目的端是本机的情况,如果是转发,调用机的情况,如果是转发,调用ip6_forward-ip6_forward_finish软中断通常是硬中断服软中断通常是硬中断服务程序对内核的中断务程序对内核的中断 2.6内核网络协议栈内核网络协议栈n n大量加入USAGI
37、代码替换原来陈旧的代码n n组播实现得到增强n n增加了IPsec实现,支持IPv4/IPv6,该实现基于XFRM网络体系结构IPv6地址自动配置地址自动配置n n无状态地址自动配置n n不需要对主机进行手动配置不需要对主机进行手动配置n n只需要很少的路由器配置只需要很少的路由器配置n n不需要额外的服务器不需要额外的服务器n n不易管理不易管理n n有状态地址自动配置n n从服务器获取接口地址和从服务器获取接口地址和/或者配置信息与参数或者配置信息与参数n nDHCPv6DHCPv6n n易于管理易于管理无状态地址自动配置无状态地址自动配置n nIPv6接口标识n n基于基于EUI-64E
38、UI-64地址(地址(RFC 2373RFC 2373)n n基于随机接口标识(基于随机接口标识(RFC3041RFC3041)n n地址重复检测无状态地址自动配置无状态地址自动配置FFIPv6接口标识FF基于基于EUI-64EUI-64地址(地址(RFC 2373RFC 2373)n n基于随机接口标识(基于随机接口标识(RFC3041RFC3041)n n地址重复检测IEEE 802地址地址n nIEEE 802地址(MAC地址)n nU/L U/L:全局:全局(0)(0)还是本地管理还是本地管理(1)(1)n nI/GI/G:单播:单播(0)(0)还是组播还是组播(1)(1)n n对于一
39、般的对于一般的802.x802.x网络接口,网络接口,U/LU/L和和I/GI/G比特都设比特都设置为置为0 0IEEE EUI-64地址地址n n一种新的网络接口地址标准n n为网卡制造商来提供了更多的地址空间为网卡制造商来提供了更多的地址空间n nU/L U/L:全局:全局(0)(0)还是本地管理还是本地管理(1)(1)n nI/GI/G:单播:单播(0)(0)还是组播还是组播(1)(1)802地址到地址到EUI-64地址的映射地址的映射n n在802地址的company ID和extension ID之间插入16比特(0 xFFFE)EUI-64地址到地址到IPv6接口标识的映射接口标识
40、的映射n nEUI-64地址的U/L比特取反,I/G比特不变n nIPv6地址由IPv6前缀IPv6接口标识构成IPv6前缀IPv6接口标识64 bits64 bits802地址到地址到IPv6接口标识的映射接口标识的映射无状态地址自动配置无状态地址自动配置FFIPv6接口标识n n基于基于EUI-64EUI-64地址地址FF基于随机接口标识基于随机接口标识n n地址重复检测随机接口标识随机接口标识(1)n n从安全角度考虑,提供一定程度的匿名性从安全角度考虑,提供一定程度的匿名性n n不包括网络接口标识信息不包括网络接口标识信息n n随机接口标识初始化过程随机接口标识初始化过程n n若不能存
41、储历史信息若不能存储历史信息n n每次初始化每次初始化IPv6IPv6协议栈的时候生成新随机接口标识协议栈的时候生成新随机接口标识n n若支持存储历史信息若支持存储历史信息1.1.获取历史值,并且将其附到基于获取历史值,并且将其附到基于EUI-64EUI-64地址的接口标识上地址的接口标识上2.2.对于对于1 1中生成的量计算中生成的量计算MD5MD5摘要摘要3.3.取取2 2中最左边的中最左边的6464比特并且将第比特并且将第6 6比特(最左边的比特号为比特(最左边的比特号为0 0)设置为)设置为0 0,生成一个全局的随机接口标识,生成一个全局的随机接口标识4.4.取取2 2中最右边的中最右
42、边的6464比特并且将其保存,作为下一次计算的历比特并且将其保存,作为下一次计算的历史值史值随机接口标识随机接口标识(2)n n基于随机接口标识的IPv6地址也被称为临时地址n n由由IPv6IPv6地址前缀随机接口标识构成地址前缀随机接口标识构成n n具有更小的具有更小的validvalid和和preferred lifetimepreferred lifetimen n当当valid lifetimevalid lifetime过期后重新生成接口标识和临时过期后重新生成接口标识和临时地址地址n nWindows CE.NET 4.1及其以上版本生成基于随机接口标识的临时地址无状态地址自动配
43、置无状态地址自动配置n nIPv6接口标识n n基于基于EUI-64EUI-64地址的地址的IPv6IPv6地址地址n n基于随机接口标识的基于随机接口标识的IPv6IPv6地址地址FF地址重复检测(DAD)地址重复检测过程地址重复检测过程路由器公告随机延时01000msDAD地址状态设置为不可用(IFA_F_TENTATIVE)DAD成功开始使用DAD地址DAD地址目的地址DAD地址 0邻机公告0 DAD地址邻机公告0 DAD地址邻机公告发送邻机请求的个数n=1发送间隔Tret=1000ms地址冲突处理地址冲突处理n n当主机收到目标地址为其正在做当主机收到目标地址为其正在做DADDAD检测
44、地址的邻机请求检测地址的邻机请求时,如果请求的源地址类型为时,如果请求的源地址类型为IPV6_ADDR_ANY(IPV6_ADDR_ANY(全全0 0地址地址),则主机从接口上删除这个地址,则主机从接口上删除这个地址,DADDAD检测失败,否则主检测失败,否则主机不处理此请求机不处理此请求n n当主机收到目标地址为其正在做当主机收到目标地址为其正在做DADDAD检测地址的邻机公告检测地址的邻机公告时,则主机从接口上删除这个地址(时,则主机从接口上删除这个地址(DADDAD检测失败)检测失败)n n如果主机为某个如果主机为某个IPv6IPv6地址完成地址完成DADDAD检测后,收到来自其它检测后,收到来自其它主机发送的目的地址为此主机发送的目的地址为此IPv6IPv6地址的用作地址的用作DADDAD检测的邻机检测的邻机请求(此时该请求的源地址为请求(此时该请求的源地址为IPV6_ADDR_ANYIPV6_ADDR_ANY),则主),则主机应该向全节点地址(机应该向全节点地址(ff02:1ff02:1)发送邻机公告)发送邻机公告