Ok, I’m pretty sure I finally figured out what the problem is. You truly do learn something new every day in this business.
Turns out that when I specified server-bridge (no arguments), and it was supposed to use the DHCP server of the remote network, the DHCP server was NOT responding. And looking more closely at the OpenVPN docs, I do see this:
If --server-bridge is used without any parameters, it will enable a DHCP-proxy mode, where connecting OpenVPN clients will receive an IP address for their TAP adapter from the DHCP server running on the OpenVPN server-side LAN. Note that only clients that support the binding of a DHCP client with the TAP adapter (such as Windows) can support this mode.
So since the router is a Linux client, I assume that’s why DHCP wasn’t working. The only configuration that works under Linux (at least for me) is a complete server-bridge directive and arguments.
server-bridge 192.168.66.1 255.255.255.0 192.168.66.240 192.168.66.249
That one simple oversight led to this entire chain of events.
Still, even if the OpenVPN client failed to initialize w/ IP, that shouldn’t have caused this bizarre behavior. Technically, I shouldn’t even have to initialize IP on a bridge. And my own usage of it demonstrates this. It wasn’t as if the tunnel wasn’t usable. But OpenVPN just goes haywire if it fails to initialize the tunnel w/ IP. Then you get this nonsensical stripping of the gateway IP from any subsequent DHCP request that happen across the tunnel.
And I know I’m not alone:
https://forums.openvpn.net/topic13814.html
As the OP of that of that link said, what if you don’t know ahead of time the IP network you may be connecting to, or even if you do, you don’t want to be self-assigning static IPs from someone else network; that’s sure to cause problems.
Anyway, perhaps all this will help someone in the future. I just know I’m not the first or the last to run into it.