Using OSPF to create full duplex behaviour for wireless links
One reality that all WISPs face is that all radio communications are half-duplex. When one end of a link is “speaking”, the other end must be “listening”. For many applications, this is sufficient for our purpose. When a link becomes busy, however, some types of communications are negatively impacted by the delays caused by this behaviour. Mikrotik RouterOS offers some options to help you alleviate this congestion without breaking the bank. In this article, I will discuss the details for how to configure Mikrotik RouterOS and OSPF to provide a simulated full-duplex link with the added benefit of failover to half-duplex in the event of a single link failure.
This idea is taken from an article I wrote on my main website back in November of 2006.
Some of the advantages with this method include:
- It is full duplex (simulated)
- It will offer automatic failover in the event of a link failure (only one link – and losing this link will lose the full duplex “feel” of the link)
- It is VERY scalable
Use the following diagram as a reference:
The first scenario will be exactly as pictured. The four bridge radios can be ANY type of bridge device. They could be Mikrotik RB600 or RB411 with a single radio and configured as WDS bridged links or they could be 2 sets of Trango Tlink10s. For the purpose of this discussion, the bridges must be there, but what the specific equipment will only determine just how much bandwidth you will or will not have. It is VERY IMPORTANT that the bridges pictured are true layer 2 bridges.
The basic idea is to create the links, then using OSPF path cost, cause the traffic from one side of the link to use link A and the traffic going the other way to use link B. If either link fails, the traffic will automatically failover and use the working link. I won’t discuss the configuration of the bridge devices, but they must be true bridges. (MT with WDS will work just fine).
Once you have the links in place, you will plug Link A into Router A on ether1, Link B into Router A on ether2 and the LAN side of Router A will be on ether3. The other side (Router B) will be done the same way. To understand how to set up OSPF, refer to Mikrotik’s documentation. You will add the following configurations to the indicated router:
Both routers:
/routing ospf network
add network=10.10.0.0/24 area=backbone
add network=10.10.1.0/24 area=backbone
Router A:
/routing ospf interface add interface=ether1 cost=100
Router B:
/routing ospf interface add interface=ether2 cost=100
This config will cause traffic from Router A lan side to use Link B (lower cost on ether2). Traffic from Router B will use Link A (lower cost on ether1). If either link fails, OSPF will automatically begin to use the working link.
If you wish, you can configure the same network using an RB600 (or other routerboard) with 2 wireless cards for Router A. The config is basically the same, except that what is shown as Bridge A and Bridge B would become wlan1 and wlan2. The configuration above would be changed appropriately (wlan1 = ether1).
An alternative method to accomplish a full duplex wireless link with Mikrotik is to use NStreme-dual. In the coming days, I’ll write the tutorial for building an NStreme-dual link.
I hope this article has been helpful. This type of “real-world” usefulness is typical of the information I cover in my training classes. For a training schedule, you can see my consulting website here.
February 1st, 2010 at 12:02 pm
[…] http://blog.butchevans.com/2008/10/using-ospf-to-create-full-duplex-behaviour-for-wireless-links/ No comments for this entry […]
July 18th, 2010 at 10:23 pm
This is interesting. Couldn’t the same thing be done using stp?
July 18th, 2010 at 11:23 pm
I would imagine it could be done with stp. I’ve simply never tried. If you try it and get it working, feel free to post the code, a link to your blog or simply email it to me and I’ll write it up. If there is an “outcry” for this solution, I’ll be happy to work it out and get it posted.
December 14th, 2010 at 3:55 am
STP would converge in 45s. That’s slow. Not sure how rotuer OS handles RSTP. That would be faster, but still around a few seconds. STP and RSTP put redundant links into a blocking state, so load balancing would not work. Not sure how granular you can tweak OSPF in routerOS, but that CAN be tweaked down to 50ms or sub 50 ms convergence times on some platforms (Cisco, Alcatal-Lucent) for truly excellent performance. With 50ms convergence, you don’t even hear a bump in the audio on VOIP. Very nice!!
I like this example though. Good idea.
January 19th, 2011 at 8:24 am
Can this be done with cisco switches or routers at both ends as router A and router B ?
March 27th, 2011 at 10:26 pm
This method is not specific to Mikrotik. Obviously, the configuration details are different with Cisco, but I have done similar configurations on Cisco, ImageStream and vanilla Linux routers.
February 3rd, 2012 at 6:44 pm
G’day,
is it possible to re-configure the above setup so that ether1 of router A is on the same subnet as ether1 of router B, i.e. a bridge?
I realise OSPF is about routing but the full duplex nature and the failover are useful to me in a bridge situation.
Regards, D2.