IPv6
IPV6特点、IPv6地址表示方法、EUI-64

IPv6特点 1、地址容量大大扩展 ipv4地址是32 ,IPv6 是128位 2、支持分层地址结构,有助于路由聚合 3、无须NAT,直接可以实现端到端的通信 4、支持单播,组播,任意播地址,不支持广播 5、支持无状态地址配置,有状态地址配置 6、简化了报文格式,便于设备对数据包的处理 7、扩展报头和选项部分,让转发更高效(在扩展报头里指明上次协议???待验证) 8、流标签 9、认证与私密性;在IPv6报文增加了认证的报扩展报文 10、在移动网络和实时通信有了很大的改进 IPv6 协议特点 1. 简化的报文头格式:IPv6 基本报文头的长度只有40 字节,为IPv4基本报文头长度20字节。 2. 充足的地址空间:IPv6 的源地址与目的地址长度都是128 比特(16 字节)。 3. 层次化的地址结构 4. 地址自动配置 IPv6 支持有状态地址配置和无状态地址配置: 有状态地址配置是指从服务器(如 DHCP 服务器)获取IPv6 地址及相关信息; 无状态地址配置是指主机根据自己的链路层地址及路由器发布的前缀信息自动配置 IPv6 地址及相关信息。 同时,主机也可根据自己的链路层地址及默认前缀(FE80::/10)形成链路本地地址,实现与本链路上其他主机的通信。 5. 内置安全性:IPv6 将IPSec 作为它的标准扩展头,可以提供端到端的安全特性。 6. 支持QoS 7. 增强的邻居发现机制 8. 灵活的扩展报文头

IPv6 地址表示方式----IPv6地址包括128比特,由冒号分割成8段,每段4个16进制数 1.2001:fecd:ba23:cd1f:dcb1:1010:9234:4088/64#前缀地址长度和ipv4的子网掩码差不多 2.fec0:1:0:0:0:0:0:1234 可以表示为 fec0:1::1234 “::”的使用表示有多组 16 位零。“::”只能在一个地址中出现一次 3.0:0:0:0:0:0:10.1.2.3以及::10.11.3.123 ipv6习惯用十六进制表示,ipv4习惯用十进制表示。 所以这第3种写法是兼容性写法,前96位用十六进制表示,后32位用十进制表示。即24个十六进制数+4组十进制数

IPv6地址 = 前缀 + 接口标识 前缀(64位):相当于v4地址中的网络ID 接口标识(64位):相当于v4地址中的主机ID 目前IPv6地址的分配方法有以下几种: 1.手动配置。手动配置IPv6地址/前缀及其他网络配置参数(DNS、NIS、SNTP服务器地址等参数)。 a.手工配置前缀+手工配置接口标识 b.手工配置前缀+EUI-64自动生成接口标识 2.无状态自动地址分配SLAAC: 由接口ID生成链路本地地址,再根据路由通告报文RA包含的前缀信息自动配置本机地址(EUI-64)。 3.有状态自动地址分配,即DHCPv6方式。DHCPv6又分为如下两种: a.DHCPv6有状态自动分配。DHCPv6服务器自动分配IPv6地址/PD前缀及其他网络配置参数(DNS、NIS、SNTP服务器地址等参数)。 b.DHCPv6无状态自动分配。主机IPv6地址仍然通过路由通告方式(RA报文)自动生成,DHCPv6服务器只分配除IPv6地址以外的配置参数,包括DNS、NIS、SNTP服务器等参数。 IEEE EUI-64规范: 48位mac前24位中第7位为0,表示mac是本地唯一(全局管理地址)(第7位为1,则表示是自定义的),第8位标识mac是单独/组地址 ipv6的64位接口ID就是在mac地址24位后插入fffe,同时改写第7位为1(0表示本地唯一、是自定义的,1表示全球唯一) 生成规则总结:第七位比特位置1,也就是第二个十六进制数+2;同时将fffe插入到第六个十六进制数后面 例如mac:0012-3400-abcd,转换为64位接口id:0212:34ff:fe00:abcd IPV6地址手工配置示例: [Huawei]ipv6 [Huawei-GigabitEthernet0/0/0]ipv6 addr 2001:: 64 eui-64 [Huawei-GigabitEthernet0/0/0]ipv6 addr 2002::/64 eui-64 #同上一种方式 [Huawei-GigabitEthernet0/0/0]ipv6 addr 2003::1/64 #手工配置IPV6地址 [Huawei-GigabitEthernet0/0/0]ipv6 addr 2004::1/64 eui #接口标识ID是无效的,查看配置为ipv6 address 2004::/64 eui-64
IPv6地址分类

IPv6的地址分类:单播地址、组播地址和任播地址。(无广播地址) 单播地址(Unicast Address):标识一个接口,目的地址为单播地址的报文会被送到被标识的接口。在IPv6中,一个接口拥有多个IPv6地址是非常常见的现象。 组播地址(Multicast Address):标识多个接口,目的地址为组播地址的报文会被送到被标识的所有接口。只有加入相应组播组的设备接口才会侦听发往该组播地址的报文。 任播地址(Anycast Address):任播地址标识一组网络接口(通常属于不同的节点)。目标地址是任播地址的数据包将发送给其中路由意义上最近的一个网络接口。任播地址与单播地址使用同一个地址空间 地址前缀的表示方式为:IPv6 地址/前缀长度。 主机的IPV6地址 一个IPV6主机往往会为每个适配器分配多个IPV6地址 每个接口分配一个链路本地地址 每个接口分配一个or多个单播地址(全球唯一or唯一本地地址) 环回接口分配环回地址(::1) 每个接口还会侦听如下的组播地址: 接口本地范围内所有节点的组播地址(FF01::1) 链路本地范围内所有节点的组播地址(FF02::1) 每个单播地址的请求节点组播地址 已加入的组的组播地址 路由器的IPV6地址 除了主机IPV6的地址外,路由器可能还会有任播地址 侦听的组播地址除了主机IPV6会侦听的组播地址外,还有 接口本地范围内所有路由器的组播地址(FF01::2) 链路本地范围内所有路由器的组播地址(FF02::2)

IPv6 单播地址的类型可有多种,包括全球单播地址、链路本地地址和唯一本地地址等。 对于ipv6单播地址,前3位非000,则接口标识必须为64bit;如果为000,则没有这个限制。 在ipv4中,任何流量(上网or各种协议协商)的源IP都是同一个IP地址 在ipv6中,各种协议协商的数据包源IP是链路本地地址;其他流量的源IP则是全球单播地址or唯一本地地址 -----全球单播地址------ 全球单播地址的范围:2000::---3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 全球单播地址定义用于IPv6 Internet。它们是全局唯一的和全局可路由的。类似IPv4公网地址。由前缀、子网ID和接口标识组成。 全局路由前缀:由提供商指定给一个组织机构,一般至少为48bit。目前已经分配的全局路由前缀的前3bit均为001。因此前缀为2000::/3。 子网:组织机构可以用子网ID来构建本地网络(Site),与IPv4中的子网号作用相似。子网ID通常最多分配到第64位。 主机位:用来标识一个设备(Host),与IPv4中的主机ID作用相似。 -----链路本地地址----- 链路本地地址:链路本地地址前缀特定为 FE80::/10 链路本地地址不具有全局意义,是不可路由地址,目的地址是链路本地地址的数据包,永远不可能被转发出始发链路 当一个节点启动IPv6协议栈时,启动时节点的每个接口会自动配置一个链路本地地址(其固定的前缀+EUI-64规则形成的接口标识)。这种机制使得两个链接到同一链路的IPv6节点不需要做任何配置旧可以通信。所有链路本地地址广泛应用于邻居发现,无状态地址配置等应用。 以链路本地地址为源地址or目的地址的IPv6报文不会被路由器转发到其他链路。 每一个IPv6接口都必须具备一个链路本地地址。 一般情况下,链路本地地址是自动生成的: Link-Local地址前缀是固定的Fe80:: 主机位是根据MAC地址使用EUI-64生成 当然你也可以手工配置链路本地地址。。。 [Huawei-GigabitEthernet0/0/0]ipv6 enable #端口使能ipv6后,并未自动生成一个链路本地地址 #若端口配置了全球单播地址or唯一本地地址,则自动生成一个链路本地地址 [Huawei-GigabitEthernet0/0/0]ipv6 addr auto link-local#若端口未配置全球单播地址or唯一本地地址,配置了这条命令,也会自动生成一个链路本地地址 -----唯一本地地址----- 唯一本地地址,概念上类似于IPv4中的私网地址,仅能够在本地网络使用,在IPv6 Internet上不可被路由。 唯一本地地址前缀 FC00::/7。它被分为两块,其中FC00::/8暂未定义,另一块是FD00::/8 站点本地地址:(已被唯一本地地址取代),第一段以 FEC0(1111 1110 1100 0000)开始,以 FEFF(1111 1110 1111 1111)结束。FEC0::/10 -----特殊单播地址----- 特殊单播地址: ::/128 未指定地址,表示某个接口或者节点没有IP地址 ::1/128 环回地址----0:0:0:0:0:0:0:1/128 或者::1/128 IPV4 127.0.0.1-127.255.255.255 与IPv4中的127.0.0.1作用相同 fe80::/10 链路本地地址 2000::/3 全球单播地址 fc00::/7 唯一本地地址

任播地址和单播地址使用相同的地址空间,没办法从语法上进行区分。只能通过配置时,进行声明区分。 配置时必须指明为任播地址,以此区别单播和任播 任播地址仅被用做目标地址,且仅分配给路由器,任播地址是不需要检测地址冲突的 其他设备对任播地址是无感知的,因为只有配置有该任播地址的路由器才知道这是一个任播地址 使用场景:移动用户上网,将接入离用户最近的一个接入点 interface GigabitEthernet0/0/0 ipv6 enable ipv6 address 2012:12:12:12::1234:1111/64 /配置IPv6全局单播地址 ipv6 address 2001::1/64 anycast /配置ipv6任播地址 ipv6 address FE80::AABB:1111 link-local /配置链路本地地址(link Local地址)

组播地址(小重点) IPv6的组播与IPv4相同,用来标识一组接口,一般这些接口属于不同的节点。一个节点可能属于0到多个组播组。发往组播地址的报文被组播地址标识的所有接口接收。 例如:组播地址FF02::1表示链路本地范围的所有节点,组播地址FF02::2表示链路本地范围的所有路由器 一个IPv6组播地址由前缀,标志(Flag)字段、范围(Scope)字段以及组播组ID(Global ID)4个部分组成: 前缀:8比特位,固定为FF,即ipv6的前2个16进制数。以 FF(1111 1111)开头;组播地址前缀:FF00::/8 标志字段(Flag),4比特位,即ipv6的第3个16进制数;虽然占用了4比特位,但目前只定义了2种;当该位值为0时,表示当前的组播地址是由IANA所分配的一个永久分配地址;当该值为1时,表示当前的组播地址是一个临时组播地址(非永久分配地址)。 范围字段(Scop),4比特位,即ipv6的第4个16进制数,用来限制组播数据流在网络中发送的范围。 0:预留 1:节点本地范围 2:链路本地范围 3:保留 4:管理本地范围 5:站点本地范围 8:企业本地范围 e:全局范围 f:预留 组播组ID(Global ID),112比特位,目前建议前80位置0,后32位作为组播组ID,即ipv6的后8个16进制数 FF01::---FF02::的组播地址属于保留地址段,而且也是永久组播地址 节点本地: 所有节点的组播地址:FF01::1 所有路由器的组播地址:FF01::2 链路本地: 所有节点的组播地址:ff02::1 所有路由器的组播地址:ff02::2 solicited-node组播地址:ff02:0:0:0:0:1:ffxx:xxxx 所有ospf路由器组播地址:ff02::5 所有ospf的DR路由器组播地址:ff02:6 所有rip路由器的组播地址:ff02:9 所有PIM路由器组播地址:ff02::d -----------请求节点组播地址------------- 请求节点组播地址(IPv6中特有的组播地址) 每个节点必须为分配给它的每个单播和任播地址加入的一个组播地址,用于DAD地址重复检测 FF02::1:FFxx:xxxx //xx:xxxx即全球单播地址or唯一本地地址or链路本地地址的后24位 被请求节点组播地址:当一个节点有单播or任播地址,就会对应生成一个组播地址并加入。 ipv4中,当设备需要解析某ip对应的mac时,则发送广播arp request帧,所有收到该数据包的设备都要解析,判断ip ipv6中,NS报文目的IP为请求节点组播地址(所以范围可能比广播要小),目标mac为IPV6组播mac。所以只有目标设备在侦听这个组播ip,才会进行处理。而其他未监听该组播ip的设备在收到该帧时,可以通过目标mac,在网卡层面就过滤掉了。 请求节点组播地址 作用1:地址解析,NS报文的目的IPV6地址为请求节点组播地址 作用2:DAD地址重复检测 根据我现在的理解,IPV6的邻居表就相当于ARP表吧 通过命令dis ipv6 inter g0/0/0观察一个端口加入的组播地址: 1.默认加入:FF02::1、FF02::2 2.端口上每有一个单播地址,则加入一个请求节点组播地址:FF02::1:FFxx:xxxx 3.运行各种协议,则加入相应的组播地址 ---------IPV6组播MAC地址、IPV4组播MAC地址---------- 一个朴实无华的小tip:每一个组播IP报文在链路层都将封装一个组播MAC地址 组播ipv6报文的目的IP地址是组播ipv6地址,而目的mac地址则必须是组播mac地址,并且该地址必须与组播ipv6地址对应 3333是专门为ipv6组播预留的MAC地址前缀,mac地址后32bit则从对应的组播ipv6地址后32bit拷贝而来 即组播ipv6 MAC ==3333+组播ipv6地址的后32bit IANA规定,IPv4组播MAC地址的高24位位0x01005E,第25位为0,低23位为IPv4组播地址的低23位(即在IPV4中组播IP与组播MAC是32:1的映射关系)。 组播ipv4 MAC ==01005e+第25位为0+组播IPv4的后23bit IPv4组播地址的范围从224.0.0.0到239.255.255.255 组播MAC地址:IEEE MAC地址规定了第一个八位组的Octet 0的bit 0指明了目标地址是广播/组播地址,还是单播地址。
IPv6报文报头

IPv6数据包由一个IPv6报头、多个扩展报头和一个上层协议数据单元组成。 IPv6基本报头(IPv6 Header) 每一个IPv6数据包都必须包含报头,其长度固定为40bytes。 基本报头提供报文转发的基本信息,会被转发路径上面的所有路由器解析。 上层协议数据单元(Upper Layer Protocol Data Unit) 上层协议数据单元一般由上层协议包头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文。 IPv6报头格式中主要字段解释如下: Version:版本号,长度为4bit。对于IPv6,该值为6。 Traffic Class:流类别,长度为8bit。等同于IPv4中的TOS字段,表示IPv6数据报的类或优先级,主要应用于QoS。 Flow Label:流标签,长度为20bit。IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。 Payload Length:有效载荷长度,长度为16bit。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。该字段只能表示最大长度为65535字节的有效载荷。如果有效载荷的长度超过这个值,该字段会置0,而有效载荷的长度用逐跳选项扩展报头中的超大有效载荷选项来表示。 Next Header:下一个报头,长度为8bit。该字段定义紧跟在IPv6报头后面的第一个扩展报头(如果存在)的类型,或者上层协议数据单元中的协议类型。 Hop Limit:跳数限制,长度为8bit。该字段类似于IPv4中的Time to Live字段,它定义了IP数据报所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据报将被丢弃。 Source Address:源地址,长度为128bit。表示发送方的地址。 Destination Address:目的地址,长度为128bit。表示接收方的地址。 IPv6和IPv4相比,去除了IHL、identifiers、Flags、Fragment Offset、Header Checksum、 Options、Paddiing域,只增了流标签域,因此IPv6报文头的处理较IPv4大大简化,提高了处理效率。另外,IPv6为了更好支持各种选项处理,提出了扩展头的概念,新增选项时不必修改现有结构就能做到,理论上可以无限扩展,体现了优异的灵活性。 IPV6的传输效率比IPV4更高 IPv6中的流标签字段、源地址字段和目的地址字段一起为特定数据流指定了网络中的转发路径(即三元组)。 而ipv4中区分一个特定的数据流需要五元组(源目IP,源目端口,协议)

IPV6扩展报头 IPV4中,IPV4报头包含可选字段options,内容涉及security、timestamp、record route等,这些options可以将IPV4报头长度从20字节扩充到60字节。在转发过程中,处理携带这些options的IPV4报文会占用路由器很大的资源,因此实际中也很少使用。 IPV6将options剥离出来,放到了扩展报头中。扩展报头总是8字节长度的整数倍 当使用多个扩展报头时,前面报头的next header字段指明下一个扩展报头的类型,这样就形成了链状的报头列表。 路由设备转发时,根据基本报头中next header值来决定是否要处理扩展头,并不是所有的扩展报头都需要被转发路由设备查看和处理的。 除了目的选项扩展报头可能出现一次或两次(一次在路由扩展报头之前,另一次在上层协议数据报文之前),其余扩展报头只能出现一次。 扩展报头是可选的,只有需要该扩展报头对应的功能时,数据的发送者才会添加相应的扩展报头。 将原IPV4选项字段放入扩展报头 IPV6报文包含0个、1个或者多个扩展报头 固定为8字节长度的整数倍 next header字段为8字节,实际已经被使用的差不多有150+个。 当一个IPV6报文有超过一种扩展报头时,报头必须按照下列顺序排序: IPv6基本报头 逐条选项扩展报头 目的选项扩展报头 路由扩展报头 分段扩展报头 认证扩展报头 封装安全有效载荷扩展报头 目的选项扩展报头 上层协议数据报头
ICMPV6报文以及NDP协议

---------icmpv6------------------ icmpv6是ipv6的基础协议之一,ICMPv6是理解IPv6中其他机制的基础(使用范围比ipv4的icmp大多了。。) ICMPv6定义的报文被广泛地应用于其它协议中,包括:邻居发现 (Neighbor Discovery)、PathMTU发现机制等; ICMPv6的协议类型号(即IPv6报文中的Next Header字段的值)为58。 icmpv6报文中type表示消息的类型,0-127为差错报文类型,128-255为消息报文类型。 code则为该消息类型的细分类型 IPV6ping包使用的2个ICMPV6报文:type128:echo request;type129:echo reply ipv6路由表中,下一跳为链路本地地址 Ipv6 ping包测试时,目的IP就是目的IPV6地址, ---------NDP------------------ NDP(neighbor discover protocol)实现了ipv6种很多重要机制: 1.地址解析(相当于IPV4的ARP)--使用NS NA报文 2.重复地址检测(Duplicate Address Detect,DAD)--使用NS NA报文 3.跟踪邻居的状态 --使用NS NA报文 4.无状态自动配置--使用RS RA报文 5.前缀重新编制 ---使用RA报文 6.重定向--使用重定向报文 NDP(neighbor discover protocol)使用五种类型的ICMPv6消息: 类型133---路由器请求(RS) 1.节点启动后,主动发送RS消息向路由器发出请求,请求前缀和其他配置信息,用于节点的自动配置 类型134---路由器公告(RA) 1.响应RS报文 2.在没有抑制RA报文的前提下,周期性发送RA报文 类型135---路由器请求(NS) 1.MAC地址解析;2.验证邻居是否可达;3.DAD重复地址检测 类型136---邻居公告(NA) 1.响应NS报文;2.节点做链路层发生变化时,主动发送NA报文,通告变化 类型137---重定向消息 1.用于重定向,避免次优路径

-----------------地址解析(相当于IPV4的ARP)--使用NS NA报文------------------ 当用于地址解析时,arp报文及NS/NA报文比较: IPv4: Arp-requeset:源IP:自己的IP;目IP:要解析的IP;源MAC:自己的MAC;目的MAC:ffff-ffff-ffff Arp-reply;源IP:自己的IP;目的IP:对端的IP;源MAC:自己的MAC;目的MAC:对端的MAC IPv6: NS报文:源IP:自己的IPv6地址;目的IP:邻居的请求节点组播地址;源MAC:自己的MAC;目的MAC:33-33(组播MAC);target address:要解析的IPv6地址 NA报文:源IP:自己的IPv6地址;目的IP:对端的IPv6地址; 源MAC:自己的MAC 目的MAC:自己的MACTarger:自己的IPv6地址(也是NS报文中的携带的IPV6地址) 在IPv6地址解析时,较大的变化为NS报文的目的IP为请求节点组播地址,目的mac为该请求节点组播地址对应的组播mac,要解析的IPv6地址包含在报文的target address中。 因为在ipv4中,因为目的mac为ffff-ffff-ffff,ARP-request报文会被泛洪;而在ipv6中,NS报文为组播报文,目的为要解析的IPV6地址的请求节点组播地址,目的mac为相应的组播mac。 IPV6邻居状态(重要!)分别是:未完成(Incomplete)、可达(Reachable)、陈旧(Stale)、延迟(Delay)、探查(Probe)。 下面以A、B两个邻居节点之间相互通信过程中A节点的邻居状态变化为例(假设A、B之前从未通信),说明邻居状态迁移的过程。 1.A先发送NS报文,并生成缓存条目,此时,邻居状态为Incomplete。 2.若B回复NA报文,则邻居状态由Incomplete变为Reachable,否则固定时间后邻居状态由Incomplete变为Empty,即删除表项。 3.经过邻居可达时间,邻居状态由Reachable变为Stale,即未知是否可达。 4.如果在Reachable状态,A收到B的非请求NA报文,且报文中携带的B的链路层地址和表项中不同,则邻居状态马上变为Stale。 5.在Stale状态若A要向B发送数据,则邻居状态由Stale变为Delay,并发送NS请求。 6.在经过一段固定时间后,邻居状态由Delay变为Probe,其间若有NA应答,则邻居状态由Delay变为Reachable。 7.在Probe状态,A每隔一定时间间隔发送单播NS,发送固定次数后,有应答则邻居状态变为Reachable,否则邻居状态变为Empty,即删除表项。 ----------------------重复地址检测(Duplicate Address Detect,DAD)--使用NS NA报文------------------ 当接口配置了IPv6地址,该地址在检测之前称之为tentative地址,即实验性地址,是不能使用的。 1.该接口会发送NS报文(效果基本等同于ipv4的免费arp):源IP为::(表示为tentative地址),目的IP为新IPV6地址对应的请求节点组播地址,Target :需要检测的IPV6地址 2.如果没有收响应,说明该地址可以使用,直接使用 3.如果该地址已经使用,使用者会发送NA报文:源IP为自己的IPV6地址,目的IP为该请求节点组播地址,Target:检测的地址 4.该接口若收到NA报文,则该将放弃使用该地址

-----------------重定向--使用重定向报文--------------
重定向报文 type137
路由器如何知道应该发送重定向报文呢?
实际上很简单。。。因为当路由器发现接口报文和转发报文的端口是同一个接口时,这时就可以判断出来了

--------------RA报文解读--------------- RA报文FLAG位设置含义: 当M位置0,表示为无状态自动配置;当M为置1,表示为DHCPv6。 O位则关系到包括DNS、NIS、SNTP服务器等其他参数的设置,当O位置为1时,表示从DHCPv6获取相关参数 MO位值为11时,表示使用DHCPv6获取IPV6地址及其他参数。--------------------------------------------------DHCPv6有状态自动分配 MO位值为01时,表示使用无状态自动配置获取IPV6地址,使用DHCPv6获取其他参数------------------DHCPv6无状态自动分配 MO位值为00时,表示仅使用无状态自动配置获取IPV6地址。--------------------------------------------------无状态自动地址分配 实验和理论貌似有差距:在服务器和客户端均开启DHCPV6的前提下,不发送RA报文的情况下客户端可以通过DHCPV6获取IP;DNS等参数无法验证 只有无状态自动配置时,RA报文M为必须置0 当存在以下情况时忽略RA发送的前缀(了解): RA报文选项中的“auto”未置位。 前缀与已有地址前缀重复(包括link-local地址)。 RA报文选项中的“preferred lifetime”时间大于 “ valid lifetime ”。 前缀长度与接口ID长度之和不等于128位。 除以上情况外,主机获得前缀同时也获得一些相关时间参数: “preferred lifetime”=发起新通讯的有效时间。 “ valid lifetime ”=原有通讯的有效时间。 主机会周期性的收到RA报文,并据此报文来更新自己的时间参数 比如eui64或者请求节点组播地址,或多或少都有基于MAC地址生成的 而串口是没有mac的,这时会去借用其他端口的mac 接收RA报文有2种方式: 1.被动接收,路由器周期性发送RA报文(组播) 2.主机发送RS报文,路由器回应RA报文(单播or组播) -------无状态自动配置SLAAC--使用RS RA报文--------------------- 在IPv6中,IPv6地址可以支持无状态的自动配置,即主机通过某种机制获取网络前缀信息,然后主机自己生成地址的接口标识部分。路由器发现功能是IPv6地址自动配置功能的基础,主要通过以下两种报文实现: 路由器通告RA(Router Advertisement)报文:为了让二层网络上的主机和路由器知道自己的存在,RA报文会定时发送(华为设备默认抑制了RA报文的发送) 报文中携带网络前缀信息,以及其他一些标志位信息,type为134 路由器请求RS(Router Solicitation)报文:主机加入网络后,希望尽快获取网络前缀进行通信,此时会立刻发送RS报文,等待响应的RA报文,type为133 IPV6主机无状态自动配置SLAAC工作过程: 1.主机根据本地接口id自动产生网卡的链路本地地址。 2.主机对链路本地地址进行DAD检测 3.主机发送RS报文在链路上发现ipv6路由器 4.路由器回复RA报文 5.主机根据RA报文,获取ipv6地址前缀信息,加上本地产生的接口id,形成单播ipv6地址 6.主机对ipv6地址进行DAD检测 配置无状态自动配置:路由器接口配置IPV6地址且开启RA报文推送;路由器端口模拟PC:ipv6 address auto global。此时RA报文的MO位值为00。 服务器的配置 interface GigabitEthernet0/0/0 ipv6 enable ipv6 address 2001:12:12:12::1/64 undo ipv6 nd ra halt #命令用来使能系统发布RA报文功能。 默认情况下华为设备是不会发送RA报文,而思科设备会自动发送。 客户端的配置 interface GigabitEthernet0/0/0 ipv6 enable ipv6 address auto global 总结:无状态自动配置基于RA报文,同时RA报文M位置0

其实DHCPv6和无状态配置关系并不大,只有在RA报文的设置上有些关联。 但既然叫有状态自动配置,那么就放在这里一起总结吧 如果设置了IP地址or其他参数由DHCPV6进行配置,那么客户端将会发送DHCPv6报文进行请求。 DHCPV6和DHCP过程极为相似: 1.客户端发送DHCPV6 solicit报文 2.服务器响应DHCPV6 advertise报文(包含了IPV6地址以及DNS等参数) 3.客户端发送DHCPV6 request报文(根据DHCPV6 advertise报文,客户端请求使用该IPV6地址及其他参数) 4.服务器响应DHCPV6 reply报文(确认) DHCPV6和DHCP不同点: DHCPV6有状态自动分配可以分为两种:四步交互、两步交互 四步交互的场景为多DHCPV6服务器 两步交互的场景为单DHCPV6服务器 --------DHCPV6的配置----------- 若要使用的dhcpv6,则必须先在全局使能dhcp dhcpv6 pool pool1#配置DHCPV6地址池 address prefix 2010::/64 dns-server 2011::1111 dns-server 2011::2222 dns-domain-name www.baidu.com interface GigabitEthernet0/0/0#服务器端接口配置 ipv6 enable ipv6 address 2001::1/64 undo ipv6 nd ra halt #开启RA报文的推送 ipv6 nd autoconfig managed-address-flag#RA报文M位置1。默认为0 ipv6 nd autoconfig other-flag#RA报文O位置1。默认为0 dhcpv6 server pool1 #配置DHCPV6地址池 #路由器模拟PC interface GigabitEthernet0/0/0 ipv6 enable ipv6 address auto dhcp#配置通过DHCPV6获取IP 实验和理论貌似有差距:在服务器和客户端均开启DHCPV6的前提下,不发送RA报文也不影响客户端通过DHCPV6获取IP;DNS等参数无法验证 <Huawei>display dhcpv6 client
Path MTU

PMTU(Path MTU,路径MTU)发现机制的目的就是要找到从源端到目的端的路径上最小的MTU。 pmtu(path mtu)(ipv6报文在转发过程中,中间路由器是不会进行分片操作的) 是通过icmpv6 packet too big报文来实现的,至于是主动发送xx报文,来检测pmtu;还是传送数据时,被动接收到icmpv6 packet too big报文,才进行调整pmtu。这一点并没有介绍 pmtu缺省值为1500bytes pmtu最小值为1280bytes,最大值则由链路层决定; 有2种配置mtu的方式 [Huawei-GigabitEthernet0/0/0]ipv6 mtu 1400 [Huawei]ipv6 pathmtu 2001:100::1 1300
IPv6过渡技术

过渡技术概述 双栈技术:节点同时支持IPv4和IPv6协议栈 IPv6 over IPv4隧道 过渡初期使用 通过隧道技术,使IPv6报文在IPv4网络中传输 手动隧道包括IPv6 over IPv4手动隧道和IPv6 over IPv4 GRE隧道 自动隧道包括IPv4兼容IPv6自动隧道、6to4隧道和ISATAP隧道 ====================================================================== 双栈协议 所有设备必须支持IPv4/IPv6协议栈 连接双栈网络的接口必须同时配置IPv4地址和IPv6地址 ----------------------------------------------------- IPv6 over ipv4手工隧道 interface Tunnel0/0/0 ipv6 enable ipv6 address 2001:13::1/64 tunnel-protocol ipv6-ipv4 source 23.1.1.3 destination 12.1.1.1 ipv6 route-static 2001:10:10:10:: 64 Tunnel0/0/0 ----------------------------------------------------- IPv6 over ipv4 gre隧道 # interface Tunnel0/0/0 ipv6 enable ipv6 address 2001:13::1/64 tunnel-protocol gre source 1.1.1.1 destination 3.3.3.3 ----------------------------------------------------- IPv6 over ipv4 6to 4 interface Tunnel0/0/0 ipv6 enable ipv6 address 2001:13::1/64 tunnel-protocol ipv6-ipv4 6to4 source 1.1.1.1 ------------------------------------------------------ IPv6 over ipv4 自动隧道 interface Tunnel0/0/0 ipv6 enable ipv6 address ::23.1.1.3/96 tunnel-protocol ipv6-ipv4 auto-tunnel source GigabitEthernet0/0/0 # ------------------------------------------------------ IPv4 over ipv6 # interface Tunnel0/0/0 ip address 13.1.1.1 255.255.255.0 tunnel-protocol ipv4-ipv6 source GigabitEthernet0/0/0 destination 2001:23::3
111111111111111111111111
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!