利用Ubuntu主机实现跨网代理

目前已知test1的ens33端口为10.245.254.185/24位子网,现在可见二层ARP表里面只有同网段邻居且不能与172/24联络
现在目标为:利用test2主机的双网卡实现流量转发与test3主机联络(去程路由与回程路由)
(在实际应用中,服务器可处于非信任区,挂一些实用软/硬件系统,如开源堡垒机,流控系统,VPN服务器或一些科学插件等,精细化流量分配,最终实现省钱和实用的目的,但具有高保密性企业这么做肯定不会合规)

如图所示ens37为172.30.1.129/24上面的ens33为10.245.254.102现在test2主机可联络10段test1与172段test3

如图所示test3主机为NAT网络172/24网段,现在的测试为直接联络10段内网主机可以直接联络,route get(另外提一嘴,尝试过traceroute,估计是基于安全防止虚拟机逃逸,共计30跳都是***)后是通过172.30.1.2目前所查询到的信息是WMwear自动创建了一个网卡用来联络10网段。目前属于test3有去包与回包,但是是通过172.30.1.2来实现的去包与回包,现在需要实现test1的10/24网络使用test2进行中转联络172/24
至此实验环境搭建完成,下面开始实现

在test1中,先设置,route add -net 172.30.1.0/24 gw 10.245.254.102 //如果:数据为去到172.30.1.0的网络位 ,则:去到网关为10.245.254.102的主机

在test2中遇到了一点坑,毕竟是ubuntu不是专业路由器,转发路由需要单独改/etc/systcl.conf里面的net.ipv4.ip_forward值为1开启转发,这个后来才知道,对于网络这块平时用的最多的也就是/etc/netplan/看来要实现更多功能的话,需要把服务器设置为出口路由或者外挂旁路,感谢ChatGPT的专业解答。

在test3中依旧使用route add -net 10.245.254.0/24 gw 172.30.1.129/24来添加回程路由,上图可见,现在使用traceroute已经可以看到通过129主机转发了数据包,但这从理论上也就出现了虚拟机逃逸的风险
下图为实验结果

此图可见test1所有流量被“劫持”到中间人网卡并且转发到目标主机,实现跨网段通信
另外如果需要进行其他实验的话最好systemctl restart network清一下静态路由表,这样实验环境干净省事。