I know this is an old post but it is directly relevant to my needs.
I've had a hub and spoke pfsense/openvpn for years but only using the basic config fields with no advanced 'push' or 'iroute' commands. For the most part routing works but sometimes there are issues and I'm wondering if this is a better way.
For reference my current setup is detailed in a recent post:
OpenVPN hub and spoke with AD/DNS on spoke
I'd like to try the configuration suggested in this thread but I don't have the luxury of changing to contiguous subnets - I have 5 spokes and their subnets are all over the place (mix of 192.168.x.x, 172.x.x.x & 10.x.x.x).
Therefore I'd like to understand if I have the config right in this case. Looking at the OP's original subnets, I'm wondering if the following config would have worked. I've added a third spoke for completeness. The only tweaks are in the server's IPv4 Remote Network/s field, the server's advanced 'push' commands, and the CSO 'iroute' commands.
OpenVPN Server:
LAN: 192.168.248.0/24
Tunnel: 172.16.0.0/24
Client A: 192.168.246.0/24
Client B: 192.168.249.0/24
Client C: 172.27.30.0/24
OpenVPN Server Config:
Server Mode: Peer to Peer ( SSL/TLS )
Protocol: UDP
Device Mode: tun
Interface: WAN
Local port: 1194
IPv4 Tunnel Network: 172.16.0.0/24
IPv6 Tunnel Network: blank
Redirect Gateway: blank
IPv4 Local Network/s: 192.168.248.0/24
IPv6 Local Network/s: blank
IPv4 Remote Network/s: 192.168.246.0/24,192.168.249.0/24,172.27.30.1
IPv6 Remote Network/s: blank
Compression: No preference
Type-of-Service: blank
Duplicate Connections: blank
Disable IPv6: blank
Advanced configuration:
push "192.168.246.0 255.255.255.0";
push "192.168.249.0 255.255.255.0";
push "172.27.30.1 255.255.255.0";
Client Specific Override
Client A:
Common name: (matching with certificate name)
Tunnel Network: blank
IPv4 Local Network/s: blank
IPv6 Local Network/s: blank
IPv4 Remote Network/s: blank
IPv6 Remote Network/s: blank
Redirect Gateway: blank
Advanced:
iroute 192.168.249.0 255.255.255.0;
iroute 172.27.30.1.0 255.255.255.0;
Client B:
Common name: (matching with certificate name)
Tunnel Network: blank
IPv4 Local Network/s: blank
IPv6 Local Network/s: blank
IPv4 Remote Network/s: blank
IPv6 Remote Network/s: blank
Redirect Gateway: blank
Advanced:
iroute 192.168.246.0 255.255.255.0;
iroute 172.27.30.0 255.255.255.0;
Client C:
Common name: (matching with certificate name)
Tunnel Network: blank
IPv4 Local Network/s: blank
IPv6 Local Network/s: blank
IPv4 Remote Network/s: blank
IPv6 Remote Network/s: blank
Redirect Gateway: blank
Advanced:
iroute 192.168.246.0 255.255.255.0;
iroute 192.168.249.0 255.255.255.0;
Any comments or advice is very much appreciated.