Ethernet Bridge

Ethernet Bridge is a small utility (driver and GUI configuration tool) for MAC level bridging of TCP/IP bound network interfaces. It is based on NDIS-hooking driver from Windows Packet Filter and supports Windows 2000/XP/2003. It can be used, an example, with OpenVPN in its bridging mode, especially with the server-end running on a Windows 2000 machine (Windows 2000 does not native bridging support which is only available since Windows XP).

System Requirements

Windows NT 4.0Windows XP x86 
Windows 2000Widows Server 2003 x86 

Ethernet Bridge application for modern Windows versions with complete source code is available at GitHub, binary can be downloaded from Windows Packet Filter page.

How it works

Ethernet Bridge is based on kernel mode NDIS-hooking driver from Windows Packet Filter and implements bridging on the MAC level (below TCP/IP protocol). All the functional code works completely in kernel mode, user mode configuration application is responsible only for adding/removing network adapters to/from the bridge.


Ethernet Bridge (x86 build)

How to install

Unzip and run the installer. You will have to reboot the system after the installation.

How to use

To configure and start bridging, you have to run bridge_cfg.exe. After choosing bridged adapters you can shut down bridge_cfg.exe, keeping it in active state is not necessary since the configuration is completed. If you disabled/enabled any network adapters or installed any additional ones without reboot and want to add them to the bridge, you may need to run bridge_cfg.exe again.

Ethernet Bridge 1
Ethernet Bridge 2

Something like this is usually seen after bridge_cfg.exe is started for the first time

On the next screenshot, Local Area Connection and Local Area Connection are bridged

If you reboot, then you have to configure the bridge again, saving settings is not supported. However, if you need to start bridging from the script (running during the system boot, an example) you can use simple command line application bridge_cmd.exe which can be found in the installation directory (bin). If started without parameters, it lists the available Ethernet interfaces with the brief information about each. The example of its output is below:

The following Ethernet interfaces are available to MSTCP:

Relates to: Local Area Connection 2
Current MAC: 0050BF9BF8BB
Medium: 0x00000000
Current MTU: 1500
Current bridge status = NOT BRIDGED

Relates to: Local Area Connection
Current MAC: 00508D5F3673
Medium: 0x00000000
Current MTU: 1500
Current bridge status = NOT BRIDGED

To bridge the chosen interfaces, you have to specify all of them in the command line. The command below turns on bridging for both the interfaces listed above:

bridge_cmd.exe DEVICE{7D2E629A-9DDA-4B1A-989A-1931CAB0BB7A} DEVICE{24DED96F-A7E9-4382-9556-F6F0CDCDFDC0}

In the command line you can specify internal network interface names (like “DEVICE{24DED96F-A7E9-4382-9556-F6F0CDCDFDC0}”), local area connection name like it is displayed in the Network Connections applet (like “Local Area Connection”) or even name prefixes (in this case bridging will be enabled for all adapters with the specified prefix, an example specifying “” as parameter will turn on bridging for all available network interfaces). Using bridge_cmd you can turn on bridging automatically during the system boot, an example, using SrvAny or any similar tool.

Price & licensing

Freeware for personal (non-commercial), or educational (including non-profit organization) use.

The source code for the Ethernet Bridge is available to WinpkFilter Source Code licensees free of charge. If your WinpkFilter Source Code license is valid, and you want to get the Ethernet Bridge source code, then just contact us by e-mail to


Ethernet Bridge software is supplied AS-IS, without warranties of any kind.