Italiano English
Modifica History Actions

Lombardia/InstallazioneNuovoNodo

Questa pagina (attualmente work-in progress e non completa) spiegherà passo passo come creare un nuovo nodo con le configurazioni specifiche per l'isola lombarda.

Le indicazioni di questa pagina sono solo per delle configurazioni semplici (e quindi consigliata per chi sta iniziando): per avere ulteriori informazioni sull'isola lombarda e su possibili varianti di configurazione è utile leggere l'articolo Lombardia/Architettura della rete.

Test di fattibilità

Il primo passo è come in tutta ninux inserire il proprio nodo potenziale sulla mappa; a quel punto si possono contattare i nodi vicini sia direttamente che tramite la mailing list per scoprire con quali nodi ci sono possibilità di collegamento.

Prima di comprare equipaggiamento è possibile fare un test veloce con un binocolo ed un pezzo di stoffa colorata o qualcos'altro di facilmente identificabile, per verificare la visibilità ottica tra i due punti.

In alternativa, partecipando agli incontri della comunità può capitare l'occasione di organizzare qualche test con antenne "di scorta"; non c'è però nessuna garanzia che queste antenne siano sempre disponibili, o che il loro proprietario sia in zona per effettuare il test.

Acquisto dell'equipaggiamento e hardware consigliato

Una volta appurato che il collegamento è ragionevolmente possibile, si può acquistare l'hardware necessario; prima di farlo vale la pena chiedere in mailing list se altre persone siano interessate ad un acquisto di gruppo.

Le antenne da usare dipendono ovviamente dallo specifico collegamento; nei casi più comuni consigliamo l'uso di una parabola verso un nodo esistente e successivamente un'antenna a pannello per permettere ad altri nodi il collegamento verso il nostro nodo.

Anche se è possibile fare routing sulle antenne, il nostro suggerimento è di fare routing a terra, specialmente se l'antenna è installata in posizione difficile da raggiungere; per questo servirà un access point sul quale sia possibile installare openwrt oppure un single board computer o miniserver con porta di rete e chiavetta wifi sul quale sia possibile installare debian.

Antenne

la scelta dell'antenna dipende molto dalle caratteristiche del collegamento e va fatta dopo aver deciso con che nodo collegarsi.

  • Ubiquity Nanostation M5 (apertura 60°, adatta per essere raggiungibili da più nodi)
  • Ubiquity NanoBeam M5-400 (parabola, per link punto-punto)

Schede Debian-based

Vantaggi:

  • Sistema più simile a quello di un normale computer.
  • Maggiori possibilità di poter offrire servizi vari dalla stessa scheda che effettua il routing.

Svantaggi:

  • Maggiori difficoltà nel trovare hardware economico con più di una scheda di rete (necessità di schede di rete usb per il collegamento verso casa).

Schede/dispositivi potenziali:

Router (o schede) con OpenWRT

Vantaggi:

  • Hardware facilmente reperibile a basso costo.
  • Interfaccia grafica specifica per la configurazione della rete.

Svantaggi:

  • Minori prestazioni dell'hardware (a parità di costo).

Schede/dispositivi potenziali:

Installazione

TODO: informazioni su come effettuare l'installazione fisica degli apparati, dal montaggio dei supporti al collegamento dei cavi di rete alle prese opportune.

Configurazione

Antenna

L'antenna deve essere configurata in modalità bridge (tra interfaccia wlan e lan) e settata la modalità AccessPoint o Station in base alla configurazione dei vicini. In modalità AP, impostare come SSID ninux.org.<nomenodo> e nessuna protezione. Consigliamo di modificare le credenziali di accesso standard dell'antenna poichè l'interfaccia di amministrazione sarà disponibile a coloro connessi al link. Inoltre consigliamo di cambiare indirizzo IP di default per evitare di andare in conflitto con altre antenne del link.

Debian

In futuro sarà sufficiente installare il pacchetto ninux-lombardia (da un nostro repository) per ottenere le dipendenze e configurare automaticamente un nodo ninux rispondendo solo ad alcune semplici domande; per ora è necessario impostare manualmente la configurazione.

  • Configurare il sistema per usare il nome del proprio nodo come hostname:
     echo $IL_MIO_NODO > /etc/hostname
  • Installare i seguenti pacchetti:
     # apt-get install batctl rdnssd
  • Caricare il modulo batman all'avvio aggiungendo una riga con batman-adv a /etc/modules

  • Impostare l'interfaccia batman per essere configurata automaticamente, con il seguente file /etc/network/interfaces.d/batman

     auto eth0
     auto bat0
     
     iface bat0 inet6 auto
         pre-up batctl if add eth0

    aggiungendo eth1 per un eventuale seconda interfaccia collegata ad un'altra antenna, eccetera.

  • Perché vengano inviate le informazioni relative al nodo, installare anche il pacchetto alfred, disponibile in stretch o in jessie-backports:

     apt install -t jessie-backports alfred

    ed installare i seguenti unit file perché all'avvio vengano lanciati alfred in modalità master e batadv-vis per inviare dati sulla topologia della rete.

    /etc/systemd/system/alfred.service:

     [Unit]
     Description=Almighty Lightweight Fact Remote Exchange Daemon
     Requires=network.target
     After=network.target
     
     [Service]
     ExecStart=/usr/sbin/alfred -i bat0 -m
     
     [Install]
     WantedBy=multi-user.target

    /etc/systemd/system/batadv-vis.service:

     [Unit]
     Description=Almighty Lightweight Fact Remote Exchange Daemon
     Requires=alfred
     
     [Service]
     ExecStart=/usr/sbin/batadv-vis -i bat0 -s
     
     [Install]
     WantedBy=multi-user.target

al prossimo riavvio dell'interfaccia il computer sarà un nodo Ninux, ricevendo anche le informazioni sul DNS tramite rdnssd.

Wifi collegato in bridge

* Installare i seguenti pacchetti:

  •  # apt-get install bridge-utils, hostapd

* TODO: configurare hostapd per usare wlan0 come access point.

  • Anziché quanto riportato sopra, configurare bat0 come manual in /etc/network/interfaces.d/batman

     auto eth0
     auto bat0
     
     iface bat0 inet6 manual
         pre-up batctl if add eth0
  • Quindi aggiungere la configurazione del bridge in /etc/network.d/bridge:

     iface wlan0 inet6 manual
     iface br0 inet6 static
         bridge_ports bat0 wlan0
         bridge_fd 0

Al prossimo riavvio delle interfacce coinvolte si fornirà una rete wireless Ninux tramite la quale qualunque dispositivo in grado di ricevere l'autoconfigurazione IPv6 si potrà collegare direttamente all'isola lombarda, senza doversi configurare come nodo batman.

Router verso la rete di casa

TODO

OpenWRT

Separazione rete ninux / rete locale tramite vlan

In questa sezione vedremo come utilizzare un router con installato openwrt e almeno due interfaccie lan, per permettere l'accesso alla rete ninux dalla rete locale, senza che dalla rete ninux ci sia accesso indiscriminato alla rete locale.

Per fare questo verra' creata una rete vlan (virtual lan) all'interno della rete locale. Queste istruzioni sono per router con openwrt con switch integrato. La procedura e' stata provata su un RT5350F-OLinuXino e openwrt versione 15.05.

Per prima cosa verificare qual è la porta lan e la porta wan. Collegandoci alla router tramite ssh, e possibile vedere il file di configurazione /etc/config/network:

cat /etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd74:7309:6675::/48'

config interface 'lan'
        option ifname 'eth0.1'
        option force_link '1'
        option macaddr '00:0c:43:30:52:88'
        option type 'bridge'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config interface 'wan'
        option ifname 'eth0.2'
        option force_link '1'
        option macaddr '00:0c:43:30:52:89'
        option proto 'dhcp'

config interface 'wan6'
        option ifname 'eth0.2'
        option proto 'dhcpv6'

config switch
        option name 'rt305x'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'rt305x'
        option vlan '1'
        option ports '0 1 2 3 6t'

config switch_vlan
        option device 'rt305x'
        option vlan '2'
        option ports '4 6t'

Nel caso uno volesse sapere qual è la porta corrispondente è possibile usare il comando swconfig:

root@OpenWrt:/# swconfig list
Found: switch0 - rt305x

root@OpenWrt:/# swconfig dev switch0 show | egrep -i "port|vlan"
[...]
Port 0:
        link: port:0 link:up speed:100baseT full-duplex 
Port 1:
        link: port:1 link:down
Port 2:
        link: port:2 link:down
Port 3:
        link: port:3 link:down
Port 4:
        link: port:4 link:down
Port 5:
        link: port:5 link:down
Port 6:
        link: port:6 link:up speed:1000baseT full-duplex 
VLAN 1:
        ports: 0 1 2 3 6t 
VLAN 2:
        ports: 4 6t 

Da questi due comandi vediamo che il nome dello switch è switch0, e che in questo momento l'unico cavo collegato è collegato alla porta 0 (link up). La porta 6, non e' una vera porta fisica, ma è la cosidetta porta cpu, ossia la porta dello switch connessa alla cpu. Vediamo anche che ci sono due vlan configurate 1 e 2, e che la porta 0 e' associata alla vlan1. Nella sezione delle vlan, la 't' di fianco al numero di porta indica che la porta e' "tagged". Si consiglia la lettura delle seguenti pagine switch_configuration, managed_switch per approfondire l'argomento.

Se si guarda invece l'output di ifconfig si vedranno una serie di interfaccie configurate. Tra cui eth0.1 e eth0.2, che corrispondono rispettivamente alla vlan 1 e 2.

A questo punto possiamo creare una nuova vlan su cui far arrivare la rete ninux:

root@OpenWrt:/# swconfig dev switch0 vlan 212 set ports '0 6t'
root@OpenWrt:/# swconfig dev switch0 set apply