Commit 412a31

2025-01-21 11:08:41 Samuli Seppänen: -/-
/dev/null .. pages/managing-windows-tap-drivers.md
@@ 0,0 1,132 @@
+ # Introduction
+ The OpenVPN's Windows TAP-drivers consists of four files for each platform (32/64-bit):
+ - *<something>.cat:* contains cryptographic signature for the actual drivers
+ - *<something>.sys:* contains the actual driver
+ - *<something>.inf:* contains driver metadata
+
+ If you need to run OpenVPN on Windows Vista/7 64-bit you have to use signed TAP drivers. Unless you sign them yourself, you need to extract drivers from an existing OpenVPN installer. See below for instructions.
+
+ OpenVPN installers come bundled with a command-line tool called `<tap-windows-install-dir>\bin\devcon.exe` for managing the TAP-driver. Two wrapper scripts, `addtap.bat` and `deltapall.bat` are also available in the same directory. For details on `devcon.exe` usage look at [Microsoft's Devcon.exe documentation](http://support.microsoft.com/kb/311272).
+
+ **NOTES:**
+ - OpenVPN 2.3_alpha1 and earlier `devcon.exe` was called `tapinstall.exe`.
+ - OpenVPN 2.3_rc2 installer does not install TAP utilities by default. [This bug](ticket:255) is fixed in later releases.
+
+ # Manual configuration of the TAP-Windows adapter
+ On XP Go to `Start -> Control Panel -> Network Connections`.
+
+ You should see a "TAP-Windows Adapter" with a name like "Local Area Connection 3". Right click and rename this to something shorter and without embedded spaces such as "my-tap".
+
+ Now right click again and select properties.
+
+ Select Internet Protocol (TCP/IP) from the list and click on "Properties".
+
+ Set the IP address and subnet mask of your new TAP device. For the example below we will use an IP of 10.3.0.1 and a subnet mask of 255.255.255.0. Other fields can be left as they are.
+
+ Note also that the command line tool "netsh" can do many of these same functions.
+
+ For example, the following command will set the IP and subnet for my-tap:
+ ```
+ $ netsh interface ip set address my-tap static 10.3.0.1 255.255.255.0
+ ```
+ This setting is persistent across reboots.
+
+ # Installing and uninstalling TAP-drivers
+ Occasionally you may need play with different TAP-driver versions. In this case you can use `devcon.exe` from the Windows command-prompt. Below are some common commands you can run from an administrator Powershell or cmd.exe console:
+
+ List available TAP-Windows adapters:
+ ```
+ $ openvpn --show-adapters
+ Available TAP-Windows devices:[1] 'my-tap'
+ ```
+
+ List network interfaces (incl. TAP-Windows adapters):
+ ```
+ $ ipconfig
+ ```
+
+ View information about an installed driver:
+ ```
+ > tapinstall.exe hwids <id>
+ ROOT\NET\0000 Name: TAP-Windows Adapter V9 Hardware IDs:
+ tap09011 matching device(s) found.
+ ```
+
+ Uninstall a TAP-driver:
+ ```
+ > tapinstall.exe remove <id>
+ ROOT\NET\00001 device(s) were removed
+ ```
+
+ To verify TAP-driver removal:
+ ```
+ > tapinstall.exe hwids <id>
+ No matching devices found.
+ ```
+
+ Install a new TAP-driver:
+ ```
+ > tapinstall.exe install <something.inf> <id>
+ Device node created. Install is complete when drivers are installed...Updating drivers for <id> from C:\Program Files\TAP-Windows\driver\OemVista.inf.
+ Drivers installed successfully.
+ ```
+
+ Update a TAP-driver:
+ ```
+ > tapinstall.exe update <something.inf> <id>
+ Updating drivers for <id> from C:\Program Files\TAP-Windows\driver\OemVista.inf.
+ Drivers installed successfully.
+ ```
+
+ Notes:
+ - `<id>` refers to the driver identifier which is `tap0901` for OpenVPN 2.2+, but may be different in older/newer OpenVPN versions.
+ - `<something.inf>` is typically `OemWin2k.inf` (old tap-drivers) or `!OemVista.inf` (newer tap-drivers). You need to specify the full path to this file, e.g. `C:\Program Files\TAP-Windows\driver\!OemVista.inf`.
+
+ By installing multiple times, you will create additional TAP-Windows adapter instances, which can be used for multiple concurrent VPN tunnels. It is also possible to install using `Control Panel -> Add New Hardware`, and it is possible to uninstall using `Control Panel -> System -> Hardware -> Device Manager`.
+
+ # Extracting TAP-drivers from OpenVPN installers
+ Extracting TAP-drivers from an OpenVPN installer is relatively easy: you can use [7-zip](http://www.7-zip.org/) to open the installer executable. There are both 32-bit and 64-bit versions, but the latter are larger in size.
+
+ # Windows TAP device naming
+ Basically what happens when you install the TAP-Windows driver is that you get a new network adapter that shows up in your network control panel. You right click on the TAP adapter and set the TCP/IP properties, i.e. IP address and netmask. Then you rename the TAP adapter icon to something like "my-tap" and reference it using the --dev-node option in OpenVPN.
+
+ Windows also has command line utilities to accomplish these same kinds of tasks such as "devcon", "netsh", and "ipconfig".
+
+ # Renaming the TAP-driver
+ Look at [this page](wiki:TapRenameScript) for a script that can be used to rename TAP-drivers.
+
+ # Debugging installation problems
+ People occasionally report tap-windows installation issues, assuming they are all caused by a single bug, because `devcon.exe` gives the same error message/code. This is unfortunately not the case, and the reason for an install failure could be:
+ - Lack of privileges for installing the driver(?)
+ - Broken driver
+ - Invalid driver signature
+ - Expired driver signature
+ - Conflicting drivers: pretty much every OpenVPN-based VPN service has its own Windows client installer, which install some version of the tap-windows driver. If the installers do a bad job, they could end up installing tap-windows drivers that conflict with the official OpenVPN tap-windows drivers.
+ - Something else
+
+ An exhaustive PPTX presentation of Windows driver installation can be downloaded from [here](http://download.microsoft.com/download/a/f/d/afdfd50d-6eb9-425e-84e1-b4085a80e34e/dvr-t396_wh07.pptx). The basic process of driver installation is this:
+ 1. The driver is imported in the driver store
+ 2. The driver is installed to driver folder
+ 3. The driver is loaded
+
+ The `setupapi.dev.log` (see below) should tell you at which phase the driver installation failed. The presentation linked to above also shows common debugging steps that should prove useful.
+
+ In case you have tap-windows installation issues, you should try the following:
+ 1. Back up all OpenVPN configuration files, both for official and for unofficial OpenVPN Windows installers
+ 2. Uninstall the [official OpenVPN Windows client](http://openvpn.net/index.php/download/community-downloads.html) using its own uninstaller
+ 3. Uninstall any unofficial OpenVPN Windows clients using their own uninstallers or `!Add/Remove programs`
+ - Note that many of these are not called OpenVPN at all
+ 4. [Remove all installed tap-windows drivers](http://www.pcworld.com/article/246041/how_to_uninstall_drivers_in_windows.html)
+ - Note that many of these are not called tap-windows at all
+ 5. [Remove tap-windows drivers from the driver store](http://technet.microsoft.com/en-us/library/cc730875.aspx)
+ - `Remove-Tapwindows.ps1` script in [tap-windows-scripts](https://github.com/mattock/tap-windows-scripts) repository can delete all standard tap-windows drivers from the driverstore
+ 6. Reboot
+ 7. Try installing OpenVPN using the official installer
+
+ If you're still having issues installing the tap-windows driver, you should try installing it on another computer. If installation to another computer works, it's highly likely the problem is in your system, not in the OpenVPN/tap-windows installer itself.
+
+ You can further debug tap-windows installation issues by looking at the common log file for all Windows driver installations, which on Windows 7 is normally located in `C:\Windows\inf\setupapi.dev.log`. If you're filing a bug report, you should attach the logs for the tap-windows installation part to the bug report.
+
+ Sometimes tap-windows install failures are related to registry corruption. For details, look at these forum postings:
+ - [OSR Online Thread](http://www.osronline.com/showthread.cfm?link=181873)
+ - ~~https://forums.openvpn.net/post35811.html#p35811~~
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9