如何在Tun设备和eth0之间转发流量? |
您所在的位置:网站首页 › eth服务器转发 › 如何在Tun设备和eth0之间转发流量? |
总之,我希望通过另一个具有互联网连接的网络接口来回转发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 |