HowToRete: differenze tra le versioni

Da EigenWiki.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(24 versioni intermedie di 7 utenti non mostrate)
Riga 1: Riga 1:
Bene, hai un'antenna sul tetto ed ora?
Bene, hai un'antenna sul tetto, ed ora?


Se tutto è andato a buon fine appena collegato alla rete il tuo computer riceverà delle informazioni come IP, rotte, DNS servers, ... vediamo un po' cosa sono, se funziona tutto e se hai accesso alla rete...
Se tutto è andato a buon fine appena collegato alla rete il tuo computer riceverà delle informazioni come IP, rotte, DNS servers, etc. vediamo un po' cosa sono, se funziona tutto e se hai accesso alla rete...
 
In questa guida si assume che tu abbia Linux.
 
Se invece sei utente Windows o Mac probabilmente non ti interessa altro oltre a "basta che funzioni", salta direttamente a: [[#Riavviare|Riavviare]]. In caso contrario ti invitiamo a creare una nuova guida su questo wiki!


Essendo noi sostenitori del software con licenze open e libere, usiamo quasi esclusivamente sistemi operativi open (linux, nella fattispecie), quindi per adesso il wiki è d'aiuto solo per chi, come noi, ha interesse nel promuovere licenze open. Se sei interessato a partecipare ugualmente, ma possiedi un altro sistema operativo sentiti pure libero di aggiungere delle sezioni con guide per il tuo sistema operativo.


== Overview ==
== Overview ==


Quando ti connetti ad una rete di computers stai usando un insieme di protocolli ed elementi fisici, le loro interazioni sono schematizzate in uno standard chiamato [http://it.wikipedia.org/wiki/Open_Systems_Interconnection OSI]. Per avere un'idea del funzionamento della rete eigenNet, ma non solo, possiamo partire descrivendo il percorso che faranno i dati dalla sorgente alla destinazione, partiamo dal computer (il tuo) passo passo:
Quando ti connetti ad una rete di computers, stai usando un insieme di protocolli ed elementi fisici, le loro interazioni sono schematizzate in uno standard chiamato [http://it.wikipedia.org/wiki/Open_Systems_Interconnection OSI]. Per avere un'idea del funzionamento della rete eigenNet, ma non solo, possiamo partire descrivendo il percorso che faranno i dati dalla sorgente alla destinazione, partiamo dal computer (il tuo) passo passo:
#Dei dati devono essere spediti dal computer client, per esempio il tuo, ad un server, per esempio uno dei server di wikipedia
#Dei dati devono essere spediti dal computer client, per esempio il tuo, ad un server, per esempio uno dei server di wikipedia
#Il computer richiede ad un server DNS qual è l'IP del server di wikipedia (don't panic, è tutto spiegato più sotto)
#Il computer richiede ad un server DNS qual è l'IP del server di wikipedia (non ti preoccupare, è tutto spiegato più sotto)
#Una volta ottenuto l'IP il computer proverà a connettersi al server per ricevere i dati, i testi, le immagini
#Una volta ottenuto l'IP, il computer proverà a connettersi al server per ricevere i dati, i testi, le immagini
#Per fare questo creerà dei piccoli pacchetti di bits che verranno spediti alla scheda di rete (sia questa wireless o via cavo) contenenti la richiesta di questo o quel contenuto presente su wikipedia
#Per fare questo, creerà dei piccoli pacchetti di bits che verranno spediti alla scheda di rete (questa wireless o via cavo) contenenti la richiesta di questo o quel contenuto presente su wikipedia
#La scheda di rete si occuperà di trasmettere i pacchetti al passo successivo, nel caso della nostra rete i pacchetti verranno trasmessi fino all'antenna che è sul tuo tetto o sul tetto più vicino e da lì inizierà il percorso fino al gateway più vicino, dal quale raggiungerà il sito richiesto.
#La scheda di rete si occuperà di trasmettere i pacchetti al passo successivo, nel caso della nostra rete i pacchetti verranno trasmessi fino all'antenna che è sul tuo tetto o sul tetto più vicino, e da lì inizierà il percorso fino al gateway più vicino, dal quale raggiungerà il sito richiesto.
#Per il ritorno basta seguire il percorso inverso ma questa volta non serve il passaggio del DNS visto che i pacchetti contengono già nei loro header gli IP corretti (come una raccomandata a/r).
#Per il ritorno basta seguire il percorso inverso ma questa volta non serve il passaggio del DNS, visto che i pacchetti contengono già nei loro header gli IP corretti (come una raccomandata a/r).


Un po' di spiegazioni dei termini usati:
Un po' di spiegazioni dei termini usati:
Riga 24: Riga 21:
**Un IPv4 è un indirizzo formato da 4 campi di 8 bit ciascuno, in decimale i valori oscillano da 0 a 255 (ad esempio 123.4.56.78)<br />
**Un IPv4 è un indirizzo formato da 4 campi di 8 bit ciascuno, in decimale i valori oscillano da 0 a 255 (ad esempio 123.4.56.78)<br />
::https://en.wikipedia.org/wiki/IPv4<br />
::https://en.wikipedia.org/wiki/IPv4<br />
:*Un IPv6 è un indirizzo formato da 8 campi di 16 bit ciascuno, in base16 i valori oscillano da 0000 a FFFF (ad esempio 2a00:1508:1:f010:abcd:1234:ef56:7890)<br />
:*Un IPv6 è un indirizzo formato da 8 campi di 16 bit ciascuno, in base 16 i valori oscillano da 0000 a FFFF (ad esempio 2a00:1508:1:f010:abcd:1234:ef56:7890)<br />
::https://en.wikipedia.org/wiki/IPv6<br />
::https://en.wikipedia.org/wiki/IPv6<br />




*Quando ci si connette ad una rete o si imposta sul proprio PC un IP statico o si chiede al DHCP che ci dia lui un IP.
*Quando ci si connette ad una rete, o si imposta sul proprio PC un IP statico o si chiede al DHCP che ci dia lui un IP.
:Il [http://it.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol DHCP] è protocollo che permette di avere assegnati i parametri corretti al momento della connessione, esso provvederà (se correttamente configurato lato server) a fornirci principalmente IP, rotte e DNS.
:Il [http://it.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol DHCP] è protocollo che permette di avere assegnati i parametri corretti al momento della connessione, esso provvederà (se correttamente configurato lato server) a fornirci principalmente IP, rotte e DNS.


Riga 41: Riga 38:




*Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo computer in base al suo IP. Ad esempio una rotta può essere qualcosa tipo: "per comunicare tutti i pc che hanno un IP che inizia con 12.34. (la destnazione, può riferirsi ad un IP solo o a un grosso gruppo di IP che iniziano tutti nello stesso modo) devi passare tramite il pc che ha IP 11.22.33.44 (il gateway)".<br />
*Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo computer in base al suo IP. Ad esempio, una rotta può essere qualcosa tipo: "per comunicare con tutti i PC che hanno un IP che inizia con 12.34. (la destinazione, può riferirsi ad un IP solo o a un grosso gruppo di IP che iniziano tutti nello stesso modo) devi passare tramite il PC che ha IP 11.22.33.44 (il gateway)".<br />
:Perciò ogni rotta è un'indicazione "stradale" ed è strutturata così:
:Perciò ogni rotta è un'indicazione "stradale" ed è strutturata così:
  :{| border=1
  :{| border=1
     | primo campo
     | primo campo
     | destinazione (default = 0.0.0.0/0 ovvero tutto)
     | destinazione (default = 0.0.0.0/0 ovvero tutto)
    | es. 192.168.1.0/24
     |-
     |-
     | secondo campo
     | secondo campo
     | gateway ovvero colui che ti permette di raggiungere la destinazione
     | gateway ovvero colui che ti permette di raggiungere la destinazione
    | es. via 192.168.1.1
     |-
     |-
     | campo dev
     | campo dev
     |indica l'interfaccia di rete (ad es. wireless o cavo) attraverso la quale si raggiunge la destinazione
     | indica l'interfaccia di rete (ad es. wireless o cavo o vpn) attraverso la quale si raggiunge la destinazione
    | es. dev wlan0
     |}
     |}


Usando il terminale su Linux vediamo la configurazione delle rotte sul nostro pc per esempio con il commando "ip route show", ottenendo qualcosa di simile a:
Apriamo il terminale: nella maggior parte delle distribuzioni Linux lo troverete sotto
Accessori -> Terminale
o
Sistema -> Terminale
A seconda dell'ambiente grafico.
 
Useremo la convenzione per cui i comandi che iniziano con
user@computer $
sono dati dall'utente mentre quelli che cominciano con
user@computer #
sono dati dal superutente, per diventare superutente basta digitare
user@computer $ su
o
user@computer $ sudo su
 
Usando il terminale su Linux, vediamo la configurazione delle rotte sul nostro PC, per esempio con il commando "ip route show", ottenendo qualcosa di simile a:


  user@computer $ ip route show
  user@computer $ ip route show
Riga 64: Riga 79:
  192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111  
  192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111  


*:"10.0.0.0/8 via 172.18.0.1 dev eigennet" vuol dire che tutti i computer con IP 10.X.Y.Z  sono raggiungibili attraverso il gateway avente IPv4 172.18.0.1 e l'interfaccia di rete "eigennet" (in questo caso non si tratta di interfaccia fisica, come quella via cavo o wireless bensì di una interfaccia che comunica con una [[VPN]], argomento molto più avanzato).<br />
*"10.0.0.0/8 via 172.18.0.1 dev eigennet" vuol dire che tutti i computer con IP 10.X.Y.Z  sono raggiungibili attraverso il gateway avente IPv4 172.18.0.1 e l'interfaccia di rete "eigennet" (in questo caso non si tratta di interfaccia fisica, come quella via cavo o wireless bensì di una interfaccia che comunica con una [[VPN]], argomento molto più avanzato).<br />


*:"10.174.0.0/15 dev wlan0" vuol dire che tutti i computer con IP 10.17{cifra che può essere 4 o 5}.X.Y sono raggiungibili direttamente (cioè senza dover passare da un gateway) attraverso l'interfaccia wireless chiamata "wlan0"
*"10.174.0.0/15 dev wlan0" vuol dire che tutti i computer con IP 10.17{cifra che può essere 4 o 5}.X.Y sono raggiungibili direttamente (cioè senza dover passare da un gateway) attraverso l'interfaccia wireless chiamata "wlan0"


*Un protocollo di routing è ciò che decide come instradare il traffico tra i nodi gestendo le rotte. Nella nostra rete si usano [http://www.open-mesh.org/projects/batman-adv/wiki B.A.T.M.A.N.-adv] e [http://www.pps.univ-paris-diderot.fr/~jch/software/babel/ babel] per i nodi che forniscono uscita su internet.


*I DNS (Domain Name Server) sono dei server che conoscono le associazioni "nome del sito" <-> "indirizzo IP del server su cui sta il sito". Il punto è che la comunicazione avviene tra l'IP del PC e l'IP del server, dunque non si può contattare un sito, esempio "eigenlab.org" senza prima conoscerne l'indirizzo IP. Quando noi cerchiamo di contattare un sito scrivendone il nome (come eigenlab.org) il nostro PC farà una domanda ad un DNS il quale ci risponderà con l'indirizzo IP associato a quel nome (nel nostro caso ad esempio l'associazione sarà eigenlab.org->10.175.0.85).
*I DNS (Domain Name Server) sono dei server che conoscono le associazioni "nome del sito" <-> "indirizzo IP del server su cui sta il sito". Il punto è che la comunicazione avviene tra l'IP del PC e l'IP del server, dunque non si può contattare un sito, esempio "eigenlab.org" senza prima conoscerne l'indirizzo IP. Quando noi cerchiamo di contattare un sito scrivendone il nome (come eigenlab.org) il nostro PC farà una domanda ad un DNS (del quale conosciamo già l'IP perché ce lo ha detto il DHCP server) il quale ci risponderà con l'indirizzo IP associato a quel nome (nel nostro caso ad esempio l'associazione sarà eigenlab.org->10.175.0.85).
:Se ti interessa approfondire cos'è un server DNS puoi dare un'occhiata <br />
:Se ti interessa approfondire cos'è un server DNS puoi dare un'occhiata <br />
:https://en.wikipedia.org/wiki/Domain_Name_System<br />
:https://en.wikipedia.org/wiki/Domain_Name_System<br />
Riga 77: Riga 93:
Bene innanzitutto vediamo se tutto è ok
Bene innanzitutto vediamo se tutto è ok


Prova ad aprire un terminale  (in Linux ha l'icona di un quadrato nero, spesso sta in:programmi->accessori->console/terminale)


ed a scrivere:
Aprendo un terminale digitate


  ping 10.174.0.100 [invio]
  ping 10.174.0.100 [invio]


Questo farà in modo che il tuo computer provi a parlare con uno dei server interni alla rete, quello che farà sarà mandare tanti piccoli pacchetti con scritto PING ed aspetterà altrettanti PONG in risposta dal server che ha IPv4 10.174.0.100.
Questo farà in modo che il tuo computer provi a parlare con uno dei server interni alla rete, quello che farà sarà mandare tanti piccoli pacchetti con scritto PING ed aspetterà altrettanti PONG in risposta dal server che ha IPv4 10.174.0.100.


Se compare qualcosa simile a:
Se compare qualcosa simile a:
Riga 96: Riga 111:
Allora stai comunicando con il server e sei dentro la rete :-)
Allora stai comunicando con il server e sei dentro la rete :-)


Per interrompere il comando premi “Ctrl+C” (come per fare copia) che nella shell Linux termina un programma
Per interrompere il comando, premi “Ctrl+C” (come per fare copia) che nella shell Linux termina un programma


  --- 10.174.0.100 ping statistics ---
  --- 10.174.0.100 ping statistics ---
Riga 102: Riga 117:
  rtt min/avg/max/mdev = 70.992/130.862/247.472/70.216 ms
  rtt min/avg/max/mdev = 70.992/130.862/247.472/70.216 ms


Questa sezione da qualche informaziona aggiuntiva ovvero quanti PING non hanno ricevuto un PONG, il minor tempo di risposta, quello medio, quello massimo e la deviazione standard dei tempi.
Questa sezione da qualche informazione aggiuntiva, ovvero quanti PING non hanno ricevuto un PONG, il minor tempo di risposta, quello medio, quello massimo e la deviazione standard dei tempi.


Altrimenti se il risultato è  
Altrimenti se il risultato è  
Riga 114: Riga 129:
Vuol dire che non sei collegato alla rete, dobbiamo iniziare a fare un po' di indagini. Intanto capiamo come è configurato il tuo computer.
Vuol dire che non sei collegato alla rete, dobbiamo iniziare a fare un po' di indagini. Intanto capiamo come è configurato il tuo computer.


== Trubleshooting ==
== Troubleshooting ==
Cominciamo col controllare un elemento per volta fra quelli coinvolti solitamente nei problemi dal lato client.
Cominciamo col controllare un elemento per volta fra quelli coinvolti solitamente nei problemi dal lato client.


Riga 144: Riga 159:
Cosa guardare:
Cosa guardare:
  <BROADCAST,MULTICAST,UP,LOWER_UP>  
  <BROADCAST,MULTICAST,UP,LOWER_UP>  
*è lo stato dell'interfaccia le cose importanti sono UP, LOWER_UP che ci dicono che l'interfaccia è attiva (potrebbe essere disattivata via software, via hardware ad esempio col bottoncino della wireless fisicamente presente sul portatile oppure semplicemente potrebbe esserci il cavo di rete staccato o rovinato (nel caso di scritta NO-CARRIER)).
*è lo stato dell'interfaccia; le cose importanti sono UP, LOWER_UP, che ci dicono che l'interfaccia è attiva (potrebbe essere disattivata via software, via hardware ad esempio col bottoncino della wireless fisicamente presente sul portatile oppure semplicemente potrebbe esserci il cavo di rete staccato o rovinato (nel caso di scritta NO-CARRIER)).


  inet 10.175.0.213/15 brd 10.175.0.255 scope global  
  inet 10.175.0.213/15 brd 10.175.0.255 scope global  
Riga 151: Riga 166:


  inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global  
  inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global  
*questo è l'IPv6 dell'interfaccia: la nostra subnet inizia con *2001:1418:1a9:eebb* se hai un IP che comincia in quel modo è uno dei nostri, come prima lo slash in fondo indica la subnet, 64 è corretto. Ignora la riga "inet6 fe80[...]/64 scope link" che riguarda un indirizzo presente anche se non si è davvero connessi.  
*questo è l'IPv6 dell'interfaccia: la nostra subnet inizia con *2001:1418:1a9:eebb*, se hai un IP che comincia in quel modo è uno dei nostri, come prima lo slash in fondo indica la subnet, 64 è corretto. Ignora la riga "inet6 fe80[...]/64 scope link" che riguarda un indirizzo presente anche se non si è davvero connessi.  


==== Nessun IP ====
==== Nessun IP ====
Se non hai gli IP impostati possiamo guardare le interfacce, ci viene in aiuto il comando  
Se non hai gli IP impostati possiamo guardare le interfacce, in questo caso ci viene in aiuto il comando  


  ip link
  ip link
Riga 161: Riga 176:
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT  
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT  
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
  2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
     link/ether 00:23:8b:0b:b5:39 brd ff:ff:ff:ff:ff:ff
     link/ether 00:23:8b:0b:b5:39 brd ff:ff:ff:ff:ff:ff
  3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
  3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
Riga 179: Riga 194:
  sudo ip link set dev <interfaccia> up
  sudo ip link set dev <interfaccia> up


Dopodichè ricontrollare se l'interfaccia è UP e provare a riconnettersi alla rete per vedere se viene assegnato un IP.
Dopodiché ricontrollare se l'interfaccia è UP e provare a riconnettersi alla rete per vedere se viene assegnato un IP.


Nel caso non succedesse è possibile capire (nel caso di DHCP) cosa stia succedendo:
Altre cose ''esotiche'' che potrebbero impedire ad una interfaccia di rete di essere UP: il bottoncino della wireless sul portatile è su off, è necessario sbloccare l'interfaccia wireless via software con
rfkill unblock all
oppure raramente può esser necessario ricaricate i driver della scheda di rete, trovate il nome del driver con
lspci -k
sotto "Network controller" o "Ethernet controller", dopo "Kernel driver in use:", lo rimuovete e ricaricate con
sudo rmmod <nome del driver>; sudo modprobe <nome del driver>
 
Nel caso l'interfaccia indicasse UP per un certo tempo ma non si ricevesse un IP dal server DHCP è possibile capire cosa stia succedendo:
*Se usate NetworkManager controllate se siete associati all'Access Point (AP) di eigennet con
*Se usate NetworkManager controllate se siete associati all'Access Point (AP) di eigennet con
  nm-tool
  nm-tool
*Altrimenti provate con
*Altrimenti provate con
  iwconfig
  iwconfig
Che vi daranno informazioni sulla connessione wireless, sopratutto i primi campi. Se risultate associati all'access point allora provate a dare
* O ancora
iw dev <interfaccia> link
 
Che vi daranno informazioni sulla connessione wireless, sopratutto i primi campi. Se risultate associati all'access point (cioè c'è scritto il nome della rete, ad esempio "eigenNet") allora provate a dare
  sudo dhcpcd wlan0  
  sudo dhcpcd wlan0  
oppure, se lamenta che dhcpcd non esiste
oppure, se lamenta che dhcpcd non esiste
  sudo dhclient -v wlan0
  sudo dhclient -v wlan0
Che cercherà di ottenere i parametri in modo dinamico e vi darà output, grazie a quello capirete se ci sono altri problemi e potrete contattarci per segnalarlo ed aiutarci.
Che cercherà nuovamente di ottenere i parametri (IP, rotte, DNS...) chiedendo se nella rete sono presenti dei server DHCP. In base all'output (il testo che esce dai comandi sopra riportati) capirete se ci sono altri problemi e potrete contattarci per segnalarlo ed aiutarci.


=== Controllo Delle Rotte ===
=== Controllo Delle Rotte ===
Riga 209: Riga 234:


==== Nessuna rotta ====
==== Nessuna rotta ====
Per navigare dentro eigennet non serve una rotta global (0.0.0.0/0) perchè è una rete locale e, una volta connessi, si può raggiungere ogni risorsa dall'interno.  
Per navigare dentro eigennet non serve una rotta global (0.0.0.0/0), perché è una rete locale e, una volta connessi, si può raggiungere ogni risorsa dall'interno.  


Se quindi il comando vi restituisce qualcosa di simile a  
Se quindi il comando vi restituisce qualcosa di simile a  
Riga 215: Riga 240:
  10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178  
  10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178  


Vuol dire che avete la possibilità di raggiungere tutte le risorse interne ma che non potete raggiungere internet. Questo può essere a causa di qualche problema con i gateway o un problema nel raggiungerli. Se conoscete l'IP della macchina che dovrebbe farvi da gateway per il mondo provate a pingarla per vedere se la raggiungete. Nel caso non riusciste fatecelo sapere, qualcosa sta succedendo sulla rete.
Vuol dire che avete la possibilità di raggiungere tutte le risorse interne ma che non potete raggiungere internet. Questo può essere a causa di qualche problema con i gateway o un problema nel raggiungerli. Se conoscete l'IP della macchina che dovrebbe farvi da gateway per il mondo, provate a pingarla (ovvero fare un ping al suo indirizzo) per vedere se la raggiungete. Nel caso non riusciste fatecelo sapere, qualcosa sta succedendo sulla rete.
 
==== Rotta presente ma comunque non raggiungo internet ====
 
Nel caso ci sia una rotta definita anche per default, ma non foste comunque in grado di connettervi potete aiutarci nel risolvere il problema digitando in un terminale il comando
traceroute wikipedia.org
o
tracepath wikipedia.org
 
questo dovrebbe dare un risultato simile a
 
user@computer $ tracepath wikipedia.org
1:  etherpad.eigenlab.org                          0.090ms pmtu 1500
1:  10.175.0.101                                      0.811ms
1:  10.175.0.101                                      0.496ms
2:  131.114.186.1                                    0.946ms
3:  fib-ser.unipi.it                                      0.945ms asymm  4
4:  ru-unipi-rx1-pi1.pi1.garr.net                  0.970ms
5:  rx1-pi1-rx1-rm2.rm2.garr.net                9.030ms
6:  r-rm2-rx1-rm2.rm2.garr.net                  5.639ms asymm  7
7:  no reply                                              alcuni server nascondono il loro nome
8:  no reply                                             
9:  tiscali.mil01.atlas.cogentco.com          18.962ms asymm 10
10:  xe-9-2-0.was10.ip4.tinet.net                113.285ms asymm 15
11:  no reply
12:  no reply
13:  no reply
14:  no reply
15:  no reply
16: 208.80.152.201                                              152.453ms reached
 
 
Questo comando restituisce il percorso che hanno fatto i nostri pacchetti per raggiungere la destinazione, nel caso non riusciste a vedere un ""reached"" in fondo all'output del comando segnalatecelo includendo anche l'ultimo ip che vedete.
 
Per servizi interni alla rete, per come essa è strutturata, questo comando non funziona


=== Controllo dei DNS ===  
=== Controllo dei DNS ===  
Riga 223: Riga 282:
Il risultato dovrebbe essere simile a questo:
Il risultato dovrebbe essere simile a questo:


  user@computer $ cat /etc/resolv.conf.head
  user@computer $ cat /etc/resolv.conf  
  nameserver 10.174.0.101
  nameserver 10.174.0.101
  nameserver 10.174.0.100
  nameserver 10.174.0.100


queste due righe indicano gli IP dei server DNS, se il file è vuoto lancia questo comando da shell
queste due righe indicano gli IP dei server DNS, se il file è vuoto, lancia questo comando da shell


  echo -e "nameserver 10.174.0.100\nnameserver 10.174.0.101">/etc/resolv.conf
  echo -e "nameserver 10.174.0.100\nnameserver 10.174.0.101">/etc/resolv.conf
Riga 233: Riga 292:
Che sovrascrive in /etc/resolv.conf con le due righe corrette.
Che sovrascrive in /etc/resolv.conf con le due righe corrette.


Un sintomo del fatto che i DNS non funzionino può essere che se fai
Un sintomo del fatto che i DNS non funzionino può essere che facendo
  ping google.it
  ping google.it


non fa nulla ma
il terminale non reagisce (come succedeva all'inizio della pagina ) ma
  ping 8.8.8.8
  ping 8.8.8.8


Riga 249: Riga 308:
  dig @8.8.8.8 nomesi.to
  dig @8.8.8.8 nomesi.to


=== Entrare nelle antenne ===
Dig solitamente è installato di default, se non lo fosse cercate su internet il nome della vostra distribuzione più dig (solitamente sta in qualche programma chiamato dnsutils, bindtools...)


Istruzioni? Eh... C'è da usare ssh...


=== Ma la mia antenna funziona/è accesa? ===
=== Ma la mia antenna funziona/è accesa? ===
Riga 257: Riga 315:
Per controllare che l'antenna sia accesa si possono sfruttare un paio di cose:
Per controllare che l'antenna sia accesa si possono sfruttare un paio di cose:


* Prima di tutto collegarsi via cavo all'antenna usando il cavo ethernet che arriva in casa o attaccandosi al POE (Power Over Ethernet ovvero lo scatolino nero che alimenta l'antenna usando la porta con scritto LAN, NON POE (perchè altrimenti forse si frigge la scheda di rete)
* Prima di tutto collegarsi via cavo all'antenna usando il cavo ethernet che arriva in casa o attaccandosi al POE (Power Over Ethernet ovvero lo scatolino nero che alimenta l'antenna usando la porta con scritto LAN, NON POE (perché altrimenti forse si frigge la scheda di rete)
   
   
* controllare che sull'interfaccia eth0 '''non''' compaia NO-CARRIER col comando
* controllare che sull'interfaccia cablata '''non''' compaia NO-CARRIER col comando


  ip link show dev eth0
  ip link show dev <interfaccia>


*provare a fare dei ping IPv6 link local ovvero provare a pingare un indirizzo che viene tradotto dal protocollo ipv6 in “ ogni scheda attaccata direttamente all'interfaccia “ questo si può fare digitando il comando
*provare a fare dei ping IPv6 link local, ovvero provare a pingare un indirizzo che viene tradotto dal protocollo ipv6 in “ ogni scheda attaccata direttamente all'interfaccia “ questo si può fare digitando il comando


  ping6 ff02::1%<nome dell'interfaccia di rete cablata ad esempio eth0>
  ping6 ff02::1%<nome dell'interfaccia di rete cablata ad esempio eth0>


Se non si riceve risposta guardare la sezione Nessun Ip
Se si riceve risposta bisogna prendere nota dell'IPv6 locale della propria scheda di rete ethernet, in modo da poter vedere se l'antenna risponde ai ping. Questo si fa facilmente con
 
ip -6 address show dev eth0
 
e guardando l'IP che comincia con fe80:: , se ai ping risponde anche un altro IP, l'antenna è accesa e risponde
=== Entrare nelle antenne ===
Abbiamo trovato nella sezione precedente l'IP dell'antenna. Per entrarci dobbiamo usare il programma SSH, che permette di interagire con l'antenna facendo apparire sul nostro computer il suo terminale, i comandi disponibili quindi saranno quelli installati sull'antenna.
Il comando da lanciare è:
ssh -i <chiaveprivata> root@<ip antenna> [invio]
A questo punto il sistema chiederà di inserire la password della chiave (nel caso fosse protetta), altrimenti l'antenna ci darà subito il benvenuto con la ricetta di un drink seguito dal prompt.
BusyBox v1.19.4 (2012-10-02 10:56:10 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
  _______                    ________        __
  |      |.-----.-----.-----.|  |  |  |.----.|  |_
  |  -  ||  _  |  -__|    ||  |  |  ||  _||  _|
  |_______||  __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S  F R E E D O M
  -----------------------------------------------------
  ATTITUDE ADJUSTMENT (Bleeding Edge, r33603)
  -----------------------------------------------------
  * 1/4 oz Vodka      Pour all ingredients into mixing
  * 1/4 oz Gin        tin with ice, strain into glass.
  * 1/4 oz Amaretto
  * 1/4 oz Triple sec
  * 1/4 oz Peach schnapps
  * 1/4 oz Sour mix
  * 1 splash Cranberry juice
  -----------------------------------------------------
root@OpenWrt:~#
 
Vediamo ora come fare alcune operazioni comuni:
 
* Per ottenere la lista dei nodi raggiungibili si usa il comando "batctl originators" o il comando abbreviato "batctl o"
root@OpenWrt:~# batctl o
[B.A.T.M.A.N. adv 2012.3.0, MainIF/MAC: br-clients/00:27:22:c3:34:cb (bat0)]
  Originator      last-seen (#/255)          Nexthop [outgoingIF]:  Potential nexthops ...
00:27:22:c3:34:38    0.070s  (170) 00:27:22:c2:34:86 [    wlan0]: 00:27:22:c2:34:86 (170)
00:27:22:c3:34:86    0.070s  (200) 00:27:22:c2:34:86 [    wlan0]: 00:27:22:c2:34:86 (200)
de:9f:db:5c:c0:85    0.420s  (169) 00:27:22:c2:34:86 [    wlan0]: de:9f:db:5c:c0:85 (  0) 00:27:22:c2:34:86 (169)
06:15:6d:fc:71:f4    0.840s  (147) 00:27:22:c2:34:86 [    wlan0]: 00:27:22:c2:34:86 (147)
00:15:6d:fd:71:f4    0.400s  (148) 00:27:22:c2:34:86 [    wlan0]: 00:27:22:c2:34:86 (148)
dc:9f:db:5d:c0:85    0.400s  (168) 00:27:22:c2:34:86 [    wlan0]: 00:27:22:c2:34:86 (168)
00:15:6d:7b:97:0b    0.290s  (143) 00:27:22:c2:34:86 [    wlan0]: 00:27:22:c2:34:86 (143)
00:27:22:c2:34:86    0.600s  (200) 00:27:22:c2:34:86 [    wlan0]: 00:27:22:c2:34:86 (200)
La prima colonna indica il nodo destinazione, Nexthop è il prossimo nodo a cui verranno consegnati i pacchetti. Gli originators sono tutti i nodi raggiungibili direttamente o indirettamente, cioè tutta la porzione di rete che possiamo vedere; gli indirizzi contenuti nella colonna NextHop sono i nostri vicini più prossimi, ovvero solamente quelli direttamente raggiungibili.
 
* Per abilitare o disabilitare la modalità "hotspot"
 
La modalità "access point" o "hotspot" permette ai normali computer di connettersi ad eigenNet, purché ci sia un server DHCP nelle vicinanze (oppure puoi usare un indirizzo IP statico).
Normalmente, è consigliabile avere questa opzione disabilitata e utilizzare un access point dedicato, in quanto influisce negativamente sulle performance come nodo della rete.
 
Per attivare la modalità "hotspot", è necessario cambiare un paio di valori nel file di configurazione <pre>/etc/config/eigennet</pre> utilizzando vim, l'editor di testo predefinito.
 
La riga <pre>option wifi_clients 'false'</pre> deve diventare <pre>option wifi_clients 'true'</pre> o viceversa, nel caso si volesse disattivare.


Se si riceve risposta bisogna prendere nota dell'IPv6 locale della propria scheda di rete ethernet in modo da poter vedere se l'antenna risponde ai ping. Questo si fa facilemnte con
La riga <pre>option bootmode '2'</pre> deve diventare <pre>option bootmode '1'</pre>


ip -6 address show dev eth0
L'anntenna va poi riavviata. La seconda modifica chiede all'antenna di rileggere la configurazione e applicare le modifiche, il valore di bootmode tornerà automaticamente a 2.
 
* Per cambiare la chiave di accesso all'antenna bisogna modificare la riga <pre>option sshAuthorizedKeys '...'</pre> sostituendo al posto dei puntini, il contenuto del file della chiave pubblica.


e guardando l'ip che comincia con fe80:: , se ai ping risponde anche un'altro ip l'antenna è accesa e risponde
[http://support.suso.com/supki/SSH_Tutorial_for_Linux Tutorial SSH]
[http://heather.cs.ucdavis.edu/~matloff/UnixAndC/Editors/ViIntro.html Tutorial vim]


=== Riavviare ===
=== Riavviare ===
Una cosa buona se l'antenna per qualche motivo non si comporta bene è riavviarla, per farlo basta staccare il cavo attaccato allo scatolino nero alla porta con scritto POE oppure togliere la corrente se per caso il montaggio è stato fatto portando la corrente sul tetto, aspettare 12 secondi contando
Una cosa buona, se l'antenna per qualche motivo non si comporta bene, è riavviarla. Per farlo basta staccare il cavo attaccato allo scatolino nero alla porta con scritto POE oppure togliere la corrente se per caso il montaggio è stato fatto portando la corrente sul tetto, aspettare 12 secondi contando
* Prealpi Trivenete 1  
* Prealpi Trivenete 1  
* Alpi Giulie 2
* Alpi Giulie 2
Riga 283: Riga 397:
* Alpi Liguri e Alpi Marittime 12
* Alpi Liguri e Alpi Marittime 12


Se comunque non sei riuscito a risolvere [[https://eigenlab.org/index.php/dove-siamo|contattaci]].
Se comunque non sei riuscito a risolvere [https://eigenlab.org/index.php/dove-siamo contattaci].




Riga 289: Riga 403:


http://eigenlab.org/index.php/eigennet/servizi
http://eigenlab.org/index.php/eigennet/servizi
[[Categoria:eigenNet]]
[[Categoria:HowTo]]

Versione attuale delle 18:48, 19 nov 2016

Bene, hai un'antenna sul tetto, ed ora?

Se tutto è andato a buon fine appena collegato alla rete il tuo computer riceverà delle informazioni come IP, rotte, DNS servers, etc. vediamo un po' cosa sono, se funziona tutto e se hai accesso alla rete...

Essendo noi sostenitori del software con licenze open e libere, usiamo quasi esclusivamente sistemi operativi open (linux, nella fattispecie), quindi per adesso il wiki è d'aiuto solo per chi, come noi, ha interesse nel promuovere licenze open. Se sei interessato a partecipare ugualmente, ma possiedi un altro sistema operativo sentiti pure libero di aggiungere delle sezioni con guide per il tuo sistema operativo.

Overview

Quando ti connetti ad una rete di computers, stai usando un insieme di protocolli ed elementi fisici, le loro interazioni sono schematizzate in uno standard chiamato OSI. Per avere un'idea del funzionamento della rete eigenNet, ma non solo, possiamo partire descrivendo il percorso che faranno i dati dalla sorgente alla destinazione, partiamo dal computer (il tuo) passo passo:

  1. Dei dati devono essere spediti dal computer client, per esempio il tuo, ad un server, per esempio uno dei server di wikipedia
  2. Il computer richiede ad un server DNS qual è l'IP del server di wikipedia (non ti preoccupare, è tutto spiegato più sotto)
  3. Una volta ottenuto l'IP, il computer proverà a connettersi al server per ricevere i dati, i testi, le immagini
  4. Per fare questo, creerà dei piccoli pacchetti di bits che verranno spediti alla scheda di rete (questa wireless o via cavo) contenenti la richiesta di questo o quel contenuto presente su wikipedia
  5. La scheda di rete si occuperà di trasmettere i pacchetti al passo successivo, nel caso della nostra rete i pacchetti verranno trasmessi fino all'antenna che è sul tuo tetto o sul tetto più vicino, e da lì inizierà il percorso fino al gateway più vicino, dal quale raggiungerà il sito richiesto.
  6. Per il ritorno basta seguire il percorso inverso ma questa volta non serve il passaggio del DNS, visto che i pacchetti contengono già nei loro header gli IP corretti (come una raccomandata a/r).

Un po' di spiegazioni dei termini usati:


  • Un IP è un indirizzo numerico (ad esempio 123.4.56.78) che identifica un PC in una rete, se il PC viene spostato su una rete diversa il suo IP sarà diverso. Ci sono due tipi di IP: quello classico (IPv4) e quello nuovissimo (IPv6).
    • Un IPv4 è un indirizzo formato da 4 campi di 8 bit ciascuno, in decimale i valori oscillano da 0 a 255 (ad esempio 123.4.56.78)
https://en.wikipedia.org/wiki/IPv4
  • Un IPv6 è un indirizzo formato da 8 campi di 16 bit ciascuno, in base 16 i valori oscillano da 0000 a FFFF (ad esempio 2a00:1508:1:f010:abcd:1234:ef56:7890)
https://en.wikipedia.org/wiki/IPv6


  • Quando ci si connette ad una rete, o si imposta sul proprio PC un IP statico o si chiede al DHCP che ci dia lui un IP.
Il DHCP è protocollo che permette di avere assegnati i parametri corretti al momento della connessione, esso provvederà (se correttamente configurato lato server) a fornirci principalmente IP, rotte e DNS.


  • Il gateway è chi (il modem di casa, il router wireless, un server...) ci permette di raggiungere internet, è l'apparecchio che inoltrerà i nostri pacchetti verso il resto del mondo e da cui passeranno le risposte.


  • Un pacchetto è un blocco di 1 e 0 che viaggia su una linea di comunicazione. Chi vuole inviare dei dati li traduce in uni e zeri, li divide in pacchetti (di solito la dimensione massima di un pacchetto è circa un kilobyte e mezzo) e aggiunge all'inizio del pacchetto (header) delle informazioni come l'IP di destinazione e l'IP del mittente.


  • Una interfaccia di rete rappresenta la componente fisica (di solito, ma non solo) con cui il PC si interfaccia col mondo esterno, ad esempio una interfaccia di rete può essere la porta a cui attacchi il cavo di rete (porta ethernet, su Linux solitamente si chiama eth0) oppure la scheda wireless del portatile (solitamente si chiama wlan0).


  • Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo computer in base al suo IP. Ad esempio, una rotta può essere qualcosa tipo: "per comunicare con tutti i PC che hanno un IP che inizia con 12.34. (la destinazione, può riferirsi ad un IP solo o a un grosso gruppo di IP che iniziano tutti nello stesso modo) devi passare tramite il PC che ha IP 11.22.33.44 (il gateway)".
Perciò ogni rotta è un'indicazione "stradale" ed è strutturata così:
primo campo destinazione (default = 0.0.0.0/0 ovvero tutto) es. 192.168.1.0/24
secondo campo gateway ovvero colui che ti permette di raggiungere la destinazione es. via 192.168.1.1
campo dev indica l'interfaccia di rete (ad es. wireless o cavo o vpn) attraverso la quale si raggiunge la destinazione es. dev wlan0

Apriamo il terminale: nella maggior parte delle distribuzioni Linux lo troverete sotto

Accessori -> Terminale

o

Sistema -> Terminale

A seconda dell'ambiente grafico.

Useremo la convenzione per cui i comandi che iniziano con

user@computer $

sono dati dall'utente mentre quelli che cominciano con

user@computer #

sono dati dal superutente, per diventare superutente basta digitare

user@computer $ su

o

user@computer $ sudo su

Usando il terminale su Linux, vediamo la configurazione delle rotte sul nostro PC, per esempio con il commando "ip route show", ottenendo qualcosa di simile a:

user@computer $ ip route show
default via 10.175.0.101 dev wlan0  proto static 
10.0.0.0/8 via 172.18.0.1 dev eigennet 
10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 
172.16.0.0/12 via 172.18.0.1 dev eigennet 
172.18.0.0/24 dev eigennet  proto kernel  scope link  src 172.18.0.213 
192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111 
  • "10.0.0.0/8 via 172.18.0.1 dev eigennet" vuol dire che tutti i computer con IP 10.X.Y.Z sono raggiungibili attraverso il gateway avente IPv4 172.18.0.1 e l'interfaccia di rete "eigennet" (in questo caso non si tratta di interfaccia fisica, come quella via cavo o wireless bensì di una interfaccia che comunica con una VPN, argomento molto più avanzato).
  • "10.174.0.0/15 dev wlan0" vuol dire che tutti i computer con IP 10.17{cifra che può essere 4 o 5}.X.Y sono raggiungibili direttamente (cioè senza dover passare da un gateway) attraverso l'interfaccia wireless chiamata "wlan0"
  • Un protocollo di routing è ciò che decide come instradare il traffico tra i nodi gestendo le rotte. Nella nostra rete si usano B.A.T.M.A.N.-adv e babel per i nodi che forniscono uscita su internet.
  • I DNS (Domain Name Server) sono dei server che conoscono le associazioni "nome del sito" <-> "indirizzo IP del server su cui sta il sito". Il punto è che la comunicazione avviene tra l'IP del PC e l'IP del server, dunque non si può contattare un sito, esempio "eigenlab.org" senza prima conoscerne l'indirizzo IP. Quando noi cerchiamo di contattare un sito scrivendone il nome (come eigenlab.org) il nostro PC farà una domanda ad un DNS (del quale conosciamo già l'IP perché ce lo ha detto il DHCP server) il quale ci risponderà con l'indirizzo IP associato a quel nome (nel nostro caso ad esempio l'associazione sarà eigenlab.org->10.175.0.85).
Se ti interessa approfondire cos'è un server DNS puoi dare un'occhiata
https://en.wikipedia.org/wiki/Domain_Name_System
Per vedere come funzionano i DNS distribuiti nella rete eigenNet dai un occhiata a
https://wiki.eigenlab.org/index.php/ConfigureBackUpAnycastDNS

Bene innanzitutto vediamo se tutto è ok


Aprendo un terminale digitate

ping 10.174.0.100 [invio]

Questo farà in modo che il tuo computer provi a parlare con uno dei server interni alla rete, quello che farà sarà mandare tanti piccoli pacchetti con scritto PING ed aspetterà altrettanti PONG in risposta dal server che ha IPv4 10.174.0.100.

Se compare qualcosa simile a:

user@computer $ ping 10.174.0.100
PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data.
64 bytes from 10.174.0.100: icmp_seq=1 ttl=63 time=247 ms
64 bytes from 10.174.0.100: icmp_seq=5 ttl=63 time=70.9 ms
64 bytes from 10.174.0.100: icmp_seq=7 ttl=63 time=124 ms
64 bytes from 10.174.0.100: icmp_seq=8 ttl=63 time=80.9 ms

Allora stai comunicando con il server e sei dentro la rete :-)

Per interrompere il comando, premi “Ctrl+C” (come per fare copia) che nella shell Linux termina un programma

--- 10.174.0.100 ping statistics ---
8 packets transmitted, 4 received, 50% packet loss, time 7029ms
rtt min/avg/max/mdev = 70.992/130.862/247.472/70.216 ms

Questa sezione da qualche informazione aggiuntiva, ovvero quanti PING non hanno ricevuto un PONG, il minor tempo di risposta, quello medio, quello massimo e la deviazione standard dei tempi.

Altrimenti se il risultato è

user@computer $ ping 10.174.0.100
PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data.
^C (ovvero Ctrl+C per interrompere)
--- 10.174.0.100 ping statistics ---
*70 packets transmitted, 0 received, 100% packet loss, time 69058ms*

Vuol dire che non sei collegato alla rete, dobbiamo iniziare a fare un po' di indagini. Intanto capiamo come è configurato il tuo computer.

Troubleshooting

Cominciamo col controllare un elemento per volta fra quelli coinvolti solitamente nei problemi dal lato client.

Controllo Dell'IP

Sempre da un terminale prova a scrivere

Se sei connesso in wireless

ip address show dev wlan0 (o il nome dell'interfaccia wireless, ad es. potrebbe essere wlan1, eth1, ath0, ra0) [invio]

Se sei connesso via cavo

ip address show dev eth0 (o il nome dell'interfaccia via cavo) [invio]

se il risultato è simile a

user@computer $  ip address show dev [nome interfaccia]
3: [interfaccia]: : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1350 qdisc pfifo_fast state UNKNOWN qlen 500
    link/ether e6:b9:06:73:14:1a brd ff:ff:ff:ff:ff:ff
    inet 10.175.0.213/15 brd 10.175.0.255 scope global 
       valid_lft forever preferred_lft forever
    inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::e4b9:6ff:fe73:141a/64 scope link 
       valid_lft forever preferred_lft forever


Allora hai un indirizzo ipv4 e ipv6 impostati. Non stupirti se vedi tutti questi indirizzi IP diversi, ne puoi avere quanti vuoi anche sulla stessa interfaccia di rete (anche se normalmente sono pochi).

Cosa guardare:

<BROADCAST,MULTICAST,UP,LOWER_UP> 
  • è lo stato dell'interfaccia; le cose importanti sono UP, LOWER_UP, che ci dicono che l'interfaccia è attiva (potrebbe essere disattivata via software, via hardware ad esempio col bottoncino della wireless fisicamente presente sul portatile oppure semplicemente potrebbe esserci il cavo di rete staccato o rovinato (nel caso di scritta NO-CARRIER)).
inet 10.175.0.213/15 brd 10.175.0.255 scope global 
  • 10.175.0.213 è l'IPv4 dell'interfaccia: la nostra subnet (cioè il nostro gruppo di IP, quelli che il tuo computer, essendo collegato ad eigenNet, può contattare direttamente senza passare da un gateway) inizia con *10.17{5,4}* se hai un IP che comincia in quel modo è uno dei nostri; lo slash in fondo è la dimensione subnet, 15 è corretto.
inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global 
  • questo è l'IPv6 dell'interfaccia: la nostra subnet inizia con *2001:1418:1a9:eebb*, se hai un IP che comincia in quel modo è uno dei nostri, come prima lo slash in fondo indica la subnet, 64 è corretto. Ignora la riga "inet6 fe80[...]/64 scope link" che riguarda un indirizzo presente anche se non si è davvero connessi.

Nessun IP

Se non hai gli IP impostati possiamo guardare le interfacce, in questo caso ci viene in aiuto il comando

ip link
user@computer $ ip link 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000
    link/ether 00:23:8b:0b:b5:39 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT qlen 1000
   link/ether 00:23:4d:69:d5:f7 brd ff:ff:ff:ff:ff:ff

Anche qui possiamo vedere che ad esempio l'intefaccia eth0

 <NO-CARRIER,BROADCAST,MULTICAST,UP> 

Dice NO-CARRIER ovvero non collegato, potrebbe essere il caso di controllare l'attacco del cavo ethernet (cavo staccato o cavo rovinato)

E con state DOWN ci informa che l'interfaccia eth0 è spenta

Mentre l'interfaccia wlan0

<BROADCAST,MULTICAST,UP,LOWER_UP>

Dice che è collegata e tutto funziona

Una possibile soluzione nel caso che una delle interfacce avesse come state DOWN è la seguente:

sudo ip link set dev <interfaccia> up

Dopodiché ricontrollare se l'interfaccia è UP e provare a riconnettersi alla rete per vedere se viene assegnato un IP.

Altre cose esotiche che potrebbero impedire ad una interfaccia di rete di essere UP: il bottoncino della wireless sul portatile è su off, è necessario sbloccare l'interfaccia wireless via software con

rfkill unblock all

oppure raramente può esser necessario ricaricate i driver della scheda di rete, trovate il nome del driver con

lspci -k

sotto "Network controller" o "Ethernet controller", dopo "Kernel driver in use:", lo rimuovete e ricaricate con

sudo rmmod <nome del driver>; sudo modprobe <nome del driver>

Nel caso l'interfaccia indicasse UP per un certo tempo ma non si ricevesse un IP dal server DHCP è possibile capire cosa stia succedendo:

  • Se usate NetworkManager controllate se siete associati all'Access Point (AP) di eigennet con
nm-tool
  • Altrimenti provate con
iwconfig
  • O ancora
iw dev <interfaccia> link

Che vi daranno informazioni sulla connessione wireless, sopratutto i primi campi. Se risultate associati all'access point (cioè c'è scritto il nome della rete, ad esempio "eigenNet") allora provate a dare

sudo dhcpcd wlan0 

oppure, se lamenta che dhcpcd non esiste

sudo dhclient -v wlan0

Che cercherà nuovamente di ottenere i parametri (IP, rotte, DNS...) chiedendo se nella rete sono presenti dei server DHCP. In base all'output (il testo che esce dai comandi sopra riportati) capirete se ci sono altri problemi e potrete contattarci per segnalarlo ed aiutarci.

Controllo Delle Rotte

A questo punto controlliamo le rotte. Le possiamo controllare usando il comando

ip route show

Ottenendo qualcosa di simile a

user@computer $ ip route show
default via 10.175.0.101 dev wlan0  proto static 
10.0.0.0/8 via 172.18.0.1 dev eigennet 
10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 
172.16.0.0/12 via 172.18.0.1 dev eigennet 
172.18.0.0/24 dev eigennet  proto kernel  scope link  src 172.18.0.213 
192.168.1.0/24 dev wlan0  proto kernel  scope link  src 192.168.1.111 

Nessuna rotta

Per navigare dentro eigennet non serve una rotta global (0.0.0.0/0), perché è una rete locale e, una volta connessi, si può raggiungere ogni risorsa dall'interno.

Se quindi il comando vi restituisce qualcosa di simile a

user@computer $ ip route show
10.174.0.0/15 dev wlan0  proto kernel  scope link  src 10.174.0.178 

Vuol dire che avete la possibilità di raggiungere tutte le risorse interne ma che non potete raggiungere internet. Questo può essere a causa di qualche problema con i gateway o un problema nel raggiungerli. Se conoscete l'IP della macchina che dovrebbe farvi da gateway per il mondo, provate a pingarla (ovvero fare un ping al suo indirizzo) per vedere se la raggiungete. Nel caso non riusciste fatecelo sapere, qualcosa sta succedendo sulla rete.

Rotta presente ma comunque non raggiungo internet

Nel caso ci sia una rotta definita anche per default, ma non foste comunque in grado di connettervi potete aiutarci nel risolvere il problema digitando in un terminale il comando

traceroute wikipedia.org

o

tracepath wikipedia.org

questo dovrebbe dare un risultato simile a

user@computer $ tracepath wikipedia.org
1:  etherpad.eigenlab.org                           0.090ms pmtu 1500
1:  10.175.0.101                                       0.811ms 
1:  10.175.0.101                                       0.496ms 
2:  131.114.186.1                                     0.946ms 
3:  fib-ser.unipi.it                                      0.945ms asymm  4 
4:  ru-unipi-rx1-pi1.pi1.garr.net                   0.970ms 
5:  rx1-pi1-rx1-rm2.rm2.garr.net                 9.030ms 
6:  r-rm2-rx1-rm2.rm2.garr.net                   5.639ms asymm  7 
7:  no reply                                              alcuni server nascondono il loro nome
8:  no reply                                              
9:  tiscali.mil01.atlas.cogentco.com           18.962ms asymm 10 
10:  xe-9-2-0.was10.ip4.tinet.net                 113.285ms asymm 15 
11:  no reply
12:  no reply
13:  no reply
14:  no reply
15:  no reply
16: 208.80.152.201                                              152.453ms reached


Questo comando restituisce il percorso che hanno fatto i nostri pacchetti per raggiungere la destinazione, nel caso non riusciste a vedere un ""reached"" in fondo all'output del comando segnalatecelo includendo anche l'ultimo ip che vedete.

Per servizi interni alla rete, per come essa è strutturata, questo comando non funziona

Controllo dei DNS

Se tutto è andato bene ma non riuscite comunque a navigare potrebbe essere un problema di DNS per vedere quali avete impostati controllate il file /etc/resolv.conf

cat /etc/resolv.conf

Il risultato dovrebbe essere simile a questo:

user@computer $ cat /etc/resolv.conf 
nameserver 10.174.0.101
nameserver 10.174.0.100

queste due righe indicano gli IP dei server DNS, se il file è vuoto, lancia questo comando da shell

echo -e "nameserver 10.174.0.100\nnameserver 10.174.0.101">/etc/resolv.conf

Che sovrascrive in /etc/resolv.conf con le due righe corrette.

Un sintomo del fatto che i DNS non funzionino può essere che facendo

ping google.it

il terminale non reagisce (come succedeva all'inizio della pagina ) ma

ping 8.8.8.8

Invece funziona.

Per fare manualmente la richiesta dell'IP associato ad un nome

dig nomesi.to

o se volete chiedere ad un server particolare (ad esempio a 8.8.8.8, un dns di google)

dig @8.8.8.8 nomesi.to

Dig solitamente è installato di default, se non lo fosse cercate su internet il nome della vostra distribuzione più dig (solitamente sta in qualche programma chiamato dnsutils, bindtools...)


Ma la mia antenna funziona/è accesa?

Per controllare che l'antenna sia accesa si possono sfruttare un paio di cose:

  • Prima di tutto collegarsi via cavo all'antenna usando il cavo ethernet che arriva in casa o attaccandosi al POE (Power Over Ethernet ovvero lo scatolino nero che alimenta l'antenna usando la porta con scritto LAN, NON POE (perché altrimenti forse si frigge la scheda di rete)
  • controllare che sull'interfaccia cablata non compaia NO-CARRIER col comando
ip link show dev <interfaccia>
  • provare a fare dei ping IPv6 link local, ovvero provare a pingare un indirizzo che viene tradotto dal protocollo ipv6 in “ ogni scheda attaccata direttamente all'interfaccia “ questo si può fare digitando il comando
ping6 ff02::1%<nome dell'interfaccia di rete cablata ad esempio eth0>

Se si riceve risposta bisogna prendere nota dell'IPv6 locale della propria scheda di rete ethernet, in modo da poter vedere se l'antenna risponde ai ping. Questo si fa facilmente con

ip -6 address show dev eth0

e guardando l'IP che comincia con fe80:: , se ai ping risponde anche un altro IP, l'antenna è accesa e risponde

Entrare nelle antenne

Abbiamo trovato nella sezione precedente l'IP dell'antenna. Per entrarci dobbiamo usare il programma SSH, che permette di interagire con l'antenna facendo apparire sul nostro computer il suo terminale, i comandi disponibili quindi saranno quelli installati sull'antenna. Il comando da lanciare è:

ssh -i <chiaveprivata> root@<ip antenna> [invio]

A questo punto il sistema chiederà di inserire la password della chiave (nel caso fosse protetta), altrimenti l'antenna ci darà subito il benvenuto con la ricetta di un drink seguito dal prompt.

BusyBox v1.19.4 (2012-10-02 10:56:10 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands. 
  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 ATTITUDE ADJUSTMENT (Bleeding Edge, r33603)
 -----------------------------------------------------
  * 1/4 oz Vodka      Pour all ingredients into mixing
  * 1/4 oz Gin        tin with ice, strain into glass.
  * 1/4 oz Amaretto
  * 1/4 oz Triple sec
  * 1/4 oz Peach schnapps
  * 1/4 oz Sour mix
  * 1 splash Cranberry juice
 -----------------------------------------------------
root@OpenWrt:~#

Vediamo ora come fare alcune operazioni comuni:

  • Per ottenere la lista dei nodi raggiungibili si usa il comando "batctl originators" o il comando abbreviato "batctl o"
root@OpenWrt:~# batctl o
[B.A.T.M.A.N. adv 2012.3.0, MainIF/MAC: br-clients/00:27:22:c3:34:cb (bat0)]
  Originator      last-seen (#/255)           Nexthop [outgoingIF]:   Potential nexthops ...
00:27:22:c3:34:38    0.070s   (170) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (170)
00:27:22:c3:34:86    0.070s   (200) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (200)
de:9f:db:5c:c0:85    0.420s   (169) 00:27:22:c2:34:86 [     wlan0]: de:9f:db:5c:c0:85 (  0) 00:27:22:c2:34:86 (169)
06:15:6d:fc:71:f4    0.840s   (147) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (147)
00:15:6d:fd:71:f4    0.400s   (148) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (148)
dc:9f:db:5d:c0:85    0.400s   (168) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (168)
00:15:6d:7b:97:0b    0.290s   (143) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (143)
00:27:22:c2:34:86    0.600s   (200) 00:27:22:c2:34:86 [     wlan0]: 00:27:22:c2:34:86 (200)

La prima colonna indica il nodo destinazione, Nexthop è il prossimo nodo a cui verranno consegnati i pacchetti. Gli originators sono tutti i nodi raggiungibili direttamente o indirettamente, cioè tutta la porzione di rete che possiamo vedere; gli indirizzi contenuti nella colonna NextHop sono i nostri vicini più prossimi, ovvero solamente quelli direttamente raggiungibili.

  • Per abilitare o disabilitare la modalità "hotspot"

La modalità "access point" o "hotspot" permette ai normali computer di connettersi ad eigenNet, purché ci sia un server DHCP nelle vicinanze (oppure puoi usare un indirizzo IP statico). Normalmente, è consigliabile avere questa opzione disabilitata e utilizzare un access point dedicato, in quanto influisce negativamente sulle performance come nodo della rete.

Per attivare la modalità "hotspot", è necessario cambiare un paio di valori nel file di configurazione

/etc/config/eigennet

utilizzando vim, l'editor di testo predefinito. La riga

option wifi_clients 'false'

deve diventare

option wifi_clients 'true'

o viceversa, nel caso si volesse disattivare. La riga

option bootmode '2'

deve diventare

option bootmode '1'

L'anntenna va poi riavviata. La seconda modifica chiede all'antenna di rileggere la configurazione e applicare le modifiche, il valore di bootmode tornerà automaticamente a 2.

  • Per cambiare la chiave di accesso all'antenna bisogna modificare la riga
    option sshAuthorizedKeys '...'
    sostituendo al posto dei puntini, il contenuto del file della chiave pubblica.

Tutorial SSH Tutorial vim

Riavviare

Una cosa buona, se l'antenna per qualche motivo non si comporta bene, è riavviarla. Per farlo basta staccare il cavo attaccato allo scatolino nero alla porta con scritto POE oppure togliere la corrente se per caso il montaggio è stato fatto portando la corrente sul tetto, aspettare 12 secondi contando

  • Prealpi Trivenete 1
  • Alpi Giulie 2
  • Alpi Carniche 3
  • ...
  • Alpi Liguri e Alpi Marittime 12

Se comunque non sei riuscito a risolvere contattaci.


Su eigenNet ci sono diversi servizi, li puoi scoprire qui:

http://eigenlab.org/index.php/eigennet/servizi