写入 tun 接口并将流量转发到另一台计算机

写入 tun 接口并将流量转发到另一台计算机

我有以下设置。机器上的应用程序A创建一个IP由接口捕获的数据包tun1。我使用以下命令添加了路由:

sudo route add -host 10.129.131.220 tun1

在此处输入图片描述

然后我从文件描述符中读取数据包tun1,并将其写入另一个UDP具有目标地址的客户端套接字B。我可以B在机器上读取数据包。我在tshark机器上进行了验证B,其中tshark显示了以下类型的输出。

1 0.000000000 10.129.131.170 → 10.129.131.220 UDP 51 34611 → 8080 Len=23以及更多类似的行。

现在我想将这些数据包路由到机器 C(实际目标机器)。我在机器上IP创建了一个接口,并将接收到的数据包写入机器。写入成功并显示值递增。tun1BBwatch -n 1 "ifconfig tun1"RX packets

B我已经通过设置启用了机器中的数据包转发

echo 1 > /proc/sys/net/ipv4/ip_forward

我的问题是,如何在机器中正确添加转发规则,B以便IP packets路由到机器而C无需添加更多IP标头。我认为再次写入tun1设备(在 B 上)可能会起作用。但如何从路由tun1eth0

更新 :

一种转发方式是在rp_filter关闭的情况下进行。 在此处输入图片描述

现在,如何将下行数据包从机器路由CAvia B

谢谢!

相关内容