IPV6基础和路由协议及迁移方案

一、IPV6介绍

1.1 IPV6介绍

1.1.1 IPV4的局限性

地址短缺
复杂包头,网络节点处理效率不高
很大的路由表,地址分配杂乱
部署安全,组播,移动比较麻烦

1.1.2 IPV6的特点

1、地址空间巨大,128bit
2、简单的报头。没有校验。因为即使校验出来数据不完整,也不能重传。不需要NAT   
3、地址自动配置,即插即用,PC连入网不需要做任何操作。
4、支持层次化网络结构,合理的地址分配,地址自带聚合,路由条目大大减少。
5、扩展报头,支持端对端安全,自带安全机制ipsec
6、扩展包头,更好的支持QOS
7、支持移动特性,部署灵活。无缝漫游

1.2 IPV6的地址格式

ipv6地址表示格式:冒号分16进制,一个16进制4个bit
2031:0000:130F:0000:0000:09C0:876A:130B

IPV6地址结构

  1. 前48位前缀,16位子网位,也可以是网络位。所以通常表示64位前缀。
  2. 64位接口ID标识,类似IPV4中的主机位。

接口标识生成方法

  1. 手工配置
  2. 系统通过软件自动生成
  3. IEEE EUI-64自动生成:扩展唯一标识符,64位。通过修改MAC地址来生成。
    ①在MAC地址中间插入FFFE。 48+16=64
    ②将MAC地址的第7位进行0、1转换。如果是0转换为1,全局本地位。

在这里插入图片描述

1.2.1 ipv6压缩格式

  1. 前导0可以省略
    2031:0000:130F:0000:0000:9C0:876A:130B
  2. 一组0可以用1个0表示
    2031:0:130F:0:0:9C0:867A:130B
  3. 一组或多个连续的0可以用双冒号来表示,只能用1次::
    2031:0:130F::9C0:876A:130B

1.2.2 IPV6地址网页访问方式

http://[2031:0:130F::9C0:876A:130B]:8080/index.html

1.2.3 IPV6地址分类

ipv6地址类型:

  • 单播:和IPV4单播地址一样。
  • 组播:替代了广播。
  • 任播:该地址的数据报文会发送到本地最近的一个节点上。多台服务器提供相同服务时。和单播地址使用一个地址空间。

ipv4中MSDP中的anycast RP就是一种任播模型

1.2.3.1 单播地址
1.2.3.1.1 AGUA地址(全球可聚合地址)

在这里插入图片描述

由运行商(provider)分配48bit的全球路由前缀,分配省市等16bit的子网ID,加上64bit的接口id。

001开头的单播地址已经开始发放了。已经在用的公网地址。
0010 = 2  0011 = 3 
现在的IPV6公网地址都是2和3开头的
2000::/3    第一个可用地址
2000::
3fff:ffffff    最后一个可用
2001::/16    正常使用
2002::/16    6to4tunnel使用
1.2.3.1.2 Link-Local Addresses

链路本地地址 类似MAC地址

  1. 前10位以 FE80::/10开头的,FE90,A0也可以
  2. 链路内有效。每个接口有且只有一个
  3. 一个节点想要运行IPV6,该接口一定会生成一个link-local地址,而一个接口有且只有一个link-local,一个接口可以拥有多个AGUA地址,无论使用什么IGP,通告路由的下一跳都是邻居接口的link-local地址

配置ipv6,首先全局开启IPV6,然后接口开启IPV6

ipv6 address 2001:0:0:1::1 64    #配置agua地址,自动生成一个链路本地地址
ipv6 address 2002:0:0:1:: 64  eui-64    #通过eui64自动生成ipv6地址
#查看IPV6地址信息
display ipv6 interface brief	
1.2.3.1.3 Site-Local Addresses 场点本地地址

微软定义为IPv4中的私有协议前7bit FC00:/7

1.2.3.1.4 未指定地址
::/128    表示未指定地址
::/0        缺省地址
::1        环回地址
1.2.3.2 IPV6的组播地址

FF00::/8 开始
FF02::/8 常用

常见组播地址
#被请求节点组播,就是用这个取代的广播,XX:XXXX    节点单播地址的后24位
#只要一个节点有一个单播地址,那么一定会监听这个被请求节点组播地址
FF02::1:FFXX:XXXX    
#对应ipv4的224.0.0.1,表示所有的节点
FF02::1
#对应ipv4的224.0.0.2,表示所有的路由器
FF02::2
#对应ipv4的224.0.0.9,表示所有rip路由器
FF02::9

1.2.3.3 任播地址

该地址的数据报文会发送到本地最近的一个节点上。多台服务器提供相同服务时,使用一个地址
ipv6 address 2013::1 64 anycast

1.3 ipv4地址迁移ipv6地址

在这里插入图片描述
前96位为0,后32位为ipv4地址,将ipv4地址转换为16进制表示

1.4 IPV6的报文结构

在这里插入图片描述
IPV6报文的区别

  • ipv6中没有包头长度字段,ipv6字节固定长度40字节+可变长扩展头部。ipv420-60字节
  • ipv6没有选项和填充选项
  • ipv6取消了切片,原因是IPV6有pmd(路径MTU检测)
  • ipv6取消了校验和字段
  • ipv6新增加了流标签

报文字段

  • version:版本字段
  • Traffic Class:流量类别。类似IPV4中的TOS字段用于做QOS使用
  • Flow label:流标签,给相同的数据打上相同的标签,不需要多次查表。
  • Payload Length:载荷长度。
  • next Header:下一个头部。类似Protocol字段,识别上层协议。
  • hop limit:跳数限制。类似TTL。
  • source Address:源IP
  • destination Address:目的IP。

常见的IPV6的扩展报头。

  1. 逐条选项报头,next Header=0,
    用于资源预留,用于路由器提示等
  2. 目的选项报头,next Header=60,
    用于移动IPV6,只有特定的目的节点才会处理的信息
  3. 源路由报头,next Header=43
    用于IPV6源节点强制数据包经过的路径
  4. 分段报头,next Header = 44
    用于包分片
  5. 认证报头,next header=51
    用于IPsec,提供认证、数据完整性等。
  6. 封装安全负载报头,next header = 50
    用于数据的加密

1.5 IPV6基础功能的实现

1.5.1 ICMPv6

ICMPv6替代了arp协议
作用:实现邻居发现、无状态地址配置、PMTU发现等

icmpv6的差错报文

  1. 目的不可达错误报文:数据包无法转发到目的节点
  2. 数据包过大错误报文:报文超出接口的MTU
  3. 时间超时错误报文:Hop Limit字段等0,分段重组报文超时
  4. 参数错误报文:报文出错

ICMPV6的信息报文

  1. echo request
  2. echo replay

1.5.2 NDP(邻居发现协议)

邻居发现协议或者叫做ICMPV6的应用,使用ICMPV6的报文

RS:路由器请求消息,用来请求RA,用于无状态地址自动配置	
目的地址FF02::2		icmp type 133

RA:路由器通告,通告路由器的一些前缀,MTU等。默认不发送,cisco默认发送	
目的地址FF02::1		icmp type 134
报文内容:
	跳数限制
	flags:o位置位,通过DHCPv6获取其他链路信息
	M位置位,使用DHCPv6来有状态地址自动配置。不置位,无状态地址自动-
	路由器生存时间:在始发路由器是缺省路由器时,此字段非0。
	可达时间:用于邻居不可达机制
	重传计时:用于邻居不可达机制
	可选项

NS:邻居请求,请求对方链路层地址,地址解析
目的地址为被请求节点组播地址,icmp type 135
报文内容:
target address:目标地址,将此地址后24bit形成目的被请求节点组播地址

NA:邻居通告,回复邻居请求消息	
icmp type 136
ICMPV6 重定向
报文格式
	R:路由器标记,如果是路由器发送的NA则置位
	S:请求标记,表示这是回复NS的NA。
	O:过载标记,需要更新缓存的链路层地址
	target address:NS的源地址

1.5.2.1 RS,RA的场景

配置路由器无状态地址自动配置
在这里插入图片描述
路由器2

intface e0/0/0
undo ipv6 nd ra halt	#取消抑制ND,RA消息的发送

路由器1

interface e0/0/0
ipv6 address auto global	#地址自动获取,发送NS检测链路地址冲突,RS请求地址前缀

使用ensp云设备桥接本地网卡:
1、新增加一个本地以太网卡
2、新增加一个UDP口
在这里插入图片描述3、然后选择以太网卡将出端口改为2,勾选双向通道,增加在这里插入图片描述
4、然后给R1的e0/0/1口配置和本地网卡同一网段,ping测试在这里插入图片描述
5、在R1接口配置IPV6地址,并使其发送RA消息在这里插入图片描述
6、在主机上查看是否获得了IPV6地址
在这里插入图片描述
微软的ipv6地址计算方式是变换的,防止其他人推算出IPV6地址。

一个节点通过无状态地址自动配置获悉了接口的基于EUI-64的AGUA地址的同时,如果该设备是一台基于IPV6的PC,则该设备同时会指定给其分配网段前缀的路由器为缺省网关。
如果是一台路由器,那么只会获悉AGUA地址,不会指网关。

ipv6PC连入网线之后,如果没有立即收到RA报文,则会发送一个RS报文请求RA报文生成AGUA地址,IPV6路由器会无视周期性时间发送一个RA报文。

1.5.2.2 NS,NA的场景

地址解析:当去ping一台设备时,须知道对端的链路层地址。而ipv6中没有广播,不支持ARP,使用ICMPv6替代ARP。
在这里插入图片描述

  1. 发送一个ICMP type为135的类型值,目的地址为目的被请求节点组播地址的NS报文,来请求对端设备的链路本地地址。
  2. 收到NS消息的设备会回复一个ICMP type为136的类型值的NA报文
  3. 形成NDP表项将目的link-local地址与AGUA地址进行映射

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
STALE:

  • REACH:可达时间,缺省30s。
  • Delay:发送数据包到一个Stale状态的目的节点进入该状态等待5s,5s内收到可达确认进入Reach状态,没有收到进入probe状态
  • Probe:每隔重传时间或1s通过目的节点发送邻居请求来搜索可达确认。

为什么ns报文的目的地址为被请求节点组播地址
被请求节点组播地址固定格式:FF02::1:FF/104
只要一个节点配置了IPV6单播地址,那么该节点就一定监听一个被请求节点组播地址,FF02::1:FFXX:XXXX,后面24bit的X为单播地址的后24bit。也会监听一个MAC地址后24bit的组播组地址。就是用该中方式取代的广播,因为该组播组地址只有我本地能监听。

在这里插入图片描述
在这里插入图片描述

1.5.3 重复地址检测(DAD)

ICMP type 135的NS报文,源地址全0,目的地址为自己的被请求节点组播地址
在这里插入图片描述

当接口配置了IPV6地址会自动发送2个NS消息,来检测地址是否冲突
因为当配置了IPV6地址,接口会有一个全球AGUA地址,还会自动产生一个链路本地地址

1.5.4 ICMPv6重定向

当网关路由器知道更优的路径,会以重定向报文告诉主机,和ipv4一样,只在第一次发送有效
在这里插入图片描述
PC1需要和PC2通信,PC1的默认网关是R1,那么当PC1发送报文给PC2时报文会被送到R1。R1接收到PC1发送的报文以后会发现实际上PC1直接发送给R2更好,它将发送一个重定向报文给PC1,其中报文中更好的路径下一跳地址为R2,Destination Address为PC2(该部分为ICMPv6重定向报文携带的目的地址)。PC1接收到了重定向报文之后,会在默认路由表中添加一个主机路由,以后发往PC2的报文就直接发送给R2。

1.5.5 PMD(路径MTU检测)

检测链路上最大的MTU。
在这里插入图片描述

二、IPV6路由协议

2.1 RIPng

RIPng对原RIP的修改

  1. 工作在应用层,udp封装,端口号521.原端口520
  2. 所有路由协议都是用链路本地地址作为下一跳
  3. 所有路由协议都没有认证,使用IPV6中的扩展报头中的安全机制
  4. 组播地址FF02::9

配置RIPng

ripng 1
	quit
interface g0/0/0
	ripng 1 enable			#还可以先接口启用,自动创建ripng进程
interface loo0 
	ripng 1 enable			#只需在接口下启用ripng
dis default-parament ripng		#默认参数

2.2 OSPFv3

OSPFV3和OSPFv2的不同之处

  1. OSPFV3基于链路,不是基于子网,一个链路可以配置多个地址
    不需要考虑是否在同一网段,只要在同一链路就可以建立邻居
  2. 1类LSA和2类LSA没有携带IP地址,由新增的LSA宣告
  3. 邻居总是通过路由器ID标识,V2中广播和NBMA环境是通过接口地址表示邻居,取消了不一致性
  4. 增加了链路本地泛洪扩散范围,新增LSA
  5. 链路本地地址的使用,V3数据包具有链路本地的范围
  6. 对每个链路多个实例的支持,ospfv2进程不同也可以建立邻居
    实例ID在OSPF头部中,原来的认证字段的位置
  7. 取消OSPF的认证,交由IPV6实现
  8. 更灵活处理未知LSA类型,可存储或泛洪不识别报文,v2丢弃不识别报文

ospfv3的LSA
新增8类LSA(链路LSA)使其扩散范围只在链路范围内有效

为什么新增9类LSA(区域内前缀LSA)?
因为在V2中拓扑发生改变和网络发生改变都需要进行1类和2类LSA的泛洪,重新进行SPF算法的计算,在很多定期变化的末梢链路边界或接入路由器容易出现问题。
ospfv3中1类LSA和2类LSA不通告前缀,将这功能放入新的区域内前缀LSA中,这样v3的1类LSA和2类LSA只有路由器的节点信息,只有在拓扑发生改变的时候进行SPF计算,如果网络或前缀发生变化,这些信息将在区域内前缀LSA中扩散,不会触发SPF的计算。

配置OSPFv3

ospfv3 1
	router-id 1.1.1.1			#router-id也是32bit,必须配置
	quit
interface g0/0/0
	ospfv3 1 ar 0 instace 1		#实例1
interface loo0
	ospfv3 1 area 0		

2.3 IS-IS IPV6

通过新增TLV实现对IPV6的支持

配置

isis 1
	ipv6 enable
	net 49.0001.0000.0000.0001.00
interface e0/0/0
	isis ipv6 enable 

2.4 BGPv4+

新增加 MP_REACH_NLRI,MP_UNREACH_NLRI

配置

bgp 100
	router-id 1.1.1.1
	peer 12.1.1.1 as-number 200
	peer 2001:: 2 as-number 200
ipv4-family unicast
	undo synchronization
	peer 12.1.1.1 enable
ipv6-family unicast
	undo synchronization
	peer 2001::2 enable

三、迁移方案

3.1 IPV6迁移方案:

  1. 双栈:既使用IPV4,又使用ipv6。最好的过渡技术
  2. 隧道:有些IPV4设备不支持ipv6。
    ipv4 over ipv6隧道:IPV4封装在IPV6之上,解决ipv4孤岛问题
    ipv6 over ipv4隧道:IPV6封装在IPV4之上,解决ipv6孤岛问题
    gre隧道:ipv4之上封装gre,gre之上封装ipv6.应用广泛,解决很多问题

3.1.1 手动隧道

3.1.1.1 点到点隧道

通过隧道技术,使IPV6的报文在IPV4网络传输,实现IPV6孤岛之间的通信。
在这里插入图片描述
配置步骤
1、IPV6站点配置好
2、公网路由配置好可以相互学到,可以配静态,ospf,isis等
3、R1和R3之间建立tunnel口。

interface tunnel 0/0/0
	ipv6 enable					#公网物理口不要配置IPV6地址
	ipv6 address 2013::1/64		#tunnel口配置IPV6地址
tunnel-protocol ipv6-ipv4		#tunenl封装协议
	source 12.1.1.1				#tunnel口依赖物理口。
	destination 23.1.1.3		    #源和目的可达tunnel口才能up

在这里插入图片描述
ping tunnel口IPV6地址测试,ipv6地址封装在IPV4之上。

4、tunnel配置好之后,相当于IPV6站点直连另一个IPV6站点。配置IPV6路由协议学习路由。本次使用OSPFV3,将tunnel口和连接IPV6站点的接口宣告进ospfv3。通过查看路由表可以看到学习到另一站点的IPV6路由。
在这里插入图片描述
在PC2上ping测试。
在这里插入图片描述
抓包查看在这里插入图片描述

3.1.1.2 GRE(通用路由封装)隧道

不仅仅用在IPV6 还可以解决BGP路由黑洞等其他。与手动隧道配置一样,只是封装格式不同,应用广泛.

interface tunnel 0/0/0
	tunnel-protocol gre
	source 12.1.1.1
	destination 23.1.1.3

抓包查看
在这里插入图片描述
ipv4之上是gre隧道,gre隧道内部承载着IPV6的报文

3.1.2 自动隧道,点到多点隧道

为什么需要自动隧道?
当网络中有多个IPV6站点时,每个站点之间部署一个tunnel,大量的tunnel配置,多段AGUA地址,路由条目的大量增加。

3.1.2.1 6to4 tunnel

在流量去往某个场点时,动态的建立tunnel。
在这里插入图片描述
如何动态建立tunnel的
通过将tunnel源IPV4地址嵌入到隧道IPV6地址,可以用于当一台PC访问目的网络时,边界网关设备通过提取目的地址中的第17bit到48bit转换为对应的ipv4地址,自动与其建立tunnel转发。前提是内网所有设备使用的IPV6地址是tunnel源地址转换后的前缀。

IPV6地址前48bit是网络位,前16位为2002固定的,剩下48-16=32位可用,使用IPV4转换成16进制填充。

动态tunnel前提条件

  1. IPV6地址必须是2002::/16,在内网接口中使用。
  2. 内网所有设备的IPV6地址使用的前48位网络位是2002加上tunnel源地址转换16进制后的前缀。
  3. 6to4tunnel只需要指定源地址
  4. 最后边界路由器写一条IPV6静态路由指向tunnel口。
    ipv6 route-static 2002::/16 tunnel 0

配置6to4 tunnel第一种方法
转换后的地址用在边界路由器内网接口,不需要运行路由协议,一条静态足以
在这里插入图片描述
为了实现6to4网络之间的互通,除了配置6to4隧道外,还需要为6to4网络内的主机及6to4 router配置6to4地址。

  • R1上接口G0/0/1的IPv4地址为12.1.1.1/24,转换成6to4地址后的前缀为2002:c01:0101::/48,内网的IPV6地址必须使用该前缀。
  • R3上接口G0/0/0的IPv4地址为23.1.1.3/24,转换成6to4地址后的前缀为2002:1701:0103::/48,内网的地址必须使用该前缀。
  • R4上接口G0/0/0的IPv4地址为24.1.1.4/24,转换成6to4地址后的前缀为2002:1801:0104::/48,内网的地址必须使用该前缀。
R1
# 配置接口G0/0/1的地址。
interface GigabitEthernet0/0/1
 ip address 12.1.1.1 255.255.255.0 
# 配置接口G0/0/0的地址为6to4地址2002:c01:101::1/64。
interface GigabitEthernet0/0/0
 ipv6 enable 
 ipv6 address 2002:C01:101::1/64 
# 创建模式为6to4隧道的接口Tunnel0。
interface Tunnel0/0/0
 ipv6 enable 
 ipv6 address 3001::1/64 				# 配置Tunnel0接口的IPv6地址。
 tunnel-protocol ipv6-ipv4 6to4
 source 12.1.1.1
# 配置到目的地址2002::/16,下一跳为Tunnel接口的静态路由。
ipv6 route-static 2002:: 16 tunnel 0/0/0

R2和R3同样配置.
PC1 ping PC2测试
在这里插入图片描述
在这里插入图片描述
第二种方法
公网内隧道IPV6地址直接使用转换后的地址。然后运行路由协议学习各站点路由
自动隧道只能使用静态路由和BGPv4+,因为OSPFv3的下一跳为链路本地地址,不能嵌入到ipv6地址

3.1.2.2 isatap隧道

与6to4-tunnel的嵌入的方式不一样,嵌入到接口ID的后32bit。
没有2002::/16的限制在这里插入图片描述
1、站点配置好
2、公网ipv4配置好。
3、配置tunnel

interface Tunnel0/0/0
 	 tunnel-protocol ipv6-ipv4 isatap 
       ipv6 enable 
 ipv6 address 2013::/64 eui-64
 source 12.1.1.1

在这里插入图片描述
查看自动生成的隧道ipv6地址是通过source 地址转换成接口ID的地址
4、运行路由协议

R1
bgp 200
 router-id 1.1.1.1
 peer 2013::5EFE:1701:103 as-number 100 
 peer 2013::5EFE:1701:103 ebgp-max-hop 255 

 ipv6-family unicast
  undo synchronization
  network 2001:: 64 
  peer 2013::5EFE:1701:103 enable
R2
bgp 100
 router-id 3.3.3.3
 peer 2013::5EFE:C01:101 as-number 200 
 peer 2013::5EFE:C01:101 ebgp-max-hop 255 

 ipv6-family unicast
  undo synchronization
  network 2002:: 64 
  peer 2013::5EFE:C01:101 enable

在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清枫cc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值