网站到网站的OpenVPN和pfSense不通过stream量的麻烦

我试图在embedded式路由器上运行pfSense 1.2.3-RELEASE来获得OpenVPN隧道

我有一个本地局域网10.34.43.0/254。 远程LAN是10.200.1.0/24。 本地pfSense被configuration为客户端,远程configuration为服务器。

我的OpenVPN隧道在内部使用IP范围10.99.89.0/24。 还有一些额外的局域网通过隧道路由,但问题不在于那些,因为我的连接失败之前,链中的点。

隧道很好,日志看起来很健康。 我发现的是这样的:

  • 我可以通过ping本地telnet远程局域网和本地pfSense盒子的其他远程局域网。
  • 我无法ping通或telnet到本地networking的任何远程局域网。
  • 我无法从远程LAN或远程pfSense盒的shellping或telnet到本地networking。
  • 如果我双击tun接口并从本地局域网ping,我看到数据包在本地点击隧道,但是它们不出现在远程端(如果我使用tcpdump,它们也不会出现在远程局域网接口上)。
  • 如果我双击tun接口并从本地pfSenseshellping,我看到数据包本地命中隧道,并退出远程端。 我也可以tcpdump远程局域网接口,看看他们也通过那里。
  • 如果我tcpdump Tun接口两侧,并从远程pfSenseshellping,我看到数据包击中远程tun,但他们不出现本地。

这里是远程端使用的configuration文件:

#user nobody #group nobody daemon keepalive 10 60 ping-timer-rem persist-tun persist-key dev tun proto udp cipher BF-CBC up /etc/rc.filter_configure down /etc/rc.filter_configure server 10.99.89.0 255.255.255.0 client-config-dir /var/etc/openvpn_csc push "route 10.200.1.0 255.255.255.0" lport <port> route 10.34.43.0 255.255.255.0 ca /var/etc/openvpn_server0.ca cert /var/etc/openvpn_server0.cert key /var/etc/openvpn_server0.key dh /var/etc/openvpn_server0.dh comp-lzo push "route 205.217.5.128 255.255.255.224" push "route 205.217.5.64 255.255.255.224" push "route 165.193.147.128 255.255.255.224" push "route 165.193.147.32 255.255.255.240" push "route 192.168.1.16 255.255.255.240" push "route 192.168.2.16 255.255.255.240" 

这是本地configuration: –

 writepid /var/run/openvpn_client0.pid #user nobody #group nobody daemon keepalive 10 60 ping-timer-rem persist-tun persist-key dev tun proto udp cipher BF-CBC up /etc/rc.filter_configure down /etc/rc.filter_configure remote <host> <port> client lport 1194 ifconfig 10.99.89.2 10.99.89.1 ca /var/etc/openvpn_client0.ca cert /var/etc/openvpn_client0.cert key /var/etc/openvpn_client0.key comp-lzo 

您可以在这里http://pastie.org/5365800查看从pfSense中提取的路由表的相关部分

本地防火墙允许来自局域网的所有ICMP,并且我的PC可以在任何地方被允许。 远程防火墙将其LAN视为可信,并允许该接口上的所有stream量。

任何人都可以提出为什么这不工作,我可以尝试下一步?

使用SSL / TLS站点到站点VPN,您需要服务器上的路由,以及客户端特定的覆盖中的路由器。 这里的描述听起来像是你缺less这个iroute。 与共享密钥不同,服务器上的路由就足够了。 对于这样的VPN,服务器上的路由将该stream量发送到特定的OpenVPN实例,并且其内部路由通过路由器必须知道哪个客户端路由该特定networking。

在VPN> OpenVPN,客户端特定覆盖选项卡上,添加一个新条目。 对于“通用名称”,请从客户端的证书中放入CN。 在高级框中,填写“iroute 10.34.43.0 255.255.255.0”(无引号)。 将其余部分保留为默认值,单击保存。 从客户端系统上的状态>服务重新启动OpenVPN客户端,一旦它重新连接,它应该工作,如果它确实是缺less的iroute。