when using 'net30' you need to specify the right net30 subnet; in general, a 'net30' client will be assign a block of address 172.16.1.4n - 172.16.1.4n+4 , where n=1,2,3,4,5,...
So for n=21 you would have
172.16.1.84 - the net30 subnet address
172.16.16.85 - the virtual remote endpoint
172.16.1.86 - the actual client VPN address
172.16.1.84 - the net30 broadcast addresss
the virtual remote endpoint is needed, but cannot be pinged.
In both 'net30' and 'subnet' topology modes the VPN server needs to be in the same (server side) subnet as the VPN client. Thus, you cannot simply pick any subnet for the client (or any IP address), as the server will not be reachable. Hence , if you want to assign a client the address of 172.16.90.2 you would have to configure the server like
mode server
ifconfig 172.16.1.1 172.16.1.2
ifconfig-pool 172.16.1.4 172.16.1.200
route 172.16.0.0 255.255.0.0
push "route 172.16.1.1"
push "route 172.16.0.0 255.255.0.0"
regular clients are assigned address from the pool, but "special" clients can be assigned address from 172.16.0.0 - 172.15.255.255
This is explained in more detail in my book.