问题描述:
当我在VPN客户端和我的主服务器之间建立VPN连接时,如果连接是跨防火墙(pfSense)的,或者是直接建立的,那么连接就可以了。
但是,如果VPN客户端直接与家庭服务器建立连接,并且响应通过我的防火墙pfSense,则VPN服务器不会将数据包从局域网接口(eth0)路由到VPN接口(tun0)。
你知道为什么吗?
第一个示例OK :具有两个直接连接:
Go : VPN客户端=> VPN服务器=>家庭服务器
返回:家庭服务器=> VPN服务器=> VPN客户端
第二个示例OK :使用两个连接accros防火墙(pfSense):
Go : VPN客户端=> VPN服务器=>防火墙pfSense =>家庭服务器
返回:家庭服务器=>防火墙pfSense => VPN服务器=> VPN客户端
第三个示例不确定:开始使用直接连接,后端使用accros防火墙(pfSense):
Go : VPN客户端=> VPN服务器=>家庭服务器
返回:家庭服务器=>防火墙pfSense => VPN服务器=> VPN客户端
家庭服务器: 192.168.100.50
防火墙pfSense : 192.168.100.20
VPN服务器: 192.168.100.40 (接口: eth0)和10.8.0.1 (接口: tun0)
VPN客户端: 10.8.0.6
注意:在第一个和第二个例子中,当我执行tcpdump时,我看到了eth0和tun0上的返回包。但在第三节中,我没有看到tun0上的返回包,而只在eth0中看到返回包。
假设:这就像如果包是从不同的设备返回时被丢弃的。
谢谢。
发布于 2015-04-27 20:52:36
解决了!
只需添加一个“浮动规则”。在此规则中,在"State type“中选择"none”。
"none“是一种系统:”不要使用状态机制来跟踪。只有在某些情况下进行高级队列时才有用。请检查文档。“
事实上,pfSense丢弃数据包是因为它之前没有收到"SYN“标志。当网络遵循非对称路由时,这是一个基本的问题,也是一个常见的问题。
https://unix.stackexchange.com/questions/198724
复制相似问题