IPv6包头由一个IPv6基本包头(必须存在)和多个扩展包头(可能不存在)组成。
基本包头提供报文转发的基本信息,会被转发路径上的所有设备解析。
Extension Header Data:扩展包头数据,长度可变。扩展包头的内容,为一系列选项字段和填充字段的组合。Extension Header Length:扩展包头长度,长度为8 bit。表示扩展包头的长度(不包含Next Header字段)。
IPv6地址的长度为128 bit。一般用冒号分割为8段,每一段16 bit,每一段内用十六进制表示。
与IPv4地址类似,IPv6也用“IPv6地址/掩码长度”的方式来表示IPv6地址。
例如2001:0DB8:2345:CD30:1230:4567:89AB:CDEF/64
IPv6地址: 2001:0DB8:2345:CD30:1230:4567:89AB:CDEF
子网号: 2001:0DB8:2345:CD30::/64
为了书写方便,IPv6可采用以下规则进行缩写。
根据IPv6地址前缀,可将IPv6地址分为为单播地址、组播地址和任播地址。
一个IPV6单播地址可分为如下两部分:
网络前缀(networkperfix):n bit ,相当于IPV4地址中的网络ID
接口标识:(interface identify): (128-n) bit ,相当于IPV4地址中的主机ID
接口标识可通过三种方法生成:
手工配置
系统自动生成
通过IEEE EUI-64规范生成
其中EUI-64规范最为常用,此规范将接口的MAC地址转换为IPv6接口标识。
GUA(Global Unicast Address,全球单播地址),也被称为可聚合全球单播地址。该类地址全球唯一,用于需要有互联网访问需求的主机,相当于IPv4的公网地址。
通常GUA的网络部分长度为64 bit,接口标识也为64 bit。
全局路由前缀:由提供商指定给一个组织机构,一般至少为45 bit。
子网ID:组织机构根据自身网络需求划分子网。
接口标识:用来标识一个设备(的接口)。
ULA(Unique Local Address,唯一本地地址)是IPv6私网地址,只能够在内网中使用。该地址空间在IPv6公网中不可被路由,因此不能直接访问公网。
唯一本地地址使用FC00::/7地址块,目前仅使用了FD00::/8地址段。FC00::/8预留为以后拓展用。
ULA虽然只在有限范围内有效,但也具有全球唯一的前缀(虽然随机方式产生,但是冲突概率很低)。
LLA(Link-Local Address,链路本地地址)是IPv6中另一种应用范围受限制的地址类型。LLA的有效范围是本地链路,前缀为FE80::/10。
LLA用于一条单一链路层面的通信,例如IPv6地址无状态自动配置、IPv6邻居发现等。
源或目的IPv6地址为链路本地地址的数据包将不会被转发到始发的链路之外,换句话说,链路本地地址的有效范围为本地链路。
每一个IPv6接口都必须具备一个链路本地地址。华为设备支持自动生成和手工指定两种配置方式。
IPv6组播地址标识多个接口,一般用于“一对多”的通信场景。
IPv6组播地址只可以作为IPv6报文的目的地址。
Flags:用来表示永久或临时组播组。
Scope:表示组播组的范围。
Group ID:组播组ID。
当一个节点具有了单播或任播地址,就会对应生成一个被请求节点组播地址,并且加入这个组播组。该地址主要用于邻居发现机制和地址重复检测功能。被请求节点组播地址的有效范围为本地链路范围。
任播地址标识一组网络接口(通常属于不同的节点)。任播地址可以作为IPv6报文的源地址,也可以作为目的地址。
一般情况下,主机和路由器的单播IPv6地址以及加入的组播地址如下所示:
一个接口在发送IPv6报文之前要经历地址配置、DAD、地址解析这三个阶段,NDP(Neighbor Discovery Protocol,邻居发现协议)扮演了重要角色。
RFC2461定义了NDP,该RFC后来被RFC4861替代。
NDP使用ICMPv6报文实现其功能。
主机根据RA中的地址前缀,并结合本地生成的64 bit接口标识(例如EUI-64),生成单播地址。
仅可以获得IPv6地址信息,无法获得NIS、SNTP服务器等参数,需要配合DHCPv6或者手工配置来获取其他配置信息。
无论通过何种方式配置了IPv6单播地址,主机或路由器都会:
通过ICMPv6报文进行DAD
仅当DAD通过之后才会使用该单播地址
IPv6使用ICMPv6的NS和NA报文来取代ARP在IPv4中的地址解析功能。
使能IPv6
[Huawei] ipv6 |
使能设备转发IPv6单播报文,包括本地IPv6报文的发送与接收
[Huawei-GigabitEthernet0/0/0] ipv6 enable |
在接口视图下,在接口上使能该接口的IPv6功能
配置接口的链路本地地址
[Huawei-GigabitEthernet0/0/0] ipv6 address ipv6-address link-local
[Huawei-GigabitEthernet0/0/0] ipv6 address auto link-local
在接口视图下,通过手工或者自动的方式,配置接口的链路本地地址。
配置接口的全球单播地址
[Huawei-GigabitEthernet0/0/0] ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }
[Huawei-GigabitEthernet0/0/0] ipv6 address auto { global | dhcp
在接口视图下,通过手工或者自动(有状态或无状态)的方式,配置接口的全球单播地址。
配置IPv6静态路由
[Huawei] ipv6 route-static dest-ipv6-address prefix-length { interface-type interface-number [ nexthop-ipv6-address ] | nexthop-ipv6-address } [ preference preference ]
查看接口的IPv6信息
[Huawei] display ipv6 interface [ interface-type interface-number | brief
查看邻居表项信息
[Huawei] display ipv6 neighbors
使能系统发布RA报文功能
[Huawei-GigabitEthernet0/0/0] undo ipv6 nd ra halt
默认情况下,华为路由器接口不发送ICMPv6 RA报文,则该接口所连链路上的其他设备无法进行无状态地址自动配置。
若想进行IPv6无状态地址配置,需要手工开启发送RA报文。
1.在R1、R2、R3、R4全局和相关接口使能IPv6功能,同时自动生成链路本地地址(以R1配置为例) [R1]ipv6 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ipv6 enable [R1-GigabitEthernet0/0/0]ipv6 address auto link-local 2.在R1、R2相应接口配置静态IPv6全球单播地址 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ipv6 address 2001::1 64 [R2]interface GigabitEthernet 1/0/0 [R2-GigabitEthernet1/0/0]ipv6 address 2001::2 64 [R2-GigabitEthernet1/0/0]interface GigabitEthernet 0/0/0 [R2-GigabitEthernet0/0/0]ipv6 address 2002::1 64 [R2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1 [R2-GigabitEthernet0/0/1]ipv6 address 2003::1 64 |
配置需求:
R1和R2之间使用静态IPv6地址互联。
R2作为DHCPv6服务器给R3的GE0/0/0分配全球单播地址。
R4的GE0/0/0接口通过R2的RA进行无状态地址自动配置。
配置静态路由,实现各设备之间互访。
3.在R2上配置DHCPv6服务器功能,R3接口通过DHCPv6方式获取全球单播地址 [R2]dhcp enable [R2]dhcpv6 pool pool1 [R2-dhcpv6-pool-pool1]address prefix 2002::/64 [R2]interface GigabitEthernet 0/0/0 [R2-GigabitEthernet0/0/0]dhcpv6 server pool1 [R3]dhcp enable [R3]interface GigabitEthernet 0/0/0 [R3-GigabitEthernet0/0/0]ipv6 address auto dhcp |
配置需求:
R1和R2之间使用静态IPv6地址互联。
R2作为DHCPv6服务器给R3的GE0/0/0分配全球单播地址。
R4的GE0/0/0接口通过R2的RA进行无状态地址自动配置。
配置静态路由,实现各设备之间互访。
4.在R2使能发布RA报文的功能,R4通过无状态地址配置的方式获取地址 |
配置需求:
R1和R2之间使用静态IPv6地址互联。
R2作为DHCPv6服务器给R3的GE0/0/0分配全球单播地址。
R4的GE0/0/0接口通过R2的RA进行无状态地址自动配置。
配置静态路由,实现各设备之间互访。
5.在R4上配置静态路由 [R4]ipv6 route-static 2001:: 64 2003::1 [R4]ipv6 route-static 2002:: 64 2003::1 6.在R1上配置聚合后的静态路由 [R1]ipv6 route-static 2002:: 15 2001::2 7.在R3上配置默认路由 [R3]ipv6 route-static :: 0 2002::1 |
配置需求:
R1和R2之间使用静态IPv6地址互联。
R2作为DHCPv6服务器给R3的GE0/0/0分配全球单播地址。
R4的GE0/0/0接口通过R2的RA进行无状态地址自动配置。
配置静态路由,实现各设备之间互访。