ssh ipv6 linux,20191211 Linux系统下IPV6 over IPV4隧道建立

最近,懒得去实验室,想在宿舍调试开发板。宿舍网络办的联通宽带,有ipv6地址,实验室也有ipv6地址,可以通过ssh连接。

然而,某个FPGA开发软件似乎不支持通过IPV6地址远程调试,输入IPV6地址会显示未知主机。于是乎,我就试图寻找一种方法,顺便学习一下,如何让目前已有不支持IPV6协议的软件工作在IPV6协议下。

老师听了我的描述,说可以使用ssh端口转发功能。也就是说,服务端开启ssh端口转发,监听ipv6上的端口,转发到本地ipv4端口上,客户端同理,这听起来似乎可行,但是以后对于每一个软件都要开启特定的端口,感觉可能会很麻烦。

搜索资料,发现一种方法叫做建立IPIP6隧道,意思是将IPV4的数据包包裹在IPV6数据包中。值得一提的是,现在IPV6据说还是一个个网络孤岛,有些IPV6网络似乎是将IPV6数据包包裹在IPV4数据包里头的(套娃)。如果不考虑大量数据传输,如果不考虑网络安全,似乎是一种可行的方法。

目标是这样的,搭建一个地址为192.168.2.x的ipv4网络,以区别于宿舍内网的192.168.1.x,图大概如下:

20191211222812021665.png

网上一些资料的拓扑图在每个Host前还画了个Router,这里似乎不太需要的样子,因为电脑本身可以实现路由的功能嘛。

俩电脑都是Linux系统,内核高于2.6,带有ip6_tunnel模块。

# 这些命令基本上都需要root权限,至少需要网络管理的权限吧,sudo走起

# 安装ip6_tunnel模块

modeprobe ip6_tunnel

# 增加一个ipip6隧道,名称为tun0,需要准确的远端地址和本地地址,本地地址不能填写::1(原因实在不懂)

ip -6 tun add tun0 mode ipip6 remote 远端IPV6地址 local 本地IPV6地址

# 开启tun0这个隧道

ip link set tun0

# 为tun0增加ip地址,自行规划的地址

ip addr add 规划的本地IPV4地址 dev tun0

# 设置路由表,发往这个地址的数据包从tun0隧道走,后面的32表示子网掩码

# 其中,32表示当且仅当地址是远端目标的时候从隧道走

# 如果是24,表示发往192.168.2.XXX一片地址都从隧道走

ip route add 规划的远端IPV4地址/32 dev tun0

# 刷新路由表,立刻生效(似乎不这么做也行)

iptables -F

最后,使用ping等命令测试一下是否能够连通。

经过这么增加隧道路由规则,那个只支持IPV4的开发软件终于可以远程调试了。又能继续当咸鱼了。

附注:这个方法还是存在麻烦的地方:IPV6地址大概每隔一段时间就会改变,因此,需要搭配一个域名和自动更新的脚本使用。

感谢IPV6,没有公网IP也能偷懒了。

20191211

原文:https://www.cnblogs.com/AmnesiaBeing/p/12025229.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值