I have an OpenVPN 2.4.6 server with both 2.3 and 2.4 clients in the field. Currently lzo compression is configured on the server and clients via their respective options in their config files.
I want to disable compression without having to recall all of the clients. To that end I have configured my server with
# Disable compression
compress
Which should disable compression of the server side.
By using a client-connect script and inspecting the IV_VER environment variable (or lack thereof) I can determine the client version and if I need to push 'compress' or ' comp-lzo no' to it. This works in as much as I can see the relevant options being pushed from the server
e.g. for a 2.3 client
...
PUSH_REPLY,redirect-gateway, ... ping-restart 60,comp-lzo ...
...
OPTIONS IMPORT: compression parms modified
...
or for a 2.4 client
...
PUSH_REPLY,redirect-gateway, ... ping-restart 60,compress ...
...
OPTIONS IMPORT: compression parms modified
...
This works as expected for a 2.4 client. The client connects and data passes through the tunnel. However, for a 2.3 client a connection is made but no data passes through the tunnel. My server logs show
Bad compression stub (swap) decompression header byte: 250
and my client logs
Bad LZO decompression header byte: 251
I have searched for these log messages and they seem to suggest that there is a compression mismatch between the client and server.
Is there a way for a 2.4 server with compression disabled to disable the compression on 2.3 and 2.4 clients with push commands and if so what are they ?
Cheers