如何在Tun设备和eth0之间转发流量?

您所在的位置:网站首页 eth服务器转发 如何在Tun设备和eth0之间转发流量?

如何在Tun设备和eth0之间转发流量?

2023-07-11 05:32| 来源: 网络整理| 查看: 265

总之,我希望通过另一个具有互联网连接的网络接口来回转发Tun设备流量。虽然我可以看到流量传输到互联网并返回,但它不会路由回我的Tun设备。

这是我的设置:

我有一个非常简单的设置,使用VirtualBox下的Mint Linux 15 VM,Win7作为主机。

在VM中,有两个网络接口 - eth0和tun0。

eth0接口连接到Internet,分配为192.168.1.115/24。

tun0接口被指定为10.0.5.1/24。

ip tuntap add dev tun0 mode tun user askldjd ip link set tun0 up ip addr add 10.0.5.1/24 dev tun0

我设置了我的iptables规则来伪装通过eth0发出的所有流量。

iptables -I FORWARD -i tun0 -o eth0 -s 10.0.5.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

我用简单的方法测试了规则ping -I。所以在某种程度上,我的iptable规则正在运行。

ping -I 10.0.5.1 google.com PING google.com (74.125.228.65) from 10.0.5.1 : 56(84) bytes of data. 64 bytes from iad23s07-in-f1.1e100.net (74.125.228.65): icmp_req=1 ttl=55 time=7.46 ms

我的下一步是创建一个ICR请求数据包,其中src = 10.0.5.1,dst = 74.125.228.6(google.com)。这是通过tcpdump捕获完成的,所以我知道数据包字段/校验和都是有效的。我使用一个非常简单的Python脚本将此数据包发送到原始IP套接字。

Python的send_packet.py:http://pastebin.com/Xh5YgsAx

在运行python脚本之前,我设置了tshark来监视eth0和tun0。

tshark -i eth0 tshark -i tun0

然后我运行脚本。从tshark控制台,我可以看到ICMP请求发出,ICMP回复从谷歌回来。

1811.947250 192.168.1.115 -> 74.125.228.6 ICMP 98 Echo (ping) request id=0x0990, seq=1/256, ttl=64 1811.955146 74.125.228.6 -> 192.168.1.115 ICMP 98 Echo (ping) reply id=0x0990, seq=1/256, ttl=55

从tun0 tshark窗口,我什么也看不见。

在我看来,由于ICMP请求数据包被设置为source = 10.0.5.1,我希望IPTable在它返回时取消ICMP Reply。这不会发生。

所以我的IPTables设置不正确,或者我只是误解了Tun设备的概念。任何指导将不胜感激。

如果我滥用任何术语,我会道歉。当它涉及网络时我是新手。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3