Alright, sorry it took so long to put the rest of my Vista x64 setup on here. Here’s part 2 – configuring Cisco PIX VPNs for Windows Vista & Windows 7 64-bit machines. To start, Cisco is dropping support for PIX devices and ASA is definitely a more robust device anyway. Cisco has stated they will not be creating a 64-bit VPN client for Vista or 7, you will have to upgrade to the ASA device for your VPN to use the new 64 bit client.
There is a freeware open-source program that will connect to a PIX VPN with minimal configuration, though. The program is called vpnc-fe. simply download and install the application, then follow these steps to ensure connectivity.
Make sure you install the OpenTAP driver when installing, this driver is used to create the virtual interface that the VPN will tunnel through.
This program is a little strange at first, in that there is no interface that shows when you run it, it is just an icon in the bottom right.

Right-Click it to open the menu, goto options> Import PCF. Here you can specify the PCF file you would normally use for the Cisco VPN client.
Now, there’s about a 50% chance you are good to go. I had to make some other changes as well.
If you are able to connect and reach your office network by IP, but DNS is not working, just add these as your pre-and disconnect scripts:
pre-script:
netsh interface ip set dns name = “Local Area Connection” source = static addr = <insert your internal primary DNS server here>
netsh interface ip add dns name = “Local Area Connection” addr = <insert your internal secondary DNS server here>
netsh interface ip add dns name = “Local Area Connection” addr = <insert a public DNS server here(4.2.2.2)>
Disconnect Script:
netsh interface ip set dns name = “Local Area Connection” dhcp
Save those as batch(.bat) files in the C:\Program Files(x86)\VPNC Front End\ directory. Then right-click the vpnc-fe icon and goto > options > Connection Settings > Scripts ta. In the appropriate lines, just put the name of the scripts, not the full path, as it only looks in the directory above. Try connecting and your DNS woes should be over.
If VPNC shows you are connected, but you cannot reach anything by any means, it probably didn’t properly create the routes.
For this, I was lucky enough to have 2 machines, one XP x86 with Cisco client that worked, and one Vista x64 that didn’t work. I just did route print and compared to find the issue. If this is an option, it is your best bet. Here is a rather slim overview on what I did. Please ask me questions, it has been a couple of months, though, so I don’t remember everything, but if you ask me questions, I can work with you to get yours set up.
OK, so open a command prompt after connected and type “route print”. Take a look at your interfaces, find the one labeled “TAP-Win32 Adapter V9″. If it doesn’t show, you may need to enable it and run route print again(it should be enabled if you are connected, though).
First, if you see any routes for 169.254, add these to you pre-connect script:
route DELETE 169.254.0.0
route DELETE 169.254.255.255
Now, look for any references to your network, generally, the routes are created, but without the right mask or interface specified.
Find those, and delete them as well:
route DELETE <Your companies network>
route DELETE <your company’s network(we have 5 subnets that we connect to, so 5 of these)>
Now, you will need to create those routes with the proper info. At the end off your script put:
route ADD <Your companies network> MASK <the mask in format 255.255.255.0> <the gateway that your VPN is connecting to internally, IE the gateway of the virtual network created during the tunnel creation, not the public IP for VPN)> METRIC 2 IF <the number of the interface “TAP-WIN32..”>
Here is an example as it should look:
route ADD 192.168.64.0 MASK 255.255.252.0 10.0.0.1 METRIC 2 IF 12
Again, let me know if you have any problems or questions, I had some other tweaks for different issues, but it has been a couple months so give me a problem and I can try to work through it with you.
Here is a complete script as an example:
netsh interface ip set dns name = “Local Area Connection” source = static addr = 172.21.1.20
netsh interface ip add dns name = “Local Area Connection” addr = 4.2.2.2
netsh interface ip add dns name = “Local Area Connection” addr = 172.21.1.41
netsh interface ip add dns name = “Local Area Connection” addr = 4.2.2.3route DELETE 169.254.0.0
route DELETE 169.254.255.255route DELETE 172.21.1.0
route DELETE 172.21.1.0route ADD 172.21.1.0 MASK 255.255.248.0 10.0.0.1 METRIC 2 IF 12
route ADD 172.21.1.0 MASK 255.255.252.0 10.0.0.1 METRIC 2 IF 12route DELETE 192.168.64.0
route ADD 192.168.64.0 MASK 255.255.252.0 10.0.0.1 METRIC 2 IF 12


