Mailing List Archive

How to configure Quagga for wireless mesh networks?
*Could someone give an example setup on Quagga-MR for wireless mesh network
of Raspberry Pi where the wifi network interface is wlan0? *

I note that the CORE emulator did a very good job on utilizing Quagga
routing suite for wireless mesh network routing with Quagga-MR version and
wonder how the configuration was done in CORE. I only see Quagga.conf, but
not the zebra.conf, ospfd.conf, ospf6d.conf.

I am trying to set up a wireless mesh network of Raspberry Pi and performed
the follows (because the deb file cannot be installed on ARM directly).

$ sudo apt-get install gawk

$ wget https://downloads.pf.itd.nrl.navy.mil/ospf-manet/quagga-0.
99.21mr2.2/quagga-0.99.21mr2.2.tar.gz

$ tar zxvf quagga-0.99.21mr2.2.tar.gz

$ cd quagga-0.99.21mr2.2

$ ./configure # See INSTALL file in the directory for details if needed.

$ make; sudo make install

Looks like Quagga-MR will install in /usr/local/sbin, not /usr/lib/quagga.
Then I did try to configure the zebra, ospf, ospf6 - initially based on the
regular Quagga, not Quagga-MR - perhaps I messed up two installations on
one Pi. More importantly, I wonder how *.conf shall be configured for
Quagga-MR. There are too many parameters to guess and whether we need ospf6
if we use IPv4. Below is what I tried but did not work out - any help or
hint is appreciated.

4.1 Configure network interfaces

$ sudo nano /etc/network/interfaces
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet static
address 192.168.1.122
netmask 255.255.255.0
wireless-channel 1

wireless-essid PiAdHocNetwork

wireless-mode ad-hoc

$ sudo service networking restart
Now, each node can ping and ssh each other if they are in each
other's range. Now, I try to set up the mesh network routing.

4.2 Configure Quagga daemons

$ sudo nano /etc/quagga/daemons

zebra=yes
ospfd=yes

ospf6d=yes

$ sudo nano /etc/quagga/debian.conf

vtysh_enable=yes

zebra_options=" --daemon -A 127.0.0.1"

bgpd_options=" --daemon -A 127.0.0.1"

ospfd_options=" --daemon -A 127.0.0.1"

ospf6d_options="--daemon -A ::1"

ripd_options=" --daemon -A 127.0.0.1"

ripngd_options="--daemon -A ::1"

isisd_options=" --daemon -A 127.0.0.1"

babeld_options="--daemon -A 127.0.0.1"

$ sudo nano /etc/quagga/vtysh.conf

!

! Sample

!

! service integrated-vtysh-config

hostname quagga-router

username root nopassword

!



4.3 Configure Zebra

$ sudo nano /etc/quagga/zebra.conf

hostname R22zebra
!
password zebra
enable password password
!
interface wlan0
ip address 192.168.1.122/24
!
no log trap
log stdout
!
line vty
no login

4.4 Configure ospf

$ sudo nano /etc/quagga/ospfd.conf

hostname R22ospfd
!
password zebra
enable password password
!
interface wlan0
!
router ospf
network 192.168.1.0/24 area 0.0.0.0
!
line vty
no login

4.5 Configure ospf6d

$ sudo nano /etc/quagga/ospf6d.conf

hostname R22ospf6

password zebra

enable password password

log stdout

service advanced-vty

!

debug ospf6 neighbor state

!

interface wlan0

ipv6 ospf6 priority 1

ipv6 ospf6 transmit-delay 1

ipv6 ospf6 ifmtu 1500

ipv6 ospf6 cost 1

ipv6 ospf6 hello-interval 2

ipv6 ospf6 dead-interval 6

ipv6 ospf6 retransmit-interval 5

ipv6 ospf6 network manet-designated-router

ipv6 ospf6 ackinterval 1800

ipv6 ospf6 backupwaitinterval 2000

ipv6 ospf6 twohoprefresh 3

ipv6 ospf6 hellorepeatcount 3

ipv6 ospf6 adjacencyconnectivity biconnected

ipv6 ospf6 lsafullness mdrfulllsa

ipv6 ospf6 flood-delay 100

!

router ospf6

instance-id 65

router-id 191.168.1.122

interface wlan0 area 0.0.0.0

protocol-traffic-class 184

redistribute ospf

redistribute connected

!

line vty

access-class access4

ipv6 access-class access6

exec-timeout 0 0


4.6 Turn on IP forwarding

pi@tuesday:~$ sudo nano /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for
IPv4
net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for
IPv6
net.ipv6.conf.all.forwarding=1

4.7 restart all services

$ sudo chown quagga.quaggavty /etc/quagga/*.conf

$ sudo chmod 640 /etc/quagga/*.conf

$ sudo reboot
Re: How to configure Quagga for wireless mesh networks? [ In reply to ]
From https://downloads.pf.itd.nrl.navy.mil/ospf-manet/quagga-0.99.21mr2.2/
quagga-0.99.21mr2.2.tar.gz , after configure, make and make install, it
seems to me that the quagga service is not installed anywhere in the
raspberry pi system.

Can someone please give a reply on this?


<https://downloads.pf.itd.nrl.navy.mil/ospf-manet/quagga-0.99.21mr2.2/quagga-0.99.21mr2.2.tar.gz>$
sudo find / -name "*quagga*"

/usr/local/sbin/watchquagga

/usr/local/share/info/quagga.info-1

/usr/local/share/info/quagga.info

/usr/local/share/info/quagga.info-2

/usr/local/share/man/man8/watchquagga.8

/usr/local/include/quagga

/home/pi/quagga-0.99.21mr2.2

/home/pi/quagga-0.99.21mr2.2/INSTALL.quagga.txt

/home/pi/quagga-0.99.21mr2.2/tests/core/quagga

/home/pi/quagga-0.99.21mr2.2/watchquagga

/home/pi/quagga-0.99.21mr2.2/watchquagga/.libs/watchquagga

/home/pi/quagga-0.99.21mr2.2/watchquagga/watchquagga.c

/home/pi/quagga-0.99.21mr2.2/watchquagga/watchquagga

/home/pi/quagga-0.99.21mr2.2/watchquagga/.deps/watchquagga.Po

/home/pi/quagga-0.99.21mr2.2/watchquagga/watchquagga.o

/home/pi/quagga-0.99.21mr2.2/redhat/watchquagga.init

/home/pi/quagga-0.99.21mr2.2/redhat/quagga.logrotate

/home/pi/quagga-0.99.21mr2.2/redhat/quagga.spec.in

/home/pi/quagga-0.99.21mr2.2/redhat/quagga.pam.stack

/home/pi/quagga-0.99.21mr2.2/redhat/quagga.spec

/home/pi/quagga-0.99.21mr2.2/redhat/quagga.sysconfig

/home/pi/quagga-0.99.21mr2.2/redhat/quagga.pam

/home/pi/quagga-0.99.21mr2.2/solaris/quagga.init.in

/home/pi/quagga-0.99.21mr2.2/solaris/quagga.xml.in

/home/pi/quagga-0.99.21mr2.2/doc/quagga.info-1

/home/pi/quagga-0.99.21mr2.2/doc/quagga.texi

/home/pi/quagga-0.99.21mr2.2/doc/quagga.info

/home/pi/quagga-0.99.21mr2.2/doc/quagga.info-2

/home/pi/quagga-0.99.21mr2.2/doc/watchquagga.8

/home/pi/quagga-0.99.21mr2.2.tar.gz

On Wed, Dec 28, 2016 at 10:06 AM, WenZhan Song <wenzhan.song@gmail.com>
wrote:

> *Could someone give an example setup on Quagga-MR for wireless mesh
> network of Raspberry Pi where the wifi network interface is wlan0? *
>
> I note that the CORE emulator did a very good job on utilizing Quagga
> routing suite for wireless mesh network routing with Quagga-MR version and
> wonder how the configuration was done in CORE. I only see Quagga.conf, but
> not the zebra.conf, ospfd.conf, ospf6d.conf.
>
> I am trying to set up a wireless mesh network of Raspberry Pi and
> performed the follows (because the deb file cannot be installed on ARM
> directly).
>
> $ sudo apt-get install gawk
>
> $ wget https://downloads.pf.itd.nrl.navy.mil/ospf-manet/quagga-0.99
> .21mr2.2/quagga-0.99.21mr2.2.tar.gz
>
> $ tar zxvf quagga-0.99.21mr2.2.tar.gz
>
> $ cd quagga-0.99.21mr2.2
>
> $ ./configure # See INSTALL file in the directory for details if needed.
>
> $ make; sudo make install
>
> Looks like Quagga-MR will install in /usr/local/sbin, not /usr/lib/quagga.
> Then I did try to configure the zebra, ospf, ospf6 - initially based on the
> regular Quagga, not Quagga-MR - perhaps I messed up two installations on
> one Pi. More importantly, I wonder how *.conf shall be configured for
> Quagga-MR. There are too many parameters to guess and whether we need ospf6
> if we use IPv4. Below is what I tried but did not work out - any help or
> hint is appreciated.
>
> 4.1 Configure network interfaces
>
> $ sudo nano /etc/network/interfaces
> auto lo
> iface lo inet loopback
> auto wlan0
> iface wlan0 inet static
> address 192.168.1.122
> netmask 255.255.255.0
> wireless-channel 1
>
> wireless-essid PiAdHocNetwork
>
> wireless-mode ad-hoc
>
> $ sudo service networking restart
> Now, each node can ping and ssh each other if they are in
> each other's range. Now, I try to set up the mesh network routing.
>
> 4.2 Configure Quagga daemons
>
> $ sudo nano /etc/quagga/daemons
>
> zebra=yes
> ospfd=yes
>
> ospf6d=yes
>
> $ sudo nano /etc/quagga/debian.conf
>
> vtysh_enable=yes
>
> zebra_options=" --daemon -A 127.0.0.1"
>
> bgpd_options=" --daemon -A 127.0.0.1"
>
> ospfd_options=" --daemon -A 127.0.0.1"
>
> ospf6d_options="--daemon -A ::1"
>
> ripd_options=" --daemon -A 127.0.0.1"
>
> ripngd_options="--daemon -A ::1"
>
> isisd_options=" --daemon -A 127.0.0.1"
>
> babeld_options="--daemon -A 127.0.0.1"
>
> $ sudo nano /etc/quagga/vtysh.conf
>
> !
>
> ! Sample
>
> !
>
> ! service integrated-vtysh-config
>
> hostname quagga-router
>
> username root nopassword
>
> !
>
>
>
> 4.3 Configure Zebra
>
> $ sudo nano /etc/quagga/zebra.conf
>
> hostname R22zebra
> !
> password zebra
> enable password password
> !
> interface wlan0
> ip address 192.168.1.122/24
> !
> no log trap
> log stdout
> !
> line vty
> no login
>
> 4.4 Configure ospf
>
> $ sudo nano /etc/quagga/ospfd.conf
>
> hostname R22ospfd
> !
> password zebra
> enable password password
> !
> interface wlan0
> !
> router ospf
> network 192.168.1.0/24 area 0.0.0.0
> !
> line vty
> no login
>
> 4.5 Configure ospf6d
>
> $ sudo nano /etc/quagga/ospf6d.conf
>
> hostname R22ospf6
>
> password zebra
>
> enable password password
>
> log stdout
>
> service advanced-vty
>
> !
>
> debug ospf6 neighbor state
>
> !
>
> interface wlan0
>
> ipv6 ospf6 priority 1
>
> ipv6 ospf6 transmit-delay 1
>
> ipv6 ospf6 ifmtu 1500
>
> ipv6 ospf6 cost 1
>
> ipv6 ospf6 hello-interval 2
>
> ipv6 ospf6 dead-interval 6
>
> ipv6 ospf6 retransmit-interval 5
>
> ipv6 ospf6 network manet-designated-router
>
> ipv6 ospf6 ackinterval 1800
>
> ipv6 ospf6 backupwaitinterval 2000
>
> ipv6 ospf6 twohoprefresh 3
>
> ipv6 ospf6 hellorepeatcount 3
>
> ipv6 ospf6 adjacencyconnectivity biconnected
>
> ipv6 ospf6 lsafullness mdrfulllsa
>
> ipv6 ospf6 flood-delay 100
>
> !
>
> router ospf6
>
> instance-id 65
>
> router-id 191.168.1.122
>
> interface wlan0 area 0.0.0.0
>
> protocol-traffic-class 184
>
> redistribute ospf
>
> redistribute connected
>
> !
>
> line vty
>
> access-class access4
>
> ipv6 access-class access6
>
> exec-timeout 0 0
>
>
> 4.6 Turn on IP forwarding
>
> pi@tuesday:~$ sudo nano /etc/sysctl.conf
> # Uncomment the next line to enable packet forwarding for
> IPv4
> net.ipv4.ip_forward=1
> # Uncomment the next line to enable packet forwarding for
> IPv6
> net.ipv6.conf.all.forwarding=1
>
> 4.7 restart all services
>
> $ sudo chown quagga.quaggavty /etc/quagga/*.conf
>
> $ sudo chmod 640 /etc/quagga/*.conf
>
> $ sudo reboot
>
>
>
>
>