Why use EoIP tunnels for p2p links?
Our most popular configuration sample "DuxLink Duo" uses Ethernet over IP tunnels to establish a point to point bridge.
(You can download all of our configuration samples here!)
The following is my response to a recent email seeking to understand the basic reasons for this choice of method.
A limitation of 802.11 wireless protocol (this is a protocol limitation, not hardware, or vendor/operating-system) is that it is not possible to make a bridge on the client side. Only bridge on AP side is possible. The reason for this is that the data frames over the wireless segment have three MAC addresses in the header: MAC of AP, MAC of client, and the third slot is for the mac address of the device behind the AP that is sending the data. i.e. there is no room for a mac address of a device connected to the wired interface of the client/station.
There are several mechanisms that attempt to overcome this issue, most of which are nothing more than a grubby fudge. RouterOS offers two grubby fudges (both of which are also common to other vendors) called psuedobridge and psuedobridge-clone. The technical implementations are beyond what I can fit in an email, but am happy to discuss with you further by phone if you are interested.
The third routerOS ‘fudge’ is called ‘station-bridge’ and it is a much more robust technique that uses a proprietary protocol on the station and AP to build a kind of translation table of mac addresses at the AP end. It is relatively stable, but it adds cpu and memory overhead to packet forwarding, and not as efficient as using no bridge at all.
The RIGHT way to do it is to use eoip tunnel. EoIP tunnel is a true Ethernet protocol encapsulated at an IP level so that using this sort o0f tunnel between the AP and station, you can transmit full Ethernet frames. This technique presents a virtual interface on each device (AP and station) that can be bridged together to make a true transparent bridge across a wireless link.
The simple link is just an eoip tunnel between the AP and client. The wlan interfaces on each sides are NOT included in any bridge at all. You then just connect the eoip-tunnel interface to the Ethernet port using a standard routerOS bridge.
For something more functional, you can create a SECOND eoip-tunnel between the same two ends (ap and station) – use the same IP addresses, but define a different tunnel-ID. These two tunnels behave like completely independent links, so you can now prioritise traffic for one over the other using simple queue or queue tree – make sure that ‘use ip firewall’ is enabled for the bridges in use.
For the second (priority) interface, bridge it to either a separate physical port, or create a VLAN interface on ether1 and bridge the second tunnel to that one.
For further reading, these links may be of interest:
- MikroTik RouterOS and wireless Bridging (MikroTik Wiki)
- About WiFi (Wikipedia)
- WDS: Another method of Wireless Bridging (Wikipedia)