*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
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