【思科】IPv6 过渡技术 - 6to4隧道

news2024/11/19 9:25:29

【思科】IPv6 过渡技术 - 6to4隧道

  • 实验要求
  • 实现思路
  • 6 to 4 特点
  • 注意点
    • IPv4 转 IPv6 格式小技巧
  • 配置
    • R1
      • 基础配置
      • OSPFv3 局域网可达
    • R2
      • 基础配置
      • 局域网环境(OSPFv3):IPv6 网络
      • 6 to 4 隧道
    • R3
    • R4
      • 基础配置
      • 局域网环境(OSPFv3):IPv6 网络
      • 6 to 4 隧道
    • R5
      • 基础配置
      • OSPFv3 局域网可达
    • 检查
      • R2的tunnel 接口状态
      • R4的tunnel 接口状态
      • R1 的路由表
      • R5 的路由表
      • R1 Ping R5
  • 抓包分析
  • 6to4是如何自动建立隧道?
    • ① 报文的目的地址
    • ② 那怎么自动建立呢?
  • 配置文档
    • R1
    • R2
    • R3
    • R4
    • R5

在这里插入图片描述

实验要求

实验环境 : EVE

实验需求:
实现双方站点的IPv6网络 可以跨 IPv4 网络进行通信

实现思路

① IPv6网络用OSPFv3来实现互通
② IPv4网络用OSPF来实现互通
③ 使用6 to 4隧道实现Pv6网络 可以跨 IPv4 网络进行通信

隧道可以在原有的IPv6头部,再加上Pv4头部,就可以帮助IPv6跨IPv4网络进行通信了

6 to 4 特点

自动建立隧道,不需要向GRE 或者 IPv6 in IPv4 隧道一样,手动指定隧道目的 !

注意:不支持组播
有一个特定前缀:2002::/16 2002:IPv4:: /48
那这个嵌入的IPv4的地址,就是我出接口的IPv4地址

报文结构(基于IPv6 in IPv4 隧道) :IPv4 — IPv6

详情可以去查看该篇IPv6 in IPv4 隧道实验
链接: IPv6 in IPv4 隧道实验

注意点

① OSPFv3 只能通过接口下宣告,不能使用Network!!!

② IPv6 in IPv4隧道的 IPv6地址格式2002:IPv4:: /48
这个IPv4需要我们,手动将十进制换算成十六进制,所以推荐用计算机来换算会更快一些

IPv4 转 IPv6 格式小技巧

可以用计算器来进行进制转换:
HEX : 十六进制
DEC : 十进制
一个十进制 转换成 两个十六进制

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

配置

在这里插入图片描述

R1

基础配置

R1(config)#int e0/0
R1(config-if)#no shutdown
R1(config-if)#ipv6 address 2001:12::1/64
R1(config-if)#exit

R1(config)#int loopback 1
R1(config-if)#ipv6 address 2000:1:1::1/64
R1(config-if)#exit

R1(config)#int loopback 2
R1(config-if)#ipv6 address 2000:1:2::1/64
R1(config-if)#exit

R1(config)#int loopback 3
R1(config-if)#ipv6 address 2000:1:3::1/64
R1(config-if)#exit


===================================   查看接口IPv6地址 =================================
R1(config)#do show ipv6 int brief
Ethernet0/0            [up/up]
    FE80::A8BB:CCFF:FE00:1000
    2001:12::1
Ethernet0/1            [administratively down/down]
    unassigned
Ethernet0/2            [administratively down/down]
    unassigned
Ethernet0/3            [administratively down/down]
    unassigned
Loopback1              [up/up]
    FE80::A8BB:CCFF:FE00:1000
    2000:1:1::1
Loopback2              [up/up]
    FE80::A8BB:CCFF:FE00:1000
    2000:1:2::1
Loopback3              [up/up]
    FE80::A8BB:CCFF:FE00:1000
    2000:1:3::1

OSPFv3 局域网可达

## 记得要启用IPv6单播路由,才能去配置动态路由
R1(config)#ipv6 unicast-routing  
                 
## 进入OSPFv3 IPv6 地址族,设置RID为 1.1.1.1
R1(config)#router ospfv3 1
R1(config-router)#address-family ipv6
R1(config-router-af)#router-id 1.1.1.1
R1(config-router-af)#exit
R1(config-router)#exit

## 接口下宣告
R1(config)#int range e0/0,lo1,lo2,lo3
R1(config-if-range)#ospfv3 1 ipv6 area 0
R1(config-if-range)#exit

R2

基础配置

R2(config)#int e0/0
R2(config-if)#no shutdown 
R2(config-if)#ipv6 address 2001:12::2/64
R2(config-if)#exit

R2(config)#int e0/1
R2(config-if)#no shutdown 
R2(config-if)#ip address 172.16.23.2 255.255.255.0 
R2(config-if)#exit

局域网环境(OSPFv3):IPv6 网络

## 需要开启IPv6单播功能
R2(config)#ipv6 unicast-routing 

## 进入OSPFv3 IPv6 地址族,设置RID为 2.2.2.2
R2(config)#router ospfv3 1
R2(config-router)#address-family ipv6
R2(config-router-af)#router-id 2.2.2.2
R2(config-router-af)#exit

## 接口下宣告
R2(config)#int range e0/0
R2(config-if-range)#ospfv3 1 ipv6 area 0
R2(config-if-range)#exit


==============================   查看 R2 学到IPv6 路由条目  ============================
R2(config)#do show ipv6 route
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
       H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
       IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
       ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
       RL - RPL, O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1
       OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
       la - LISP alt, lr - LISP site-registrations, ld - LISP dyn-eid
       lA - LISP away, a - Application
O   2000:1:1::1/128 [110/10]
     via FE80::A8BB:CCFF:FE00:1000, Ethernet0/0
O   2000:1:2::1/128 [110/10]
     via FE80::A8BB:CCFF:FE00:1000, Ethernet0/0
O   2000:1:3::1/128 [110/10]
     via FE80::A8BB:CCFF:FE00:1000, Ethernet0/0
C   2001:12::/64 [0/0]
     via Ethernet0/0, directly connected
L   2001:12::2/128 [0/0]
     via Ethernet0/0, receive
L   FF00::/8 [0/0]
     via Null0, receive

6 to 4 隧道

## 目的:IPv4网络内部互通
R2(config)#router ospf 110
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 172.16.23.0 0.0.0.255 area 0
R2(config-router)#exit

## 6 to 4 隧道,因为是自动建立
## 目的是为了和所有有需要的设备建立隧道通信
## 所以就不用指定隧道的目的了

## 建立 6to4 隧道
R2(config-if)#int tunnel 24
R2(config-if)#tunnel mode ipv6ip 6to4              ## 将Tunnel模式改为 6to4
R2(config-if)#ipv6 address 2002:AC10:1702::2/64    ## IPv6地址设置为规定样式
R2(config-if)#tunnel source e0/1                   ## tunnel隧道的源
R2(config-if)#exit

## 因为6to4隧道不支持组播
## 所以我们就写一条静态路由,去往R5的路由
R2(config)#ipv6 route 2000:5::/32 Tunnel24 2002:AC10:2204::4   

## 需要重分发进OSPFv3中,让R1学到R5的网络
R2(config)#router ospfv3 1
R2(config-router)#address-family ipv6
R2(config-router-af)#redistribute static         ## 将静态路由重分发进OSPFv3中
R2(config-router-af)#exit


==================================   查看到接口状态   ====================================
R2(config)#do show ipv6 int br
Ethernet0/0            [up/up]
    FE80::A8BB:CCFF:FE00:2000
    2001:12::2
Ethernet0/1            [up/up]
    unassigned
Ethernet0/2            [administratively down/down]
    unassigned
Ethernet0/3            [administratively down/down]
    unassigned
Tunnel24               [up/up]
    FE80::AC10:1702
    2002:AC10:1702::2
R2(config)#

R3

R3(config)#int e0/0
R3(config-if)#no shutdown 
R3(config-if)#ip address 172.16.23.3 255.255.255.0
R3(config-if)#exit

R3(config)#int e0/1
R3(config-if)#no shutdown 
R3(config-if)#ip address 172.16.34.3 255.255.255.0
R3(config-if)#exit

R3(config)#router ospf 110
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 172.16.0.0 0.0.255.255 area 0
R3(config-router)#exit

R4

基础配置

R4(config)#int e0/0
R4(config-if)#no shutdown 
R4(config-if)#ip address 172.16.34.4 255.255.255.0
R4(config-if)#exit

R4(config)#int e0/1
R4(config-if)#no shutdown 
R4(config-if)#ipv6 address 2001:45::4/64
R4(config-if)#exit

局域网环境(OSPFv3):IPv6 网络

## 需要开启IPv6单播功能
R4(config)#ipv6 unicast-routing 

## 进入OSPFv3 IPv6 地址族,设置RID为 4.4.4.4
R4(config)#router ospfv3 1
R4(config-router)#address-family ipv6
R4(config-router-af)#router-id 4.4.4.4
R4(config-router-af)#exit
R4(config-router)#exit

## 接口下宣告
R4(config)#int e0/1
R4(config-if)#ospfv3 1 ipv6 area 0
R4(config-if)#exit

6 to 4 隧道

## 目的:IPv4网络内部互通
R4(config)#router ospf 110 
R4(config-router)#router-id 4.4.4.4
R4(config-router)#network 172.16.34.0 0.0.0.255 area 0
R4(config-router)#exit

## 建立6to4 隧道
R4(config)#int tunnel24
R4(config-if)#ipv6 address 2002:AC10:2204::4/64
R4(config-if)#tunnel source e0/0
R4(config-if)#tunnel mode ipv6ip 6to4
R4(config-if)#exit

R4(config)#ipv6 route 2000:1::/32 Tunnel24 2002:AC10:1702::2

R4(config)#router ospfv3 1
R4(config-router)#address-family ipv6
R4(config-router-af)#redistribute static 
R4(config-router-af)#exit
R4(config-router)#exit

R5

基础配置

R5(config)#int e0/0
R5(config-if)#no shutdown 
R5(config-if)#ipv6 address 2001:45::5/64
R5(config-if)#exit

R5(config)#int loopback 1
R5(config-if)#ipv6 address 2000:5:1::1/64
R5(config-if)#exit

R5(config)#int loopback 2
R5(config-if)#ipv6 address 2000:5:2::1/64
R5(config-if)#exit

R5(config)#int loopback 3
R5(config-if)#ipv6 address 2000:5:3::1/64
R5(config-if)#exit


===================================   查看接口IPv6地址 =================================
R5#show ipv6 int br
Ethernet0/0            [up/up]
    FE80::A8BB:CCFF:FE00:5000
    2001:45::5
Ethernet0/1            [administratively down/down]
    unassigned
Ethernet0/2            [administratively down/down]
    unassigned
Ethernet0/3            [administratively down/down]
    unassigned
Loopback1              [up/up]
    FE80::A8BB:CCFF:FE00:5000
    2000:5:1::1
Loopback2              [up/up]
    FE80::A8BB:CCFF:FE00:5000
    2000:5:2::1
Loopback3              [up/up]
    FE80::A8BB:CCFF:FE00:5000
    2000:5:3::1

OSPFv3 局域网可达

## 记得要启用IPv6单播路由,才能去配置动态路由
R5(config)#ipv6 unicast-routing  
                 
## 进入OSPFv3 IPv6 地址族,设置RID为 5.5.5.5
R5(config)#router ospfv3 1
R5(config-router)#address-family ipv6 
R5(config-router-af)#router-id 5.5.5.5
R5(config-router-af)#exit
R5(config-router)#exit

## 接口下宣告
R5(config)#int range e0/0,lo1,lo2,lo3
R5(config-if-range)#ospfv3 1 ipv6 area 0
R5(config-if-range)#exit

检查

R2的tunnel 接口状态

在这里插入图片描述

R4的tunnel 接口状态

在这里插入图片描述

R1 的路由表

在这里插入图片描述

R5 的路由表

在这里插入图片描述

R1 Ping R5

R1#ping 2000:5:1::1 source lo 1
在这里插入图片描述

抓包分析

抓的是 R2的e0/1口
其实这个时候就可以看到,数据包发送的时候
此时就只新增了IPv4报文头这样子就比GRE少了一个封装字段,提高了传输效率

Ping包

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

6to4是如何自动建立隧道?

① 报文的目的地址

当R1的内部想要去Ping R5的内部时
流量到达R2身上,这个时候是需要有目的IP地址的
但是他查看到了我是用6to4隧道,那么就没有去设置隧道目的,那这个时候是怎么传递的呢?

查看R2的路由表,看到我们写的那条静态路由
在这里插入图片描述

该条静态路由的下一跳是2002:AC10:2204::4 ,这下一条里面藏着一个IPv4地址,就是172.16.34.4

接上面的问题
那设备发现这是个6to4隧道,那么就会去路由表找静态路由,然后去提取该IPv4地址,作为我报文的目的地址。

② 那怎么自动建立呢?

其实就是提取我每一条静态路由的IPv4地址,作为我的隧道目的地址,这样子就OK啦
主要就是静态路由中,有下一跳有包含 IPv4 地址,这个就是我的目的地址,所以就可以自动去建立
当需要建立很多条隧道的时候,就不用那么麻烦的一条一条的去建立啦

配置文档

R1

! 
ipv6 unicast-routing 
!
interface Loopback1
 ipv6 address 2000:1:1::1/64
 ospfv3 1 ipv6 area 0
!
interface Loopback2
 ipv6 address 2000:1:2::1/64
 ospfv3 1 ipv6 area 0
!
interface Loopback3
 ipv6 address 2000:1:3::1/64
 ospfv3 1 ipv6 area 0
!
interface Ethernet0/0
 ipv6 address 2001:12::1/64
 ospfv3 1 ipv6 area 0
!
router ospfv3 1
 !
 address-family ipv6 unicast
  router-id 1.1.1.1
!

R2

ipv6 unicast-routing
!
interface Tunnel24
 ipv6 address 2002:AC10:1702::2/64
 tunnel source Ethernet0/1
 tunnel mode ipv6ip 6to4
!
interface Ethernet0/0
 no shutdown
 ipv6 address 2001:12::2/64
 ospfv3 1 ipv6 area 0
!
interface Ethernet0/1
 no shutdown
 ip address 172.16.23.2 255.255.255.0
!
router ospfv3 1
 !
 address-family ipv6 unicast
  redistribute static
  router-id 2.2.2.2
!
router ospf 110
 router-id 2.2.2.2
 network 172.16.23.0 0.0.0.255 area 0
!
ipv6 route 2000:5::/32 Tunnel24 2002:AC10:2204::4

R3

!
interface Ethernet0/0
 no shutdown
 ip address 172.16.23.3 255.255.255.0
!
interface Ethernet0/1
 no shutdown
 ip address 172.16.34.3 255.255.255.0
!         
router ospf 110
 router-id 3.3.3.3
 network 172.16.0.0 0.0.255.255 area 0
!

R4

ipv6 unicast-routing
!
interface Tunnel24
 ipv6 address 2002:AC10:2204::4/64
 tunnel source Ethernet0/0
 tunnel mode ipv6ip 6to4
!
interface Ethernet0/0
 ip address 172.16.34.4 255.255.255.0
 no shutdown
!
interface Ethernet0/1
 no shutdown
 ipv6 address 2001:45::4/64
 ospfv3 1 ipv6 area 0
!
router ospfv3 1
 !
 address-family ipv6 unicast
  redistribute static
  router-id 4.4.4.4
!
router ospf 110
 router-id 4.4.4.4
 network 172.16.34.0 0.0.0.255 area 0
!         
ipv6 route 2000:1::/32 Tunnel24 2002:AC10:1702::2
!

R5

!
ipv6 unicast-routing
!
interface Loopback1
 ipv6 address 2000:5:1::1/64
 ospfv3 1 ipv6 area 0
!
interface Loopback2
 ipv6 address 2000:5:2::1/64
 ospfv3 1 ipv6 area 0
!
interface Loopback3
 ipv6 address 2000:5:3::1/64
 ospfv3 1 ipv6 area 0
!
interface Ethernet0/0 
 no shutdown
 ipv6 address 2001:45::5/64
 ospfv3 1 ipv6 area 0
!
router ospfv3 1
 !
 address-family ipv6 unicast
  router-id 5.5.5.5
!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1856712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Apifox 快速入门教程

访问示例项目​ 可访问Apifox官网,下载并打开 Apifox 后,你将会看到由系统自动创建的“示例团队”,其中内含一个“示例项目”。 项目中自动生成了与宠物商店有关的数条接口。 手动新建接口​ 新建接口是开发者们最常用的功能之一。Apifox 能…

Java研学-RBAC权限控制(八)

九 登录登出 1 登录作用 判断员工是否有权限访问,首先得知道现在操作的人是谁,所以必须先实现登录功能 2 登录流程 ① 提供登录页面,可输入用户名与密码信息,并添加执行登录的按钮。(登录页面不能被拦截)…

微服务、多租户、单点登录、国产化形成的开源Java框架!

一、项目简介 JVS是软开企服构建的一站式数字化的开源框架,支持对接多种账户体系,支持多租户、支持Auth2、统一登录、单点登录等,支持原生开发、低代码/零代码开发应用。 二、框架核心功能 控制台(首页):采用配置化的方式 用户…

C语言从入门到进阶(15万字总结)

前言: 《C语言从入门到进阶》这本书可是作者呕心沥血之作,建议零售价1元,当然这里开个玩笑。 本篇博客可是作者之前写的所有C语言笔记博客的集结,本篇博客不止有知识点,还有一部分代码练习。 有人可能会问&#xff…

HarmonyOS Next 系列之可移动悬浮按钮实现(六)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现(一) HarmonyOS Next 系列之验证码输入组件实现(二) HarmonyOS Next 系列之底部标签栏TabBar实现(三) HarmonyOS Next 系列之HTTP请求封装和Token…

Huffman树——AcWing 148. 合并果子

目录 Huffman树 定义 运用情况 注意事项 解题思路 AcWing 148. 合并果子 题目描述 运行代码 代码思路 其它代码 代码思路 Huffman树 定义 它是一种最优二叉树。通过构建带权路径长度最小的二叉树,经常用于数据压缩等领域。 运用情况 在数据压缩中&a…

C语言 while循环1

在C语言里有3种循环:while循环 do while 循环 for循环 while语句 //while语法结构 while(表达式)循环语句; 比如在屏幕上打印1-10 在while循环中 break用于永久的终止循环 在while循环中,continue的作用是跳过本次循环 …

MySQL的综合运用

MySQL版的葵花宝典,欲练此功,挥刀自。。。呃,,,说错了,是先创建两个表,分别是location表和store_info表 示例表为location表和store_info表,如下图所示: 操作一&#xf…

关于小蛋の编程和小蛋编程为同一作者的说明

小蛋の编程和小蛋编程的作品为同一人制作,因前者为父母的手机号进行注册,现用本人手机号注册了新账号小蛋编程,后续文章将在新账号小蛋编程上进行刊登,同时在小蛋编程上对原账号文章进行转载。此账号不再发布帖子,请大…

算法常见手写代码

1.NMS def py_cpu_nms(dets, thresh):"""Pure Python NMS baseline."""#x1、y1、x2、y2、以及score赋值x1 dets[:, 0]y1 dets[:, 1]x2 dets[:, 2]y2 dets[:, 3]scores dets[:, 4]#每一个检测框的面积areas (x2 - x1 1) * (y2 - y1 1)#按…

运维iptables与firewalld详解

iptables与firewalld 一、iptables 1.1 iptables简介 iptables 是一个在 Linux 系统上用来配置 IPv4 数据包过滤规则的工具。它允许系统管理员控制数据包的流向,实现网络安全、网络地址转换(NAT)和端口转发等功能。 具体来说,…

如何解决app广告填充率低、广告填充异常,提升广告变现收益?

APP广告变现有助于开发者获得持续的收益来源,由于广告链路的封闭性和复杂化,一旦出现请求配置参数错误、返回广告源信息缺失、素材被拦截等异常,大部分开发者很难及时查清异常情况,导致广告填充率不理想,甚至填充率常常…

Spire.PDF for .NET【文档操作】演示:设置 PDF 文档的 XMP 元数据

XMP 是一种文件标签技术,可让您在内容创建过程中将元数据嵌入文件本身。借助支持 XMP 的应用程序,您的工作组可以以团队以及软件应用程序、硬件设备甚至文件格式易于理解的格式捕获有关项目的有意义的信息(例如标题和说明、可搜索的关键字以及…

“开源AI”到底是什么意思

开源与专有软件之间的斗争早已为人所熟知。然而,长期以来弥漫在软件圈的紧张关系已经渗透到了人工智能领域,部分原因在于没有人能在AI背景下就“开源”的真正含义达成一致。 相关阅读:GPT-4o通过整合文本、音频和视觉实现人性化的AI交互&…

上海舆情分析软件的功能和对企业的意义

随着互联网的飞速发展,人们参与讨论、发声的途径与评率也越来越多,在为自己发声的同时,公众舆论也成为企业获取民意,改进发展的重要参考。 上海 舆情分析软件的开发,为企业获取舆论,调查研究提供了便捷化的…

Spring+SpringMVC+MyBatis整合

目录 1.SSM介绍1.1 什么是SSM?1.2 SSM框架1.2.1 Spring1.2.2 SpringMVC1.2.3 MyBatis 2.SSM框架整合2.1 建库建表2.2 创建工程2.3 pom.xml2.4 log4j.properties2.5 db.properties2.6 applicationContext-dao.xml2.7.applicationContext-tx.xml2.8 applicationContex…

浅析缓存技术

缓存技术的原理 缓存技术通过在内存中存储数据副本来加速数据访问。当应用程序需要数据时,首先检查缓存是否存在数据副本,如果有则直接返回,否则再从原始数据源获取。这种机制大大减少了访问时间,提升了系统的响应速度和整体性能。…

Maven深度解析:Java项目构建

Maven是一个由Apache软件基金会维护的软件项目管理和理解工具,它主要服务于基于Java的软件项目。。 Maven深度解析:Java项目构建 引言 在Java开发领域,项目构建和管理是一个复杂而关键的任务。Maven作为这一领域的佼佼者,以其声…

vscode下无法识别node、npm的问题

node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 因为node是在cmd安装的,是全局安装的,并不是在这个项目里安装的。 解决方案: 1.在vscode的控制台,针对一个项目安装特定版本的node; 2.已经…

基于Dify的智能分类方案:大模型结合KNN算法(附代码)

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模…