= Routing a terra con apparati Debian Based = Estensione della guida GroundRouting per dispositivi Debian based Cosa serve: * Dispositivo con sistema operativo Debian, Ubuntu... (X86, amd64, arm, RaspberryPI) '''Quasi tutte le operazioni devono essere eseguite come superutente''' quindi non esitare a sudare. == Compilare l'ultima versione di OLSRd == Clona i sorgenti di OLSRd {{{ git clone git://olsr.org/olsrd.git }}} Spostati sulla directory dei sorgenti {{{ cd olsrd }}} Installa i pacchetti necessari a compilare OLSRd {{{ apt-get install build-essensials bison flex }}} Do It! {{{ make make libs make install make install_libs }}} == Installa i tool per VLAN == {{{ apt-get install vlan }}} == Installa i tool di stampa di Txtinfo == {{{ vim /bin/4olsr #!/bin/sh wget -q http://127.0.0.1:2006/$1 -O - }}} {{{ chmod 777 /bin/4olsr }}} {{{ vim /bin/6olsr #!/bin/sh wget -q http://[::1]:2007/$1 -O - }}} {{{ chmod 777 /bin/6olsr }}} == Configura OLSR == {{{ vim /etc/olsrd.conf DebugLevel 0 IpVersion 4 Pollrate 0.025 FIBMetric "flat" UseNiit no SmartGateway no Hna4 { #Hna Announcements } LinkQualityLevel 2 LinkQualityAlgorithm "etx_float" LinkQualityAging 0.02 UseHysteresis no TcRedundancy 2 MprCoverage 7 LinkQualityFishEye 1 LoadPlugin "olsrd_txtinfo.so.0.1" { PlParam "accept" "0.0.0.0" } LoadPlugin "olsrd_mdns.so.1.0.1" { PlParam "NonOlsrIf" "eth0" PlParam "MDNS_TTL" "20" PlParam "TTL_Check" "true" PlParam "Network_ID" "1" } LoadPlugin "olsrd_jsoninfo.so.0.0" { PlParam "accept" "0.0.0.0" } InterfaceDefaults { HelloInterval 3.0 HelloValidityTime 125.0 TcInterval 2.0 TcValidityTime 500.0 MidInterval 25.0 MidValidityTime 500.0 HnaInterval 10.0 HnaValidityTime 125.0 } Interface "eth0" “eth0.101” “eth0.102” { Mode "mesh" } }}} {{{ vim /etc/olsrd6.conf DebugLevel 0 IpVersion 6 Pollrate 0.025 FIBMetric "flat" UseNiit no SmartGateway no Hna6 { #Hna Announcements } LinkQualityLevel 2 LinkQualityAlgorithm "etx_float" LinkQualityAging 0.02 UseHysteresis no TcRedundancy 2 MprCoverage 7 LinkQualityFishEye 1 LoadPlugin "olsrd_txtinfo.so.0.1" { PlParam "accept" "::" PlParam "port" "2007" } InterfaceDefaults { HelloInterval 3.0 HelloValidityTime 125.0 TcInterval 2.0 TcValidityTime 500.0 MidInterval 25.0 MidValidityTime 500.0 HnaInterval 10.0 HnaValidityTime 125.0 } Interface "eth0" “eth0.101” “eth0.102” { Mode "mesh" IPv6Multicast FF02::6D } }}} == Start Script == {{{ vim /etc/ninux #!/bin/bash ( #Load Kernel modules modprobe ipv6 modprobe 8021q #Add Vlans vconfig add eth0 101 > /dev/null vconfig add eth0 102 > /dev/null sleep 5 #Assign IPv4 Addresses ip address add 172.16.x.y/16 dev eth0.101 ip address add 172.16.x.z dev eth0.102 #Assign IPv6 Addresses ip address add 2001:4c00:893b:a::b/64 dev eth0 ip address add 2001:4c00:893b:1:x::y/128 dev eth0.101 ip address add 2001:4c00:893b:1:x::z/128 dev eth0.102 sleep 5 #Run OLSRd /usr/local/sbin/olsrd -d 0 -f /etc/olsrd6.conf > /dev/null /usr/local/sbin/olsrd -d 0 -f /etc/olsrd.conf > /dev/null ) & }}} {{{ chmod 755 /etc/ninux }}} Lancia l'avvio automatico dello script dopo il boot includendolo in rc.local {{{ vim /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /etc/ninux exit 0 }}} Riavvia il sistema o lancia {{{ /etc/ninux }}} Enjoy Ninux!