零入门kubernetes网络实战-24->介绍开源社区提供的tun案例
创始人
2025-05-31 14:16:29
0

《零入门kubernetes网络实战》视频专栏地址

https://www.ixigua.com/7193641905282875942

本篇文章视频地址(稍后上传)


上一篇文章我们提供了一个helloworld级别的基于tun设备的点对点vpn参考案例。

而这篇文章我们介绍一个开源社区提供的点对点的VPN,稍微复杂了一点。

1、参考案例官网

https://github.com/net-byte/vtun

2、vtun跟我们提供的helloworld级别的案例的核心区别在那里?

  • 在helloworld的案例中
    • 比方说,从/dev/net/tun读取数据包后,
    • 直接将数据包通过本地的UDP服务发送到了对端UDP服务了。
    • 中间没有对数据包做任何的修改
  • 而在vtun里,从/dev/net/tun读取数据包后,对数据包做了一些其他操作:
    • 加密
    • 压缩
    • 过滤
      等等

3、vtun功能介绍

这是一款简易用的VPN,
支持以下协议:

  • 支持UDP
  • 支持websocket
  • 支持tls
  • 支持grpc

我们重点分析的是UDP协议

4、vtun核心代码说明

我们只分析udp模式下的,客户端代码。

服务器端核心逻辑跟客户端是一样的。

4.1、tunToUdp函数逻辑

在这里插入图片描述

4.2、udpToTun函数逻辑

在这里插入图片描述

5、本次测试目的

是否能够实现将客户端上的所有请求流量转发到服务器端。

6、测试环境说明

本次我们只测试vtun的udp模式;

linux下客户端启动vtun时,分为两种情况:

  • 仅转发tun网络的请求
  • 转发客户端上的所有请求

在centos环境下测试:

  • 客户端IP:10.211.55.122
  • 服务器端IP:10.211.55.123

7、如何编译

7.1、如何编译vtun

7.1.1、先看一下scripts目录下的build.sh脚本

大家根据自己的实际情况进行修改!

在这里插入图片描述

7.1.2、开始编译

我是根据自己的习惯,编写了Makefile文件,供大家参考

build:./scripts/build.shscp:scp bin/* root@10.211.55.122:/rootscp bin/* root@10.211.55.123:/rootall:make build && make scp

在这里插入图片描述

7.2、vtun启动方式介绍

vtun可以在Linux、MacOS、window平台下启动。

vtun可以支持转发tun网络的请求,也可以支持宿主机上的所有请求

在这里插入图片描述

7.3、登录到客户端,并启动服务

./vtun-linux-amd64 -l :3000 -s 10.211.55.123:3001 -c 172.16.0.10/24 -k 123456 -g

在这里插入图片描述

如果你不想测试转发所有流量的话,去掉-g即可将10.211.55.123改成自己的实际服务器端IP

7.4、登录到服务器端,并启动服务

./vtun-linux-amd64 -S -l :3001 -c 172.16.0.1/24 -k 123456

在这里插入图片描述

8、测试网络连通性

8.1、先在客户端一侧,ping服务器端一侧的虚拟网络设备tun0

ping 172.16.0.1 

在这里插入图片描述

8.2、在服务器端一侧,对eth0进行抓包分析

tcpdump -nn udp  -i eth0

在这里插入图片描述

注意,是UDP协议,而非ICMP协议。

8.3、在服务器端一侧,对tun0网卡进行抓包分析

tcpdump -nn -i tun0

在这里插入图片描述

很遗憾,非常准确的原因,目前没有查出来。

但是,也有一个解决办法;

8.4、解决转发客户端所有流量失败的措施?

在这里插入图片描述

8.5、重新编译,上传客户端,服务器端,重新启动服务

这里只展示了客户端的启动过程,服务器端跟以前一样,不再重复展示了。

./vtun-linux-amd64 -l :3000 -s 10.211.55.123:3001 -c 172.16.0.10/24 -k 123456 -g

在这里插入图片描述

8.6、在客户端上,测试是否能够ping通服务器端上的tun0设备?

8.6.1、先在服务器端上验证一下tun0的相关信息

ip a s tun0ethtool -i tun0

在这里插入图片描述

8.6.2、登录到客户端上ping 服务器端的tun0虚拟网卡

ping 172.16.0.1 

在这里插入图片描述

这里验证了ICMP协议,

而TCP协议就不在具体展示了,是可以的。

8.7、在客户端上,测试一下,随便ping一个网络,是否能将客户端的流量转发到了服务器端上?

8.7.1、在客户端上,随便ping一个网络

ping 10.10.10.10

在这里插入图片描述

8.7.2、在服务端上,对eth0,tun0进行抓包分析

在这里插入图片描述

9、简单总结一下,转发客户端上所有流量的原理?

一个数据包是去走哪个网络,是根据路由表来决定的。

路由表里有多条路由,一条路由,代表一个网络。具体如何选择,大家可以详细研究一下。

至少新增了一条默认路由,也就是说当数据包不知道走哪条路由时,就会走默认路由

而通向默认路由的网卡设备就是tun0。

这样的话,至少转发了默认路由的流量。

如果是本机内部的流量是不用转发的。

如果是非本机的非默认路由流量的话,并没有测试。

在这里插入图片描述

10、总结

分享vtun主要是为大家提供了一个稍微复杂点的案例。

可以对从/dev/net/tun文件里读取到的数据包进行二次加工,

对加工后的数据,

再通过UDP链接发送出去。

最后,又重点分析了一下如何实现转发客户端的所有流量的功能。

11、学习心得分享

其实,在学习tun设备的过程中,网上关于go语言版本的tun编程还是比较少的。

大部分都是c,c++,python的

因此,类似的情况,大家可以在github里,搜索相关内容。

通过关键词搜索,比方说,tun tap vpn

在这里插入图片描述

将搜到的代码下载到本地,使用goland,idea等编辑打开,

使用全局搜索方式,查看是否有自己感兴趣的代码。
在这里插入图片描述


<<零入门kubernetes网络实战>>技术专栏之文章目录


相关内容

热门资讯

“龙腾端午·梧现精彩”非遗好市... 6月1日,由梧州市文化广电体育和旅游局主办的“龙腾端午·梧现精彩”非遗好市在梧州市西堤公园持续开展。...
上海海派旗袍文化节开幕,推出3... 静态展览,动态走秀,互动体验……6月1日,“旗韵绽芳华”——6·6上海海派旗袍文化节在张园拉开帷幕。...
华程国旅推出“欧洲循环巴士游” 英国当地时间5月27日下午,华程国旅集团TRIP2EU“欧洲循环巴士游”发布会伦敦站在伦敦千禧酒店举...
原创 6... “来来来,尝尝我们厂的窑鸡,特意给你加的菜!”何家劲笑容满面,将一整盘热腾腾的窑鸡推到黄日华面前。 ...
原创 以... #优质好文激励计划# “以前人人爱吃的小龙虾,为啥现在不火了?内行:4个原因很难改变” 家人们,谁...
吉木萨尔县第三届厦吉文化美食汇... 5月31日,为期3天的“百味醉天山 闽疆共飨宴”昌吉州旅游文化美食节系列活动之吉木萨尔县第三届厦吉文...
去四川旅游攻略当地团五天四晚要... 标题:去四川旅游攻略当地团五天四晚要花多少钱,驴友亲测!跟着乐乐玩转四川 四川旅游推荐!当地导游-乐...
上海迪士尼游客打架,属地部门:... 上海市公安局浦东分局官方微博6月1日消息,5月31日18时许,浦东公安分局接报警称迪士尼乐园内有人打...
“去中国要带空箱子!”在国外传... 随着“中国游”的便利性和吸引力不断上升,游在中国、购在中国成为越来越多国际游客的新选择 。 最近,“...
重庆家常美食菜谱,地道风味,轻... 重庆家常美味菜谱是一本介绍重庆地道美食的烹饪书籍,本书通过简单易懂的方式,呈现地道的重庆风味菜肴,读...
原创 退... 那年重庆的夏天,热气把整座城市蒸得发软。我蹲在石桥铺数码城门口滚烫的水泥台阶上,后背的汗淌成小河,渗...
武汉卤味:鸭脖配酒越嚼越有,这... 在武汉的街头巷尾,飘着一种让人走不动道的香味,老卤炖出来的鸭脖味儿,混着点啤酒的麦芽香,光是闻着就忍...
清谈菜谱,简单美食的魅力深度探... 清谈菜谱带你探索简单美食的魅力,赏析烹饪的艺术,本书强调食材的天然之美,以简洁的烹饪方式展现食材的原...
原创 最... “人老珠黄”这话真扎心!眼瞅着镜子里的自己——头发一把把掉,发缝宽得能插秧;眼睛干得像撒哈拉沙漠,看...
节假日胖东来吸引大量外地游客,... 极目新闻记者 詹钘 端午假期,河南许昌胖东来持续火爆,吸引了大量外地游客。6月1日,有许昌当地出租车...
乡村舞台变身奇幻乐园,“童梦奇... 6月1日,“童梦奇缘 乐在桦墅”金陵艺术村落六一主题活动,在栖霞区桦墅村如约启幕。这座掩映在青山绿水...
刚刚!上海警方通报迪士尼打架事... 据@警民直通车-浦东 通报:5月31日18时许,浦东公安分局接报警称迪士尼乐园内有人打架。经初步调查...
3600亿打造最难修的铁路,川... 随着5月21日拉萨-林芝铁路扩能改造项目的招标公告发布,川藏铁路的建设步伐愈加加速。乍一看,这似乎是...
【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...