今天和海翎光电的小编咱们一起聊聊IPv6的报头。下图是IPV4和IPV6的对比图,个人感觉还是比较直观的,我们就以这张图来梳理IPv6的报头内容。
一、IPv4的报头内容
首先,我们先重新回顾一下IPv4的报头内容,对于这个内容比较熟悉的朋友可以直击跳过:
1.Version(4位)用来表明IP协议版本,如果是IPv4协议,为0100(也就是十进制的4)
2.IHL(Internet Header Length)来记录头部的总长度。
3.Type of Service 服务类型。Type of Service最初是用来给IP包分优先级,比如语音通话需要实时性,所以它的IP包应该比Web服务的IP包有更高的优先级。后来,Type of Service被实际分为两部分:Differentiated Service Field (DS, 前6位)和Explicit Congestion Notification (ECN, 后2位),前者依然用来区分服务类型,而后者用于表明IP包途径路由的交通状况。
4.total length 总长度,包括报头的长度和数据的长度。
5.Identification标识,用于区分不同的数据报。
6.flags,标定是否进行了分段。
7.fragment offset,分段偏移量,在分组太大的时候,提供分段和重组功能。
8.Time to Live最初是表示一个IP包的最大存活时间:如果IP包在传输过程中超过Time to Live,那么IP包就作废。后来,IPv4的这个区域记录一个整数(比如30),表示在IP包接力过程中最多经过30个路由接力,如果超过30个路由接力,那么这个IP包就作废。IP包每经过一个路由器,路由器就给Time to Live减一。当一个路由器发现Time to Live为0时,就不再发送该IP包。
9.Protocol,用来说明上层协议的端口,也就是IP包之上的协议是什么(tcp为6,udp为17)。
10.Header Checksum区域。这个checksum用于校验IP包的头部信息。
11.Source Adrresss表示源IP地址。
12.Destination Address表示目的地的IP地址。
13.options.用于网络测试,调试,安全。
下图是通过ensp模拟器抓包时的ip报头,大家可以对照的再次回顾一下各报头的含义和作用。
二、IPv6报头
下面我们来看IPv6报头:
保留的内容:IPv6的报头保留了IPv4报头中的version,Source Adrresss,Destination Address。
变动的的内容:
1.Payload Length用来表示IPv6的数据部分的长度。整个IP包为40 bytes + Payload Length。
2.Hop Limit区域,IPv6用于记录的也是最大路由接力数,与IPv4的Time to Live功能相同。Hop Limit避免了IP包在互联网中无限接力。
3.Next Header,与IPv4的Protocol功能一致,用来说明上层协议的端口。
4.Traffic Class在IPv6中也被如此分成两部分。通过IP包提供不同服务的想法,并针对服务进行不同的优化的想法已经产生很久了,但具体做法并没有形成公认的协议。
新增的区域:
Flow Label是IPv6中新增的区域。它被用来提醒路由器来重复使用之前的接力路径。这样IP包可以自动保持出发时的顺序。这对于流媒体之类的应用有帮助。
删除了6项内容:
1.IHL(Internet Header Length)来记录头部的总长度。因为IPv6的报头总长度是固定的40字节。
2Header Checksum区域。IPv6的校验依赖高层的协议来完成,而且我们都知道,不仅高层协议有校验,在二层的封装上,也有FCS进行校验。因此,IPv6删除了这个区域。
3.options。因为IPv6没有options,它的头部是固定的长度40 bytes,所以IPv6中并不需要IHL区域。
4.Identification标识,用于区分不同的数据报。
5.flags,标定是否进行了分段。
6.fragment offset,分段偏移量,在分组太大的时候,提供分段和重组功能。
下面是IPv6在ensp中的抓包数据。
三、IPv6的表示
首先,我们在设备上进行IPv6地址的配置。需要注意的是,在配置IPv6地址的时候,首先要在全局开启IPv6,然后进入接口后,还需要再次开启IPv6的服务。
为了让大家全面的了解IPv6地址的表示,在配置地址的时候是使用的完全表示,当我们使用dis this命令进行查看的时候,显示的地址是压缩表示的方法。
转存失败重新上传取消
从IPv6的完全表示方式来看,IPv6的地址是由8组4个16进制数来表示的,共128位(ipv4是点分十进制,由4组4个十进制数来表示,共32位)
从IPv6的完全表示方式来看,IPv6的地址是由8组4个16进制数来表示的,共128位(ipv4是点分十进制,由4组4个十进制数来表示,共32位)
转存失败重新上传取消
四、IPv6地址的压缩
地址压缩规则主要有以下四点:
1.每个组前导的0可以省略,比如0101可以省略成101,
2.如果该组所有都为0,则可以写成一个"0",比如0000可以省略为0
3. 若连续2个或者多个组都为0,则可以使用"::”代替,
4."::"这只能出现一次
五、EUI-64简述
EUI-64是一个产生IPV6接口ID的方式。主要实现将接口mac转为接口ipv6的ip,命令为
A.具体转换方式如下:
1.先获取到接口的硬件地址,可以在全局模式下输入dis int g0/0/0
通过查看,该接口的硬件地址为:5489-9828-2a5a
2.将FFFE从硬件地址的正中间插入,变成:5498-98FF-FE28-2A5A
3.将第7位进行置位,
4.加上设定的前缀,组成新的IPv6的地址。
B.需要注意的是:
1.如果给定的前缀不满足64bit,在接口ID部分往前补0.
2.如果前缀超过64bit,华为会报错,思科是进行截取。
C. eui-64的优缺点:
优势:能够尽可能的避免地址的冲突。
缺点:可由链路地址反推网络地址,存在一定的安全隐患
五、链路本地地址(Link-local-address,LLA)
1.地址空间:FE80:: ~FEBF:FFFF(之后各组都为FFFF)
2.范围:仅在广播域内有效,不能跨越3层网络
3.产生方式:
a.自动产生,由FE80:: /10作为前缀和EUI-64产生接口ID部分,比如下图
b.自己设定,具体命令如下:
通过设定可以看出本机的LLA的变更
Tips:
::为保留地址,类似有ipv4中的 0.0.0.0
:: 1是回环地址 类似于ipv4中的127.0.0.1
图一:IPv6地址梳理
六、OSPFv3 的基础配置命令 (1)
1.启动 OSPFv3
[Huawei] ospfv3 [ process-id ] [ -instance -instance-name ]创建并运行 OSPFv3 进程,并将创建的 OSPFv3 进程与 VPN 实例进行绑定(可选)。[Huawei-ospfv3-1] router-id router-id配置设备在该 OSPFv3 进程中所使用的 Router ID。
注意:如果用户没有指定 Router ID,则 OSPFv3 进程无法运行。
2.在接口上使能 OSPFv3
[Huawei-GigabitEthernet0/0/1]
ospfv3 process-id area area-id [ instance instance-id ]
在接口上使能 OSPFv3 的进程,并指定所属区域,也可以指定接口所属的实例 ID。
注意:配置此命令前,必须先创建 OSPFv3 进程和使能 IPv6 功能。
OSPFv3 的配置命令与配置方式与 OSPFv2 类似,其他配置命令不再赘述,详细内容请参考《HCIP-Datacom-Core Technology》课程。
OSPFv3 的基础配置命令 (2)
3.(可选)配置接口的 OSPFv3 网络类型
[Huawei-GigabitEthernet0/0/1]
ospfv3 network-type { broadcast | nbma | p2mp [ non-broadcast ] | p2p }
[ instance instance-id ]
缺省情况下,接口的 OSPFv3 网络类型根据物理接口的数据链路层封装而定。以太网接口的缺省网络类型为 Broadcast,串口(封装 PPP 协议或 HDLC 协议时)的缺省网络类型为 P2P。
4.进入 OSPFv3 区域视图
[Huawei-ospfv3-1] area area-id
区域 ID 可以采用十进制整数或 IPv4 地址形式输入,但显示时是 IPv4 地址形式。
检查 OSPFv3 基本功能的配置结果
[Huawei] display ospfv3 [ process-id ] lsdb [ area area-id ]
[ originate-router advertising-router-id | self-originate ]
[ { router | network | inter-router [ asbr-router asbr-router-id ] |
{ inter-prefix | nssa } [ ipv6-address prefix-length ] | link | intra-prefix | grace }
[ link-state-id ] ]
process-id:OSPFv3 进程号。整数形式,取值范围是 1~65535。
area area-id:区域的标识。可以是十进制整数或 IPv4 地址格式。如果是十进制
整数,取值范围是 0~4294967295。如果是 IPv4 地址格式,取值是点分十进制。
external:显示数据库中 AS-external LSA 的信息。inter-prefix:显示数据库中Inter-Area-Prefix LSA 的信息。
inter-router:显示数据库中 Inter-Area-Router LSA 的信息。
intra-prefix:显示数据库中 Intra-Area-Prefix LSA 的信息。
nssa:显示数据库中 NSSA LSA 的信息。
link:显示数据库中 Link-LSA 的信息。
network:显示数据库中 Network-LSA 的信息。
router:显示数据库中 Router-LSA 的信息。
link-state-id:链路状态 ID。点分十进制格式。
originate-router advertising-router-id:指定发布 LSA 的路由器的 Router ID。点分十进制格式。
asbr-router asbr-router-id:指定 ASBR 路由器的 Router ID。点分十进制格式。
selforiginate:显示数据库中由本路由器发布的 LSA 信息。
ipv6-address prefix-length:指定 IPv6 目的地址及前缀长度。
▪ipv6-address 是 32 位 16 进制数,格式为 X:X:X:X:X:X:X:X。
▪prefix-length 是整数形式,取值范围是 0~128
[Huawei] display
ospfv3 [ process-id ] routing [ ipv6-address prefix-length | abr-routes | asbr-r
outes | intra-routes | inter-routes | ase-routes | nssa-routes | [ statistics ] ]
process-id:OSPFv3 进程号。整数形式,取值范围是 1~65535。
ipv6-address:指定 IPv6 地址。32 位 16 进制数,格式为 X:X:X:X:X:X:X:X。
prefix-length:指定前缀长度。整数形式,取值范围是 0~128。
abr-routes:显示 OSPFv3 中所有 ABR 的路由信息。
asbr-routes:显示 OSPFv3 中所有 ASBR 的路由信息。
intra-routes:显示 OSPFv3 中区域内路由的统计信息。
inter-routes:显示 OSPFv3 中区域间路由的统计信息。
ase-routes:显示 OSPFv3 中 AS 外部路由的统计信息。
nssa-routes:显示 OSPFv3 中 NSSA 区域路由的统计信息。
statistics:显示 OSPFv3 中所有路由表的统计信息。
OSPF 双栈配置举例
场景描述:
某公司通过部署 OSPFv2 实现 IPv4 网络的互联互通。该公司为了保证未来的业务发展,同时部署了 IPv6 网络进行业务测试,在该网络中运行 OSPFv3 实现了 IPv6 网络的互联互通。
所有路由器运行 OSPFv2 和 OSPFv3 协议,整个自治系统分为 3 个区域。配置完成后,每台路由器都应学到 AS 内的所有网段的 IPv4 路由和 IPv6 路由。
七、 部署 IPv4 网络 (1)
1、配置各路由器接口的 IPv4 地址。(略)
2、配置 OSPF 基本功能
八、 部署 IPv4 网络 (2)
九、部署 IPv6 网络 (1)
1、全局及接口下使能 IPv6 功能,配置各路由器接口的 IPv6 地址。(略)
2、启动 OSPFv3 功能。
部署 IPv6 网络 (2)
3、接口使能 OSPFv3 功能。
查看 OSPFv3 网络的邻居信息
可以通过 display ospf peer 查看 OSPFv2 的邻居信息。对比 OSPFv2 和 OSPFv3 的邻居信息,发现选出的 DR 和 BDR 是一致的,说明 DR选举方式相同。
查看 OSPFv3 网络的路由信息
可以通过 display ospf routing 查看 OSPFv2 的路由信息。对比 OSPFv2 和 OSPFv3 的路由信息,发现到“同一”网段的路径一致,说明路由计算方式相同
查看 OSPFv3 网络 LSDB 信息
可以通过 display ospf lsdb 查看 OSPFv2 的 LSDB 信息,可以看到有 Type1、Type2和 Type3 三种 LSA