Using the OLSR Daemon in pfSense

OLSR

Configuring the OLSR daemon in pfSense 2.1.3.

The OLSR daemon is an implementation of the Optimized Link State Routing protocol. The Optimized Link State Routing Protocol is an IP routing protocol optimized for mobile ad hoc networks, which can also be used on other wireless ad hoc networks. OLSR is a proactive link-state routing protocol, which uses hello and topology control message to discover and then disseminate link state information throughout the mobile ad hoc network.

Link-state routing protocols such as Open Shortest Path First (OSPF) and IS-IS elect a designated router on every link to perform flooding of topology information. The link-state protocol is performed by every switching node in the network. The basic concept of link-state routing is that every node constructs a map of the connectivity to the network, in the form of a graph, showing which nodes are connected to other nodes. Each node then independently calculates the next best logical path from it to every possible destination in the network. The collection of best paths will then form the node’s routing table. Open Shortest Path First (OSPF) takes this one step further, using the information to construct a topology map of the network. It computes the shortest math tree for each route using Dijkstra’s algorithm, a shortest path first algorithm.


This is a workable routing protocol for wired networks, but in wireless ad hoc networks, things are different. Every node in the network is potentially a switching node; hence, a different approach is needed in order to optimize the flooding process. Using Hello messages, the OLSR protocol at each node discovers 2-hip neighbor information and performs a distributed election of a set of multipoint relays (MPRs). Nodes select MPRs such that there exists a path to each of its 2-hop neighbors via a node selected as an MPR. These MPR nodes then source and forward TC messages that contain the MPR selectors. This functioning of MPRs makes OLSR unique from other link state routing protocols in a few different ways. The forwarding path for TC messages is not shared among all nodes but varies depending on the source. Not all links of a node are advertised, but only those that represent MPR selections.

Since link-state routing requires the topology databased to be synchronized across the network, OSPF performs topology flooding using a reliable algorithm. Since a reliable algorithm is hard to design for an ad hoc wireless network, OLSR doesn’t bother with reliability. It simply floods topology data often enough to make sure that the database does not remain unsynchronized for extended periods of time.

OLSRD: Installation and Configuration

Installing OLSRD under pfSense entails navigating to System -> Packages, and scrolling down to the oLSRD entry. Press the “plus” button to the right of the entry, and press the “Confirm” button to confirm installation. OLSRD installation should not take long.

Once OLSRD is installed, there will be a new item on the “Services” menu called “OLSRD“. If you navigate to Services -> OLSRD and press the “plus” button, you can configure OLSRD settings. Checking the “Enable OLSR” check box enables the dynamic mesh linking daemon.

The next setting is the “Link Quality Level” dropdown box. There are three possible settings: 0, 1, and 2. Setting this parameter to 0 disables the link quality extensions, and OLSRD works as it did before (it is RFC-compliant, uses HELLO and TC messages, and calculates routes by minimizing the hop count). Hysteresis will be used, and the links will be more robust at the cost of speed. Setting this parameter to 1 enable the link quality extensions and tells OLSRD to select MPRs based on the link quality information. A neighbor is selected as an MPR, if it has the best route to any 2-hop neighbor. Setting this paramter to 2 not only selects MPRs based on the link quality but also considers link quality information when calculating the routing table. Setting this parameter to 0 or 1 seem fairly safe; while setting it to 2 may cause oLSRD to crash in some cases.

The next setting, the “Interfaces” list box, allows you to select the interfaces to which OLSR will bind. Of the remaining settings, the most notable are “HTTPInfo Port” (the port that HTTPInfo will listen on and “Enable Dynamic Gateway” (to enable the OLSR Dynamic Gateways feature, to add or remove Internet routes if a change is detected).


External Links:

Optimized Link State Routing Protocol on Wikipedia

The official olsrd web site

olsrd Link Quality Extensions

Be Sociable, Share!

Speak Your Mind

*

© 2013 David Zientara. All rights reserved. Privacy Policy