HowToRete: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
(34 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, 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. | |||
Se | |||
== Overview == | == Overview == | ||
Quando ti connetti | 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, per esempio il tuo, ad un server, per esempio | #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 | #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 | #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 ( | #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 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. | #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: | ||
*Un IP è un indirizzo 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<br /> | *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)<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 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 /> | ||
*Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo | *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 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)".<br /> | |||
: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 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 | |||
|} | |} | ||
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 52: | 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.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 sono dei server | *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 | :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 /> | ||
:Per vedere come funzionano i DNS distribuiti nella rete dai un occhiata a | :Per vedere come funzionano i DNS distribuiti nella rete eigenNet dai un occhiata a | ||
:https://wiki.eigenlab.org/index.php/ConfigureBackUpAnycastDNS | :https://wiki.eigenlab.org/index.php/ConfigureBackUpAnycastDNS | ||
Bene innanzitutto vediamo se tutto è ok | Bene innanzitutto vediamo se tutto è ok | ||
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 | 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 84: | 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” che nella shell | 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 90: | 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 | 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 100: | Riga 127: | ||
*70 packets transmitted, 0 received, 100% packet loss, time 69058ms* | *70 packets transmitted, 0 received, 100% packet loss, time 69058ms* | ||
Vuol dire che non sei collegato alla rete, dobbiamo iniziare a fare | 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. | Cominciamo col controllare un elemento per volta fra quelli coinvolti solitamente nei problemi dal lato client. | ||
Riga 110: | Riga 137: | ||
Se sei connesso in wireless | Se sei connesso in wireless | ||
ip address show dev wlan0 (o il nome dell'interfaccia wireless) [invio] | 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 | Se sei connesso via cavo | ||
ip address show dev eth0 (o il nome dell'interfaccia | ip address show dev eth0 (o il nome dell'interfaccia via cavo) [invio] | ||
se il risultato è simile a | se il risultato è simile a | ||
user@computer $ ip address show dev [interfaccia] | user@computer $ ip address show dev [nome interfaccia] | ||
3: [interfaccia]: : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1350 qdisc pfifo_fast state UNKNOWN qlen 500 | 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 | link/ether e6:b9:06:73:14:1a brd ff:ff:ff:ff:ff:ff | ||
Riga 128: | Riga 155: | ||
Allora hai un indirizzo ipv4 e ipv6 impostati | 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: | 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 | *è 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 | ||
* | |||
*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 | inet6 2001:1418:1a9:eebb:10:175:0:213/64 scope global | ||
*questo è l' | *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 148: | 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 155: | Riga 183: | ||
Anche qui possiamo vedere che ad esempio l'intefaccia eth0 | Anche qui possiamo vedere che ad esempio l'intefaccia eth0 | ||
<NO-CARRIER,BROADCAST,MULTICAST,UP> | <NO-CARRIER,BROADCAST,MULTICAST,UP> | ||
Dice NO-CARRIER ovvero non collegato, potrebbe essere il caso di controllare l'attacco del cavo ethernet | 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 | E con state DOWN ci informa che l'interfaccia eth0 è spenta | ||
Riga 166: | 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. | |||
Nel caso non | 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 | ||
Che vi | *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 | sudo dhcpcd wlan0 | ||
Che cercherà di ottenere i parametri | 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 === | === Controllo Delle Rotte === | ||
Riga 192: | Riga 234: | ||
==== Nessuna rotta ==== | ==== Nessuna rotta ==== | ||
Per navigare dentro eigennet non serve una rotta global (0.0.0.0/0) | 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 198: | 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 206: | Riga 282: | ||
Il risultato dovrebbe essere simile a questo: | Il risultato dovrebbe essere simile a questo: | ||
user@computer $ cat /etc/resolv.conf | 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 "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 | ||
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 | Un sintomo del fatto che i DNS non funzionino può essere che facendo | ||
ping google.it | ping google.it | ||
non | il terminale non reagisce (come succedeva all'inizio della pagina ) ma | ||
ping | ping 8.8.8.8 | ||
Invece funziona. | Invece funziona. | ||
Per | Per fare manualmente la richiesta dell'IP associato ad un nome | ||
dig nomesi.to | dig nomesi.to | ||
o se volete chiedere ad un server particolare | o se volete chiedere ad un server particolare (ad esempio a 8.8.8.8, un dns di google) | ||
dig @ | 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? === | === Ma la mia antenna funziona/è accesa? === | ||
Riga 240: | 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 ( | * 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 | * 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 <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. | |||
La riga <pre>option bootmode '2'</pre> deve diventare <pre>option bootmode '1'</pre> | |||
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. | |||
[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 | 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 | Se comunque non sei riuscito a risolvere [https://eigenlab.org/index.php/dove-siamo contattaci]. | ||
Su eigenNet ci sono diversi servizi, li puoi scoprire qui: | |||
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:
- 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 (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
- 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.
- 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)
- 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)
-
- 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)
- 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)
- 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.
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: