IPv6 over IPv4 之SIT隧道

一.SIT模块功能简介

SIT模块是支持ISATAP隧道和6to4隧道两种隧道模式的

ISATAP和6to4都是目前比较流行的自动建立隧道的过渡技术,都可以连接被IPv4隔绝的IPv6孤岛,都是通过将IPv4地址嵌入到IPv6地址当中,并将IPv6封包封装在IPv4中传送,在主机相互通信中抽出IPv4地址建立tunnel。但具体实现的流程,IPv6地址和应用范围不尽相同。

ISATAP的全名是 Intra-Site Automatic Tunnel Addressing Protocol,它将IPv4地址夹入IPv6地址中,当两台 ISATAP 主机通讯时,可自动抽取出 IPv4 地址建立 Tunnel 即可通讯,且并不需透过其它特殊网络设备,只要彼此间IPv4网络通畅即可。

双栈主机支持ISATAP后会自动在该隧道接口上生成本地链路的前缀(fe80::开头)和64位的接口标识符::0:5EFE:X.X.X.X(这里的X.X.X.X是双栈主机的IPv4单播地址),这样就可以和同一子网内其他ISATAP客户机进行ipv6通讯了;如果需要和其他网络的ISATAP客户机或者IPv6网络通信,必须通过ISATAP路由器拿到全球单播地址前缀(2001:, 2002:, 3ffe:开头),通过路由器与其他IPv6主机和网络通信。

ISATAP过渡技术不要求隧道端节点必须具有全球惟一的IPv4地址,只要双栈主机具有IPv4单播地址即可,不管该地址公有的还是私有的都可以。

6to4( RFC3056 )机制被定义在站点之间进行IPv6通讯,每个站点必须至少有一台“6to4”路由器作为出入口,使用特需的地址格式,地址前缀为(2002:开头),并将路由器的IPv4地址夹入IPv6地址中,因此位于不同6to4 site内的主机彼此通讯时即可自动抽出IPv4地址在路由器之间建立Tunnel。

透过6to4 router,不同6to4 site内的主机可互相通讯,当需与一般IPv6主机通讯时,则必须过6to4 relay router。6to4 relay router必须同时具备6to4及IPv6接口,同时提供这些接口的封包转送。

6to4需要一个全球合法的IPv4地址,所以对解决IPv4地址短缺没有太大帮助。但它不需要申请IPv6地址,通过它可使站点迅速升级到IPv6

二. 6to4隧道搭建

按照实验图进行网络接线,两台防火墙通过6 to 4 隧道相连,其中FW1的接囗的全局IPV4地址是202.205.88.55,转换成IPV6的地址前缀是:2002:cacd:5837::/64,对此地址再做子网划分,设置sit1接囗使用2002:cacd:5837:1::/64而跟PC相连的eth1接囗使用2002:cacd:5837:2::/64前缀,FW2的eth0接囗的全局IPV4地址是202.205.88.66,转换成IPV6的前缀2002:cacd:5842::/64,同样设置sit1使用2002:cacd:5842::/64前缀,而eth1接囗使用2002:cacd:5842:2::/64.。图中各设备的地址配置如下表:

防火墙FW1

eth2 

202.205.88.55/24

eth1

2002:cacd:5837:2::1/64

sit1 2002:cacd:5837:1::1/64

防火墙FW2

eth1

202.205.88.66/24

eth2

2002:cacd:5842:2::1/64

sit1

2002:cacd:5842:1::1/64

主机PC1

ens19

2002:cacd:5837:2::2/64

主机PC2

ens19

2002:cacd:5842:2:2/:64

按照上表创建隧道并配置IP后,还必须在路由器上配置一条静态路由,将所有其它发往IPV6前缀2002::/16流量定向到6 to 4 隧道tunnel接囗。

1.在防火墙FW1上的配置如下:

ifconfig  eth2 add  202.205.88.55/24  //配置FW1的Eth2的地址

ifconfig  eth1 add  2002:cacd:5837:2::1/64   //配置FW1的Eth1的地址

echo "1">/proc/sys/net/ipv4/ip_forward ///打开路由转发

echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv4/tunnel4.ko

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv6/sit.ko

Ip tunnel add sit1 mode sit remote 202.205.88.66 local 202.205.88.55  //建立隧道

ifconfig sit1 up   //激活隧道

ip -6 addr add 2002:cacd:5837:1::1/64 dev sit1

route –A inet6 add 2002::/16 sit1    //添加IPV6路由

2.在防火墙FW2上的配置如下:

ifconfig  eth1 add  202.205.88.66/24  //配置FW2的Eth1的地址

ifconfig  eth2 add  2002:cacd:5842:2::1/64   //配置FW2的Eth2的地址

echo "1">/proc/sys/net/ipv4/ip_forward ///打开路由转发

echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv4/tunnel4.ko

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv6/sit.ko

ip tunnel add sit1 mode sit remote 202.205.88.55 local  202.205.88.66  //建立隧道

ifconfig sit1 up   //激活隧道

ip -6 addr add 2002:cacd:5842:1::1/64 dev sit1

route –A inet6 add 2002::/16 sit1     //添加IPV6路由

   3.在主机PC1上设置如下:

#ifconfig ens19 add 2002:cacd:5837:2::2/64

ip -6 route add 2002::/16 via 2002:cacd:5837:2::1 dev ens19

4.在主机PC2上设置如下:

#ifconfig ens19 add 2002:cacd:5842:2:2/:64

ip -6 route add 2002::/16 via 2002:cacd:5842:2::1 dev ens19

三. istatp隧道搭建

1.在防火墙FW1上的配置如下:

ip addr add 192.168.1.122/24 dev eth2

  //配置AF1的Eth2的地址

ip -6 addr add 3ffe:ffff:1234:9010::2:1/64 dev eth1   //配置FW1的Eth1的地址

echo "1">/proc/sys/net/ipv4/ip_forward ///打开路由转发

echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv4/tunnel4.ko

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv6/sit.ko

ip tunnel add isatap0 mode isatap remote 192.168.1.133 local 192.168.1.122//建立隧道

ip link set isatap0 up

echo "0" > /proc/sys/net/ipv6/conf/all/disable_ipv6

ip addr add 3ffe:ffff:1234:5678::5efe:192.168.1.122/64 dev isatap0

ip -6 route add 3ffe::/16 via 3ffe:ffff:1234:5678:0:5efe:c0a8:185 dev isatap0

ip -6 route del 3ffe:ffff:1234:5678::/64

2.在防火墙FW2上的配置如下:

ip addr add 192.168.1.133/24 dev eth1

  //配置FW2的Eth1的地址

ip -6 addr add 3ffe:ffff:1234:7890::2:1/64 dev eth2   //配置FW2的Eth2的地址

echo "1">/proc/sys/net/ipv4/ip_forward ///打开路由转发

echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv4/tunnel4.ko

insmod /lib64/modules/2.6.30-gentoo-r8/kernel/net/ipv6/sit.ko

ip tunnel add isatap0 mode isatap remote 192.168.1.122 local 192.168.1.133  //建立隧道

ip link set isatap0 up

echo "0" > /proc/sys/net/ipv6/conf/all/disable_ipv6

ip addr add 3ffe:ffff:1234:5678::5efe:192.168.1.133/64 dev isatap0

ip -6 route add 3ffe::/16 via 3ffe:ffff:1234:5678:0:5efe:c0a8:17a dev isatap0

ip -6 route del 3ffe:ffff:1234:5678::/64

3.在主机PC1上设置如下:

iptables -F

setenforce 0

#ifconfig ens19 add 3ffe:ffff:1234:9010::2:2/64

ip -6 route add 3ffe::/16 via 3ffe:ffff:1234:9010::2:1/64 dev ens19

  1. 在主机PC2上设置如下:

iptables -F

setenforce 0

#ifconfig ens19 add 3ffe:ffff:1234:7890::2:2/64

ip -6 route add 3ffe::/16 via 3ffe:ffff:1234:7890::2:1/64

 dev ens19

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu下,verdi语法错误Syntax error: “(“ unexpected

【问题】/home/EDA_TOOLS/synopsys/verdi/verdi/Verdi_O-2018.09-SP2/bin/verdi: 56: /home/EDA_TOOLS/synopsys/verdi/verdi/Verdi_O-2018.09-SP2/bin/verdi: Syntax error: "(" unexpected 【解析】 代码对于标准bash而言没有错,因为Ubuntu/Debian为了加…

【二分查找】35. 搜索插入位置

35. 搜索插入位置 解题思路 使用二分查找算法当找到元素之后直接返回位置即可当没找到元素&#xff0c;将该元素插入到left位置即可 class Solution {public int searchInsert(int[] nums, int target) {// 二分查找int left 0;int right nums.length - 1;while(left < …

二叉树的简单遍历

假设节点数据类如下&#xff1a; public class TreeNode {String val;TreeNode left;TreeNode right;TreeNode() { }TreeNode(String val) {this.val val;}TreeNode(String val, TreeNode left, TreeNode right) {this.val val;this.left left;this.right right;} } 二叉…

Android Java代码与JNI交互 引用类型转换(五)

🔥 Android Studio 版本 🔥 🔥 Java中基础数据类型对应Native的数据类型 🔥 * Java中基础数据类型对应Native中的数据类型* |Java |Native |* |boolean |jboolean |* |byte |jbyte |* |short |jshort |* |int |jint |* |long…

【Vscode】解决 An SSH installation couldn‘t be found

【Vscode】解决 An SSH installation couldn‘t be found 背景描述&#xff1a;在vscode中使用ssh进行连接到时候&#xff0c;已经安装了ssh romote的plugin插件&#xff0c;但是在输入了ssh连接命令之后&#xff0c;仍然出现报错&#xff1a;an ssh installation could not be…

music21 层级解析(了解次结构方可将任意曲谱与mid互相转换)

这段代码创建了一个音乐乐谱并将其保存为 MIDI 文件&#xff0c;其中包含一个乐器和多个小节。每个小节中包含四个音符或和弦&#xff0c;然后将小节添加到乐谱中。最后&#xff0c;将乐谱写入 MIDI 文件。 首先&#xff0c;通过导入 music21 库来使用它的功能。 import music2…

基于.Net Core实现的飞书所有文档一键导出服务(支持多系统)

feishu-doc-export 一个支持Windows、Mac、Linux系统的飞书文档一键导出服务&#xff0c;仅需一行命令即可将飞书知识库的全部文档同步到本地电脑。导出速度嘎嘎快&#xff0c;实测700多个文档导出只需25分钟&#xff0c;且程序是后台挂机运行&#xff0c;不影响正常工作。 动…

用html+javascript打造公文一键排版系统4:一级标题排版

完成公文标题的排版后&#xff0c;我们要进行对正文中的标题进行处理。 一般正文中的标题分为四级&#xff0c;文中结构层次序数依次可以用“一、”“&#xff08;一&#xff09;”“1.”“&#xff08;1&#xff09;”标注&#xff1b;一般第一层用黑体字、第二层用楷体字加粗…

《UNUX环境高级编程》(8)进程控制

1、引言 2、进程标识 每个进程都用一个唯一的非负整数标识&#xff0c;即为进程id&#xff1a;pid。进程ID是可以复用的&#xff0c;当一个进程终止时&#xff0c;其进程ID就可以用来标识其他进程。系统中有一些专用进程&#xff1a; 进程ID为0的是调度进程&#xff0c;也称交…

lua 请求ftp服务器数据,下载文件

1、装入ftp库 2、调用ftp的get()方法 3、get()方法参数格式&#xff1a; 4、将返回到的数据写入文件中 例如&#xff0c;本次获取专利数据系统 http://patdata1.cnipa.gov.cn/ 的ftp站点数据 local ftp require("socket.ftp")--此处我没填端口号 file,err ftp.g…

postgrep 9.4 断电后启动不了

journalctl -xe1、问题1&#xff1a;pg_ctl: another server might be running pg_ctl: another server might be running 解决方法&#xff1a;删除原来没有删除的pid文件 rm /opt/PostgreSQL/9.4/data/postmaster.pid 2、问题2 postgres文件丢失 - Unit postgresql-9.4.ser…

使用echarts+echarts-gl绘制3d地图,实现地图轮播效果

记录一下大屏开发中使用到的echarts-gl大屏的页面根据需求前前后后改了几个版本了&#xff0c;地图的样式也改了又改这里记录一下&#xff0c;因为echarts属性用到的比较多也比较杂&#xff0c;防止以后需要用到忘记了 目录 初始效果 效果图&#xff1a; 适应大屏风格的发光…