1、IPV6核心技术IPV6核心技术1.ipv6地址结构:IPv6的姐处皓悔如下图一全局蹈由前缀 子网ID 接口 ID(n 位) (e 位) (128 - n.E 笆)图4 IPv6城址结也例妁叶C4291中定义了n 48, m 16也就是子网和候口【0与各占64位因此前缀最小长度为48,子网ID最大为642.ipv6 ipv4地址对比IPv6IPV4全球电播地址2000:/34公网初网施Ji犍珞本地地址FE80R1Q用于邻居本现H1当于1g2“41动振取失效Jg分配的地址唯 本地地址FC00;/Zipv6E持和持NATIj米湎W女金性和租验性也求私网地址站点本地地址FEC9V 用束部黑机网,现在
2、已经废能用唯一本地地址来代替机网地址必 1 ”地址 0:0:0:00:0X1:1 或 若二。127.0.0,1过底M址:内嵌IPv4地址的ipvG地 址,64:ff9b 二 lO.UMdl。3.IPV6接口 ID生成算法IP 丫 6接口 ID生成舁法从前面的介吟中可以看出.IPv6里皤地位是臼事统 &也)接口町立)组成.接口ID的生 成算法主差有U下几种二L 岫RFC42W定义,陵口ID可UMEUI-64mmL详细登法可以查看陞li同学的PPT第14页.2.为了可以其餐菜种程质的叠名信,耨口 ID可映使用T0机分配的.wild。的&操作系统默认就 是圆用这种生成蚂法.Liriu寅下也是聚认开启
3、这个或去.3.嚏用状而化的自幼配置指未分配例如DHCPv6分配.4手工配舌4.IPV6地址配置IPv6城址配置前面对IPvGB曲址.值、市口等等做了介绍,店下采就是要介绍一ttt口如何配置F电博&L IPvI4ilP”4典市善的方面.就是可以官动配置地址,甚至这个配置过悭不需要DHC%6 (S IPv4中是DHCPV4)这棒的地址配期议,典型篦例子就是.只要开信:HPvB协议桎的操作系 械雷个建照第息*E了跑8本地地明这个是粕IPM最重要的区别之一iPv弼姓址配置有下几种:K只要开后了产“6t办议建,接口巨动公况遥蹈工旌地址。工、无状强自动配tlt址RFC2462,后面会有笑脸演示.兀有状态自
4、动田置地址.例如DHC%6,4手动用宣。5.Linux内核双栈架构曲用后Linux 内核中,IPv6Device inierfac协议栈与IPv4协议栈并行关系。IPv6和IPv4完全是两套不一样的代 码实现。IPv6完整的协议栈逻辑模块包括:1、网络层IPv6,核心逻辑:IPv6路由子系统2、传输层 TCP/UDP 实现:TCPv6、UDPv63、控制报文协议ICMPv6 ,这里值得一提的是 ICMPv6在IPv6协议中的地位十分重要。ICMPv6不仅提供了与ICMPv4相同的服务诊断功能, 例如报告数据包的错误和提供简单的 echo服务,ICMPv6是IPv6中邻居发现协议的重要组成部分,
5、用于管理链路上的点到点的 通信。4、邻居子系统的实现:邻居发现协议 NDP (对应于IPv4里面的ARP协议)5、其他高级实现(IPv6 NAT、IPv6隧道、iPv6 IPSec 等)由于我们平时的开发工作在应用层,以上 1-4是将会接触得最多。6.IPV6地址获取:无状态地址获取:I _ _ %1*!* 联丁宣1PL 中 _ _ _ _ _ 犯“工 &方; 力京;Td-J 讷:g )二值认 Um 3y+ Mu li. MCMK4. ! 0.B1- 4:皿无状态自动配置过程:I Pv6主机无状态自动配置过程;1根据接口标识产生髓踣本地地址:.2,发出邻居请求进行重复地址检测,工如地址冲突则停
6、止自动配置,需要手工同置.4.如不;中突,豌路本地地址生效,节点具管本地整路通信能力,工主机会发送R6报文或接收到设皆定期裳送的RA报文).根据RA报文中的前缀信息和接口标识得到IPv6地址.解释二:1、由链路上的主机向链路发起 路由请求”报文,这个报文是以组播协议发送, 寻找链路上最合适的路由器。2、路由器收到请求会返回 路由通告”报文,报文里面带着本链路的地址前缀信息主机将接收到的前缀和自身的接口 ID,组成完整的新地址。3、主机尝试使用新地址发起地址重复检测,检测链路上是否有其他主机也是这个地址,如 果有,就停止使用该地址;如果没有,就启用这个新地址。可以看到无状态自动配置过程十分简易(
7、对比 DHCPv4和DHCPv6来说),实际上,无状态自动配置可以单独组网使用, 也可以配合有状态自动配置一般会配合使用, 加强网络节点管理。涉及自动配置和地址检测等更多细节,可以查阅 RFC1971、RFC4861 。IpV6中的M位和O位:M位,0位是RA报文里携带的,值为1代表有状态,值为0代表无状态RA报文中的有状态自动配置地址的标志位(M标志位)全称:managed- address-flag。RA报文中的有状态自动配置其他信息的标志位( 。标志位)。全称:other-flagM=0,O=0,表示直接从RA拿地址;发布RA消息的M和O标志位,DHCPv6客户端通过RA消息学习到IPv
8、6网 关的路由比如DHCPV6中继就会作为网关设备,向客户端发送RA报文,RA报文中携带M 位和 O 位来指定该网络中的客户端使用 DHCPV6 的方式获取地址和其他网络配置参数IPV6 邻居发现协议 (ND):IPv6 邻居发现协议主要提供了五个功能:地址解析、邻居可达性检测、重复地址检测、路由器发现 /前缀发现及地址自动配置、重定向功能。交换机都会有一个 ND 表项 ,类似于 ARP 表项 ,是通过发送 NS 报文来维护这个表项的邻居发现协议包含 ,NS,NA,RS,RA, 重定向1)RS type=133 路由请求,请求获得设备的网关和其余的参数 能够说明请求网关就行2)RS type=
9、134 路由应答,用于配置设备的网关和地址以及其它参数3)Type=135(NS) TYPe=NA(136) 用于邻居请求和邻居应答,主要是做链路层地址解析,相当是 ARP 请求和应答4)Type=137 重定向报文 发现有更优先的转发路径做报文的重定向RA 报文 :RA报文会携带前缀,DNS,MTU等信息,一个RA报文允许携带10个前缀信息IPv6 地址的分配方法有以下几种:手动配置。 手动配置 IPv6 地址 /前缀及其他网络配置参数( DNS、 NIS、 SNTP服务器地址等参数)。无状态自动地址分配 。由接口 ID 生成链路本地地址,再根据路由通告报文 RA( Router Adver
10、tisement )包含的前缀信息自动配置本机地址。有状态自动地址分配, 即 DHCPv6 方式。 DHCPv6 又分为如下两种 :DHCPv6 有状态自动分配 。 DHCPv6 服务器自动分配 IPv6 地址 /PD 前缀及其他网络配置参数( DNS、 NIS、 SNTP 服务器地址等参数)。DHCPv6 无状态自动分配。 主机 IPv6 地址仍然通过路由通告方式自动生成,DHCPv6 服务器只分配除 IPv6 地址以外的配置参数,包括 DNS、 NIS、 SNTP服务器等参数。自动配置之无状态自动配置 (SLAAC)IPv6 无状态地址配置方式(参看协议 RFC2462 )是目前广泛采用的
11、 IPv6 地址自动配置方式。配置了该协议的主机只需相邻设备开启 IPv6 路由通告功能,即可以根据通告报文包含的前缀信息自动配置本机地址。无状态地址配置方案中设备并不记录所连接的 IPv6 主机的具体地址信息,可管理性差。而且当前无状态地址配置方式不能使 IPv6 主机获取 DNS 服务器的IPv6 地址等配置信息,在可用性上有一定缺陷。对于互联网服务提供商来说,也没有相关的规范指明如何向设备自动分配 IPv6 前缀,所以在部署 IPv6 网络时,只能采用手动配置的方法为设备配置 IPv6 地址。自动配置之 DHCPV6 自动配置 (有状态自动配置 )与其他 IPv6 地址分配方式(手工配置
12、、通过路由器通告消息中的网络前缀无状态自动配置等)相比, DHCPv6 具有以下优点:更好地控制 IPv6 地址的分配。 DHCPv6 方式不仅可以记录为 IPv6 主机分配的 地址,还可以为特定的IPv6主机分配特定的地址,以便于网络管理。DHCPv6支持为网络设备分配IPv6前缀,便于全网络的自动配置和网络层次 性管理。除了为IPv6主机分配IPv6地址/前缀外,还可以分配DNS服务器IPv6地址等 网络配置参数。DHCPv6服务器为客户端分配地址/前缀的过程分为两类:DHCPv6四步交互分配过程(应用于网络中多个服务器)DHCPv6两步交互快速分配过程(应用于网络中单个服务器)管理员可以
13、根据实际的网络环境来配置使用哪种方式DHCPv6四步交互地址分配过程如下:DHCPv6客户端发送Solicit报文,请求DHCPv6服务器为其分配IPv6地址和 网络配置参数。如果Solicit报文中没有携带 Rapid Commit选项,或Solicit报文中携带RapidCommit选项,但服务器不支持快速分配过程,则 DHCPv6服务器回复 Advertise报文,通知客户端可以为其分配的地址和网络配置参数。如果DHCPv6客户端接收到多个服务器回复的 Advertise报文,则根据 Advertise报文中的服务器优先级等参数,选择优先级最高的一台服务器,并向 所有的服务器发送Requ
14、est组播报文,该报文中携带已选择的 DHCPv6服务 器的DUID。DHCPv6服务器回复Reply报文,确认将地址和网络配置参数分配给客户端使 用。DHCPv6两步交互地址分配过程如下:DHCPv6客户端在发送的 Solicit报文中携带Rapid Commit选项,标识客户端希望服务器 能够快速为其分配地址和网络配置参数。DHCPv6服务器接收到Solicit报文后,将进行如下处理:如果DHCPv6服务器支持快速分配地址, 则直接返回Reply报文,为客户端分配IPv6地址和其他网络配置参数,Replay报文中也携带Rapid Commit选项。如果DHCPv6服务器不支持快速分配过程,
15、则采用四步交互方式为客户端分配 IPv6地址/前缀和其他网络配置参数。DHCPV& ClientDHCPv6 Server(1)Solicit (conlains a Rapid Camm it option)(2)Reply自动配置之DHCPV6自动配置(无状态自动配置)IPv6节点可以通过DHCPv6无状态方式获取配置参数(包括 DNS、SIP、SNTP等服务器配置信息,不包括IPv6地址)DHCPv6无状态工作过程如下:DHCPv6客户端以组播方式向 DHCPv6服务器发送Information-Request报 文,该报文中携带Option Request选项,指定DHCPv6客户端需
16、要从 DHCPv6服务器获取的配置参数。DHCPv6服务器收到Information-Request报文后,为DHCPv6客户端分配网 络配置参数,并单播发送 Reply报文,将网络配置参数返回给 DHCPv6客户 端。DHCPv6客户端根据收到Reply报文提供的参数完成DHCPv6客户端无状 态配置。DHGPv6 ClientDHCPvG ServeraInform a tj on-re quest:includes an Option Request opbonReply: includes the requested ootionsipv6没有广播报文,所以使用组播,使用到的两个组播地
17、址:FF02:1:2 (All DHCP Relay Agents and Servers ):所有 DHCPv6 服务器和 中继代理的组播地址,这个地址是链路范围的,用于客户端和相邻的服务器及 中继代理之间通信。所有DHCPv6服务器和中继代理都是该组的成员。FF05:1:3 (All DHCP Servers ):所有DHCPv6服务器组播地址,这个地址 是站点范围的,用于中继代理和服务器之间的通信,站点内的所有 DHCPv6服 务器都是此组的成员。DHCP唯一标识符(DUID )DHCP设备唯一标识符 DUID (DHCPv6 Unique Identifier ),每个服务器或客户端有
18、且只有一个唯一标识符,服务器使用DUID来识别不同的客户端, 客户端则使用DUID来识别服务 器。客户端和服务器 DUID的内容分别通过 DHCPv6报文中的 Client Identifier和Server Identifier选项来携带。两种选项的格式一样,通过 option-code字段的取值来区分是 Client Identifier 还是 Server Identifier 选项。身份联盟(IA)身份联盟IA (Identity Association )是使得服务器和客户端能够识别、分组和管理一系列相关IPv6地址的结构。每个IA包括一个IAID和相关联的配置信息。客户端必须为它的
19、每一个要通过服务器获取 IPv6地址的接口关联至少一个 IA。客户端用给接口关联的IA来从服务器获取配置信息。每个 IA必须明确关联到一个接口。IA的身份由IAID唯一确定,同一个客户端的 IAID不能出现重复。IAID不应因为设备的重启等因素发生丢失或改变。IA中的配置信息由一个或多个 IPv6地址以及T1和T2生存期组成。IA中的每个地址都有首选生存期和有效生存期。一个接口至少关联一个 IA, 一个IA可以包含一个或多个地址信息。6. DHCPv6报文类型极文 神DHCPV4 盛文说阴1SOLICITDHCPDHCPub喜a晌帙用Solim彼文平魄靠DHCPV5卷鼾箫的DISCOVER2A
20、DVERTtSEDHCPOFFER口 HCPv6明要急苞速在dvprtise幅e*时SctMi熊七遭打 颐L直育国己掂豚睫聊)3REQUESTDHCPREQUESTDHCPg 户揩*Requc式侬 案向DHCWG 位部安 求他的地址和其它配裳喈4CONFIRM-口 HCPi/6春声箫向值塞亚的DH匚出6骐碎戈之 板虫吃号自己目系技湿的iPvStffi出是若甘恚马三所遑案格暗.5REMEWDHCPREQUESTDHCPirtWP踽向用H这般他批町才追万国的DHCPvGM 金1发建Mmjg文泵延性地址的生碎的更新注唔6REBINDDHCPREQUEST蛙果Ren报文*有蹲到危笞,DHCPv$常户斫
21、同住客 司达的PH CPvfi超身HI交送院b油日甩宜车延植地址的生 存幅弁更新釐近信起T4.7REPLYDHCPACK/NAKDHCW6假膏器在以下场合叁送Re的根文:L 服昌惠烹运旃吊7帆松配国信息的艮/口如;由副来图应从苞声端也的So加必 Request Renew. Ketind2. DHCPwfi做国普立送樵裙起置皂MIR甘。怵自屋架园 应密迩的1 flfo rmation - Rq扉品文.,用来 iaiSDHCP而庭户带友嚎的工onflrmRelease.RELEASEDHCPRELEASEKP西其户除向为惠汨也址S2HCPV6快若SS,送 RMea4初Tr表明宜3不再强用T盛昌仆
22、疗期的地 如gDECLINEDHCP DECLINEDHCPv6客户蟒向DHCPvE幅好器置途赊Hi旭甯交.西 朗。HCPvE麻粥31分配的 TEE名小地址在DH CPv6P 捕芾在唯需上已任穗使用了.10RECOMFIGUREDH3托函号需向DM CPv 6*户涨肾堂Res Migu侔於 立用于提示GKPvM户弗L在0HCPv6派努箫上停在 新的向密说整信自11INFORMATIONREQUESTDHCPINFORMDHCPvb善户旗向DHCPvE处券部崇送Inform翻曲Reque$tfiTfl我明内加Wtia外的同SEBAfl.12RELAHFORW.牛跑代理通3RE聊-Forw曰B相交
23、来向DHCPu6亮圣事烤 发口 H匚出住户缁清求报立.13RE LAV-RE PL-DHCPW廉寺51向H堂代注步道融1”-双口1阅文.K中 丽 了股螃 DHC 的报文,DHCPv6 PD前缀工作机制DHCPv6前缀代理 DHCPv6 PD(Prefix Delegation) 是一种前缀分配机制,通过DHCPv6前缀代理机制,下游网络设备不需要再手工指定用户侧链路的 IPv6地址前缀,它只需要向上游网络设备提出前缀分配申请, 上游网络设备便可以分配合适的地址前缀给下游设备,下游设备把获得的前缀 (一般前缀长度小于 64)进一步自动细分成 64前缀长度的子网网段,把细分的地址前缀再通过路由通告
24、 (RA)至与IPv6主机直连的用户链路上,实现IPv6主机的地址自动配置,完成整个系统层次的地址布局。DHCPv6 PD 前缀工作原理DHCP前缀代表简称 DHCPv6-PD ,是对DHCPv6的扩展。DHCPv6为客户端分配地址、DNS等信息。DHCPv6-PD可以为DHCP客户端分配一个网络号,然后这个 DHCPv6客户端可以把这个网络号再分成若干个 网段分配给它的接口,以及连接在这些接口中的主机或者其他节点。比如,将企业客户的出口路由器配置成 DHCPv6-PD客户端,将ISP的路由器 配置成DHCPv6-PD的服务器。客户的出口路由器将从ISP路由器获得一个网 段地址,然后再进一步划
25、分成几个网段后,分配给内部主机使用。又比如,我们公司的ONU,配置了 IPV6 wan之后就会获取一个前缀,然后再配置 一下lan测地址来源是是wan测代理,这样就可以为onu下接的设备分配ip地 址了,这个时候一般需要在dhcpv6 server上配置两个地址池,一个是给wan测 分配,一个是lan测分配。DHCPv6 PD四步交互地址分配过程如下:DHCPv6 PD客户端发送Solicit报文,请求DHCPv6 PD服务器为其分配IPv6 地址前缀。如果Solicit报文中没有携带 Rapid Commit选项,或Solicit报文中携带RapidCommit选项,但服务器不支持快速分配过
26、程,则 DHCPv6服务器回复Advertise报文,通知客户端可以为其分配的IPv6地址前缀。如果DHCPv6客户端接收到多个服务器回复的 Advertise报文,则根据 Advertise报文中的服务器优先级等参数,选择优先级最高的一台服务器,并向 该服务器发送Request报文,请求服务器确认为其分配地址前缀。DHCPv6 PD服务器回复Reply报文,确认将IPv6地址前缀分配给DHCPv6 PD客户端使用。DHCPv6 PD同样也支持携带Rapid Commit选项的两步交互方式,报文交互方式与DHCPV6交互方式一样DHCPV6 PD工作原理图:配置两个前缀长度的解释:ipv6 l
27、ocal pool dhcpv6-pool 2001:DB8:1200:/40 48 / 定义一个前缀长度为 40的本地前缀代表地址池,并且定义分配给 DHCPv6-PD Client的前缀长度是48DHCPV6中继报文交互过程DHCPv6客户端向所有DHCPv6服务器和DHCPv6中继发送目的地址为 FF02:1:2 (组播地址)的请求报文。根据DHCPv6中继转发报文有如下两种情况:如果DHCPv6中继和DHCPv6客户端位于同一个链路上,即 DHCPv6中继为 DHCPv6客户端的第一跳中继,中继转发直接来自客户端的报文,此时DHCPv6中继实质上也是客户端的IPv6网关设备。DHCPv
28、6中继收到客户端 的报文后,将其封装在Relay-Forward报文的中继消息选项(Relay Message Option )中,并将Relay-Forward报文发送给DHCPv6服务器或下一跳中继。 如果DHCPv6中继和DHCPv6客户端不在同一个链路上,中继收到的报文是 来自其他中继的 Relay-Forward报文。中继构造一个新的 Relay-Forward 报 文,并将Relay-Forward报文发送给DHCPv6服务器或下一跳中继。DHCPv6服务器从Relay-Forward报文中解析出DHCPv6客户端的请求,为DHCPv6客户端选取IPv6地址和其他配置参数,构造应答
29、消息,将应答消息 封装在Relay-Reply报文的中继消息选项中,并将 Relay-Reply报文发送给 DHCPv6 中继。DHCPv6中继从Relay-Reply报文中解析出DHCPv6服务器的应答,转发给DHCPv6客户端。如果DHCPv6客户端接收到多个DHCPv6服务器的应答, 则根据报文中的服务器优先级选择一个 DHCPv6服务器,后续从该DHCPv6 服务器获取IPv6地址和其他网络配置参数。DHCPv6地址租约更新DHCPv6服务器为DHCPv6客户端分配的地址是有租约的,租约由生命期(包 括地址的首选生命期和有效生命期构成)和续租时间点(IA的T1、T2)构 成。地址有效生
30、命期结束后,DHCPv6客户端不能再使用该地址。在有效生命 期到达之前,如果DHCPv6客户端希望继续使用该地址,则需要更新地址租DHCPv6客户端为了延长其与IA关联的地址的有效生命期和首选生命期,在 T1时刻,发送包含IA选项的Renew报文给服务器,其中IA选项中携带需要 续租的IA地址选项。如果DHCPv6客户端一直没有收到T1时刻续租报文的回 应报文,那么在T2时亥ij, DHCPv6客户端通过Rebind报文向DHCPv6服务 器继续续租地址。圉了8 T1时刻地址租约更新过程DHCPvS Client DHCP76 ServerCS (1) Renew ReplyT1时刻地址租约更新过程如下:DHCPv6客户端在T1时刻(推荐值为优先生命期的 0.5倍)发送Renew报文 进行地址租约更新请求。DHCPv6服务器回应Reply报文。如果DHCPv6客户端可以继续使用该地址,则 DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址租约。如果该地址不可以再分配给该 DHCPv6客户端,则DHCPv6服务器回应续约 失败的Reply报文,通知DHCPv6客户端不能获得新的租约。图7-9 T2时刻地址租约更新过程DKCPV6 Clierl DHCPv6 Server(2 RebindT2
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1