ICT应用解决方案03-IPv6概述

ICT应用解决方案03-IPv6概述

0 前言

IPv6其实在IPv4发行后不久就被定义出来了, 但是当时并没有流行起来, 近年来才出现IPv6的需求, 但IPv6确实称不上新技术

1 IPv4现状

IPv4地址在2011年2月3日被IANA机构分配给全球5个RAR, 此后再无IPv4地址剩余.

如今除了PC和Server之外也存在大量设备对IP地址拥有需求, 因此IPv6需求被提出并投入应用

2 IPv6发展现状

image-20230601191521526

3 IPv6优势

  • “无限”地址空间: 地址长度为128bit,海量的地址空间,满足物联网等新兴业务、有利于业务演进及扩展
  • 层次化的地址结构: 相较于IPv4地址,IPv6地址的分配更加规范,利于CIDR(路由聚合, 用于缩减IPv6路由表规模)、路由快速查询
  • 即插即用: IPv6支持无状态地址自动配置(SLAAC),终端接入更简单
  • 简化的报文头部: 简化报文头,提高效率;通过扩展包头支持新应用,利于路由器等网络设备的转发处理,降低投资成本
  • 安全特性: IP层本身无确认机制, 是不可靠的, IPv6提供IPsec、真实源地址认证等保证端到端安全;避免NAT破坏端到端通信的完整性
  • 移动性: 对移动网络实时通信有较大改进,整个移动网络性能有比较大的提升
  • 增强的QoS特性: 额外定义了流标签字段,可为应用程序或者终端所用,针对特殊的服务和数据流,分配特定的资源

4 IPv6过渡技术简介

IPv4依然占有主流地位, 所以现在还是IPv4和IPV6共存运行

IPv4演变为IPv6的三种技术

image-20230601193920801

  1. 双栈技术: 在一台设备上同时启用IPv4协议栈和IPv6协议栈

    网络路线上所有节点都必须同时启用IPv6和IPv6, 运营成本和设备开销太高, 只适合节点较少的小场景, 通常不使用.

  2. 隧道技术: 一种协议的数据封装在另一种协议的技术

    两个IPv6网络之间需要通过IPv4网络, 可以在两个IPv6的出接口上配置Tunnel接口相互宣告来打隧道连接, 并且在Tunnel接口配置IPv6地址, 使用gre或者6to4协议实现, 主要用于解决ipv6孤岛问题

  3. 转换技术: 将IPv6地址和IPv4地址进行转换的一种技术

    NAT64可以实现IPv6转换IPv4

过渡技术只存在理论场景, 现网其实很少采用上述技术解决问题

5 IPv4路由协议简介

image-20230601194055260

概括一下上图

路由协议 新增 具体内容
ospfv3(新版本) 新增两个LSA 8类LSA: 描述本地的, 主要用于节点传输
9类LSA: 1类LSA和2类LSA的填充
ISIS TVL做填充
BGP4+ 路由信息 UPDATA数据包
PIM 报文地址 不是考点, 了解即可

9类LSA:

  • 1类LSA的填充: stubnet做填充、p2p、无邻居的MA网络、loopback
  • 2类LSA的填充: DR

6 IPv6地址

IPv6地址长度为128bit, 使用冒号分割为8段, 每段16bit, 使用十六进制表示, 不区分大小写

image-20230601194836128

6.1 压缩格式

  • 省略每个段开头的0, 不能省略末尾的0
  • 一或多个连续的0字段可以省略为: : , 但是每个ip地址只能这样省略一次

例子

2001: db8: 0: 1: : 45ff/64 等同于

2001: db8: : 1: 0: 0: 0: 45ff/64 等同于

2001: db8: 0: 1: 0: 0: 0: 45ff/64 等同于

2011: 0db8: 0000: 0001: 0000: 0000: 0000: 45ff/64

6.2 地址结构

  • ipv4: 网络位+主机位=32位
  • ipv6: 网络前缀+接口标识=128位

image-20230601195750514

接口标识使用mac地址计算得来, 做到全球唯一:

  1. 把mac地址的第7个bit位反转为1
    • 0: 本地有效
    • 1: 全球唯一
  2. 把48bit分为124和2548, 中间插入FFFE

**mac地址转接口标识的例子: **

mac地址: 0870-5A90-1A01

  • 08: 00001000 -> 00001010 (0A)
  • 0A70-5A90-1A01 -> 0A70-5AFF-FE90-1A01 (接口标识)

6.3 地址前缀

IPv6地址类型

image-20230601205043859

  • IPv4: 单播、组播、广播(安全性差、占用大)
  • IPv6
    • 单播地址(Unicast Address): 一个单播地址标识一个接口, 但一个接口可以有多个单播地址(常见现象)
    • 组播地址(Multicast Address): 标识多个接口, 目的地址为组播地址的报文会被送到标识的所有接口, 只有加入相应组播组的设备才会侦听发往该组播地址的报文
    • 任播地址(Anycast Address): 任播地址标识一组网络接口, 目的地址是任播丢之的数据包将发送给其中路由意义上最近的一个网络接口, 存在多个节点IPv6地址一样, 会给用户到达服务器最优路径(目的设备和用户相对近的)

IPv6常见单播地址

IPv6网络前缀 含义
2001: : /16 GUA(全球单播地址), 用于IPv6Internet, 类似于IPv4的公网地址
2002: : /16 用于6to4隧道
FE80: : /10 链路本地地址前缀, 用于本地链路范围内的通信, 不能访问外网
FE00: : /8 组播地址前缀, 用于IPv6组播
: : /128 未指定地址, 类似于IPv4中的0.0.0.0
: : 1/128 环回地址, 类似于IPv4中的127.0.0.1
FC00: : /8 保留地址空间, 私网地址
FD00: : /8 唯一本地地址, 私网地址
  • GUA(Global Unicast Address, 全球单播地址): 也被称为可聚合全球单播地址, 该类地址全球唯一, 用于需要有互联网访问需求的主机, 相当于IPv4的公网地址

    image-20230601214028383

  • ULA(Unique Local Address, 唯一本地地址): 是IPv6私网地址, 只能够在内网中使用, 该地址空间在IPv6公网中不可被路由, 因此不能直接访问公网

    image-20230601214153486

  • LLA(Link-Local Address, 链路本地地址): IPv6中另一种应用范围受限制的地址类型, LLA的有效范围是本地链路, 不能访问公网

    image-20230601214254316

6.4 IPv6组播地址

IPv4组播地址

组播目标 组播地址
所有设备 224.0.0.1
所有路由器 224.0.0.2
ospf 224.0.0.5 DRother
224.0.0.6 DR/BDR
rip 224.0.0.9
dhcp 224.0.0.12
vrrp 224.0.0.18

IPv6组播地址

组播目标 组播地址
所有设备 FF02: : 1
所有路由器 FF02: : 2
ospf FF02: : 5 DRother
FF02: : 6 DR/BDR
rip FF02: : 9
dhcp FF02: : 12
PIM FF02: : 13
vrrp FF02: : 18
IGMPv3 FF02: : 22

组播mac地址(二层)

请求的节点, 比如ARP, 但是我们ipv6没有广播, 只能通过组播地址:

33-33-根据ipv6目的ip的后8bit, 共48bit

比如 2001: : 1A -> 00011010 -> 3333-0001-1010

被请求节点组播地址(三层)

类似DHCP请求地址的过程(广播), 但是IPv6没有广播, 只能通过组播地址:

FF02: : 1: FF

2001: : 1A

FF02: : 1: FF1A

6.5 IPv6任播地址

任播地址标识一组网络接口(通常属于不同的节点)。任播地址可以作为IPv6报文的源地址,也可以作为目的地址

image-20230601210729570

6.6 IPv6地址比较IPv4地址

image-20230601210849486

7 IPv6地址使用建议

7.1 地址规划举例

image-20230601211332157

7.2 地址使用习惯

image-20230601211402853

  • 一般而言,ISP从地址分配机构获取的IPv6地址至少为/32前缀长度。企业用户获得的前缀长度往往为/48
  • 虽然IPv6地址空间巨大,但是在规划网络时,依然需要对地址进行合理规划
  • 确保IPv6地址的全网唯一性(除某些特殊的应用外,如anycast)
  • 确保IPv6地址规划的连续性、可聚合性、可扩展性
  • 业务地址:可在IPv6地址中规划适当bit用于承载业务信息、VLAN信息或位置信息,利于路由规划、QoS部署
  • 用户地址:考虑为不同业务类型的用户预留连续的地址段。通过特定bit确定用户类型、分布区域等
  • 建议为终端网段(用户主机、服务器等)分配/64的前缀长度
  • 建议为P2P链路分配/127的前缀长度
  • 建议为Loopback接口分配/128的前缀长度

8 IPv6报文

8.1 IPv6报文构成

image-20230601214421961

IPv6报文一般由三个部分组成:

  • 基本报头:提供报文转发的基本信息,路由器通过解析基本报头就能完成绝大多数的报文转发任务
  • 扩展报头:提供一些扩展的报文转发信息,如分段、加密等,该部分不是必需的,也不是每个路由器都需要处理,仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头
  • 上层协议数据单元:一般由上层协议报头和它的有效载荷构成,该部分与IPv4的上层协议数据单元相似

8.2 IPv6基本报头

image-20230601214543617

IPv6的改进:

  • 取消三层校验:协议栈中二层和四层的已提供校验,因此IPv6直接取消了IP的三层校验,节省路由器处理资源。
  • 取消中间节点的分片功能:中间路由器不再处理分片,只在产生数据的源节点处理,省却中间路由器为处理分片而耗费的大量CPU资源。
  • 定义定长的IPv6报头:有利于硬件的快速处理,提高路由器转发效率。
  • 安全选项的支持:IPv6提供了对IPSec的完美支持,如此上层协议可以省去许多安全选项。
  • 增加流标签:提高QoS效率

8.3 IPv6扩展报头

image-20230601214634653

  • Next Header:下一报头协议号,长度为8bit。与基本报头的Next Header的作用相同。指明下一个扩展报头(如果存在)或上层协议的类型, 当Next Header=0时, 表明为逐条选项报头
  • Extension Header Length:报头扩展长度,长度为8bit。表示扩展报头的长度(不包含NextHeader字段)
  • Extension Header Data:扩展报头数据,长度可变。扩展报头的内容,为一系列选项字段和填充字段的组合

扩展报头规约

image-20230601214901249

  1. 扩展报头必须按如左排列的顺序出现
  2. 目的选项报头外,每种扩展报头只能出现一次
  3. 目的选项头最多出现2次,1次在路由报头之前,1次在上层协议数据报文之前,如果没有路由报头,则只能出现一次
报头 下一报头的值(协议号)
IPv6
逐跳可选项 0
目的可选项(只有在路由选择报头中指定的中间路由器才必须处理这个报头) 60
路由选择 43
分段 44
认证(AH) 51
封装安全有效载荷(ESP) 50
目的可选项(最后节点必须处理这个报头) 60
上层报头 根据协议而定

8.4 IPv6基础配置

配置命令

  1. 使能设备的IPv6报文转发功能

    ipv6
    
  2. 使能接口的IPv6功能

    int g0/0/1
    	ipv6 enable
    

    设备ipv6和接口ipv6都要启用

  3. 配置IPv6全球单播地址

    ipv6 address {ipv6-address prefix-length | ipv6-address / prefix-length}
    

    每个接口下最多可配置10个全球单播地址

  4. 使能设备OSPFv3功能

    ospfv3 [process-id]
    

    OSPFv3支持多进程,一台路由器上启动的多个OSPFv3进程之间由不同的进程号区分。

    OSPFv3进程号在启动OSPFv3时进行设置,它同ospf进程一样只在本地有效,不影响与其它路由器之间的报文交换

  5. 配置OSPFv3的RouterID

    int g0/0/1
    	ospfv3 process-id area area-id
    

配置案例

双栈网络(ipv4+ipv6)

image-20230606192712131

AR1

int g0/0/0
	ip add 10.0.0.1 24
	qu
int g0/0/1
	ip add 192.168.20.1 24
	qu
	
ospf 1 
	area 0
		network 192.168.20.1 0.0.0.0
		qu
	qu
	
ipv6 enable
int g0/0/0
	ipv6 enable
	ipv6 address 2002::254/64
	qu
int g0/0/1
	ipv6 enable
	ipv6 address 2001::1/64
	qu
	
ospfv3 1
	router-id 1.1.1.1
	qu
int g0/0/1
	ospfv3 1 area 0
	qu
int g0/0/0
	ospfv3 1 area 0
	qu

AR2

int g0/0/0
	ip add 192.168.20.2 24
	qu
int g0/0/1
	ip add 20.0.0.2 24
	qu
	
ospf 1 
	area 0
		network 192.168.20.2 0.0.0.0
		qu
	qu
	
int g0/0/0
	ipv6 enable
	ipv6 address 2001::2/64
	qu
int g0/0/1
	ipv6 enable
	ipv6 address 2003::254/64
	qu
	
ospfv3 1
	router-id 2.2.2.2
	qu
int g0/0/0
	ospfv3 1 area 0
	qu
int g0/0/1
	ospfv3 1 area 0
	qu
  • ospfv3不会自动生成Router-ID, 且采用的依然是ospfv2的Router-ID格式
  • ospfv3取消了网段宣告(network), 只保留下了接口宣告, 无论对端设备是什么, 只要有使用的接口都要去宣告(我暂且这么理解)

查看命令

display ipv6 interface brief
posted @ 2023-06-06 20:09  Qurare  阅读(61)  评论(0编辑  收藏  举报