To use a VPN you would of had to of obtained access to a VPN service, either by running one on a server or vm of your own somewhere, or (eaiser!) by subscribing to a commercial VPN providers service.
That won't help you if the network you are connecting to blocks the VPN technology you are planning on using.
Using a VPN is a good idea especially if you use unencrypted WIFI that way you are protected against random people snooping the radio traffic as well as rogue network operators.
You don't need the network owner to do anything to let you use a VPN.
If your VPN provider is malicious or compromised then using the VPN would make no difference.
If you are verifying SSL certificates on the sites you browse to (which your browser will be), and the sites don't mix non SSL and SSL content (which they shouldn't, and some browsers block mixed content nowadays as a security measure) then if DNS is spoofed the bad guys doing the spoofing won't be able to present a valid certificate for the domain so you'll get a browser warning.
For some sites the bad guys may be able to force a protocol downgrade so you don't get SSL.
There is a firefox add on - https everywhere from the EFF: https://www.eff.org/https-everywhere that tries to force as many sites as possible to https. Using it is an improvement over the current state of afairs.
It's also worth having a look at Certificate Patrol and Prespectives for other Firefox addon goodness.
You could run a local DNS resolver and enable dnssec validation on it. However it won't protect you against domains that arn't dnssec signed being spoofed, and in anycase networks that snoop on dns queries and mangle them may just drop dns packets that are dnssec signed breaking the net for you entirely.
Of course if your supper paranoid that's just a good reason to not use that network.