我尝试在两个 ipfire 路由器之间建立互联网连接,并在两者上安装了 OpenVPN。r3 是服务器,r1 是客户端。
它几乎可以正常工作。首先,启动“服务器”:以下是我认为最相关的日志行:
Jul 5 18:44:24 r3 openvpnserver[23717]: OpenVPN 2.3.18 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Nov 3 2017
Jul 5 18:44:24 r3 openvpnserver[23717]: library versions: OpenSSL 1.0.2m 2 Nov 2017, LZO 2.09
[...]
Jul 5 18:44:24 r3 openvpnserver[23718]: TUN/TAP device tun0 opened
Jul 5 18:44:24 r3 openvpnserver[23718]: TUN/TAP TX queue length set to 100
[...]
Jul 5 18:44:24 r3 openvpnserver[23718]: /sbin/ip link set dev tun0 up mtu 1400
Jul 5 18:44:24 r3 openvpnserver[23718]: /sbin/ip addr add dev tun0 local 10.0.13.1 peer 10.0.13.2
Jul 5 18:44:24 r3 openvpnserver[23718]: /sbin/ip route add 10.0.13.0/24 via 10.0.13.2
[...]
Jul 5 18:44:24 r3 openvpnserver[23718]: Listening for incoming TCP connection on [undef]
Jul 5 18:44:24 r3 openvpnserver[23718]: TCPv4_SERVER link local (bound): [undef]
Jul 5 18:44:24 r3 openvpnserver[23718]: TCPv4_SERVER link remote: [undef]
Jul 5 18:44:24 r3 openvpnserver[23718]: MULTI: multi_init called, r=256 v=256
Jul 5 18:44:24 r3 openvpnserver[23718]: IFCONFIG POOL: base=10.0.13.4 size=62, ipv6=0
Jul 5 18:44:24 r3 openvpnserver[23718]: MULTI: TCP INIT maxclients=100 maxevents=104
Jul 5 18:44:24 r3 openvpnserver[23718]: Initialization Sequence Completed
第一个问题出现了:为什么IFCONFIG POOL: base=10.0.13.4
?我没有在任何地方设置它。
然后我在 r1 上启动客户端,这里是 r3 上的日志:
Jul 5 19:25:50 r3 openvpnserver[23718]: TCP connection established with [AF_INET]<r1'IP>:1194
[...]
Jul 5 19:25:51 r3 openvpnserver[23718]: <r1'IP>:1194 WARNING: 'ifconfig' is present in remote config but missing in local config, remote='ifconfig 10.0.13.1 10.0.13.2'
[...]
Jul 5 19:25:51 r3 openvpnserver[23718]: r1.FQDN/<r1'IP>:1194 MULTI_sva: pool returned IPv4=10.0.13.6, IPv6=(Not enabled)
Jul 5 19:25:51 r3 openvpnserver[23718]: r1.FQDN/<r1'IP>:1194 MULTI: Learn: 10.0.13.6 -> r1.FQDN/<r1'IP>:1194
Jul 5 19:25:51 r3 openvpnserver[23718]: r1.FQDN/<r1'IP>:1194 MULTI: primary virtual IP for r1.FQDN/<r1'IP>:1194: 10.0.13.6
所以我不明白:基本 IP 是 10.0.13.4(不知道它来自哪里)并且现在对等 IP 是...... MULTI_sva: pool returned IPv4=10.0.13.6
?
同时,tun0 上的链接位于 10.0.13.1 和 10.0.13.2 之间。
因此路由被中断,尽管连接已建立并经过验证,但我无法在两个内部子网(192.168.1.0/24 和 .2.0/24)之间路由流量。
哪里错了?VPN 两端的 IP 难道不应该是 10.0.13.1 和 10.0.13.2 吗?
@IP 13.4 或 13.6 从哪里来?
答案1
虽然我仍然不明白这些地址来自哪里,但 OpenVPN 支持论坛上有人告诉我使用topology subnet
配置中的选项。
此选项的默认值(不推荐使用)(请参阅https://github.com/OpenVPN/openvpn/blob/master/sample/sample-config-files/server.conf) 是net30
为了支持一些旧的 Windows 客户端。
(任何与 Windows 相关的事情都会导致意外的结果,所以我不再感到惊讶)
然而 IPFire 没有选项可以配置这一点,所以我想它应该在没有这个选项的情况下工作,但这是另一个问题。