HowToRete: differenze tra le versioni
Nessun oggetto della modifica |
(Aggiunte) |
||
Riga 8: | Riga 8: | ||
== Overview == | == Overview == | ||
Quando ti connetti alla rete stai usando un insieme di protocolli ed elementi fisici, le loro interazioni sono regolate da uno standard chiamato [http://it.wikipedia.org/wiki/Open_Systems_Interconnection OSI]. Per avere un'idea del funzionamento della rete possiamo partire cendo il percorso che faranno i dati dalla sorgente alla destinazione, partiamo dal computer client passo passo: | |||
#Dei dati devono essere spediti dal computer ad un server, per esempio google | |||
#Il computer richiede ad un server DNS qual'è l'IP del server | |||
#Una volta ottenuto l'IP il computer proverà a connettersi al server | |||
#Per fare questo creerà dei piccoli pacchetti che verranno spediti alla scheda di rete (sia wireless che wired) | |||
#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 gatewaypiù 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. | |||
Un po' di spiegazioni dei termini usati: | |||
*Un IPv4 è un indirizzo formato da 4 campi di 8 bit ciascuno, in decimale i valori oscillano da 0 a 255<br /> | *Un IPv4 è un indirizzo formato da 4 campi di 8 bit ciascuno, in decimale i valori oscillano da 0 a 255<br /> | ||
Riga 13: | Riga 23: | ||
:Un IPv6 è un indirizzo formato da 8 campi di 16 bit ciascuno, in base16 i valori oscillano da 0000 a FFFF<br /> | :Un IPv6 è un indirizzo formato da 8 campi di 16 bit ciascuno, in base16 i valori oscillano da 0000 a FFFF<br /> | ||
:https://en.wikipedia.org/wiki/IPv6<br /> | :https://en.wikipedia.org/wiki/IPv6<br /> | ||
: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. | |||
*Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo indirizzo di rete. <br /> | *Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo indirizzo di rete. <br /> | ||
Riga 31: | Riga 43: | ||
*I DNS sono dei server distribuiti nella rete che permettono di trasformare il nome (come eigenlab.org) in un indirizzo IP da contattare , nel nostro caso ad esempio l'associazione sarà eigenlab.org->10.175.0.85 | *I DNS sono dei server distribuiti nella rete che permettono di trasformare il nome (come eigenlab.org) in un indirizzo IP da contattare , nel nostro caso ad esempio l'associazione sarà eigenlab.org->10.175.0.85 | ||
:Se ti interessa approfondire cosa è un server DNS puoi dare un'occhiata <br /> | :Se ti interessa approfondire cosa è un server DNS puoi dare un'occhiata <br /> | ||
:https:// | :https://en.wikipedia.org/wiki/Domain_Name_System<br /> | ||
:https:// | :Per vedere come funzionano i DNS distribuiti nella rete dai un occhiata a | ||
:https://wiki.eigenlab.org/index.php/ConfigureBackUpAnycastDNS | |||
Bene innanzitutto vediamo se tutto è ok | |||
Prova ad aprire un terminale (In linux :programmi->accessori->console/terminale) | Prova ad aprire un terminale (In linux :programmi->accessori->console/terminale) | ||
Riga 65: | Riga 80: | ||
user@computer $ ping 10.174.0.100 | user@computer $ ping 10.174.0.100 | ||
PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data. | PING 10.174.0.100 (10.174.0.100) 56(84) bytes of data. | ||
^C (ovvero Ctrl+C) | ^C (ovvero Ctrl+C per interrompere) | ||
--- 10.174.0.100 ping statistics --- | --- 10.174.0.100 ping statistics --- | ||
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 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 == | == Trubleshooting == | ||
Cominciamo col controllare un elemento per volta fra quelli coinvolti solitamente nei problemi dal lato client. | |||
=== Controllo Dell'IP | === Controllo Dell'IP=== | ||
Sempre da un terminale prova a scrivere | Sempre da un terminale prova a scrivere | ||
Riga 103: | Riga 119: | ||
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 | ||
*questo è l'ipv4 dell'interfaccia: lo slash in fondo è la dimensione subnet, 15 è corretto. | *questo è l'ipv4 dell'interfaccia: la nostra subnet 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'ipv6 dell'interfaccia: come prima lo slash in fondo indica la subnet, 64 | *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. | ||
==== Nessun IP ==== | ==== Nessun IP ==== | ||
Riga 133: | Riga 149: | ||
Una possibile soluzione nel caso che una delle interfacce avesse come state DOWN è la seguente | Una possibile soluzione nel caso che una delle interfacce avesse come state DOWN è la seguente | ||
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 succedesse è possibile capire (nel caso di DHCP) cosa stia succedendo: | |||
*Se usate NetworkManager controllate se siete associati all'Access Point (AP) di eigennet con | |||
nm-tool | |||
Che vi darà informazioni sulla connessione, sopratutto i primi campi. Se vi risulta essere associati allora provate a dare | |||
sudo dhcpcd 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 | |||
=== Controllo Delle Rotte === | === Controllo Delle Rotte === | ||
Riga 150: | Riga 175: | ||
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 | ||
=== 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. | ||
Riga 157: | Riga 182: | ||
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 | 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. | ||
=== 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.head | |||
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 "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 se fai | |||
ping google.it | |||
non fa nulla ma | |||
ping 74.125.232.152 | |||
Invece funziona. | |||
Per sapere l'ip di un nome | |||
dig nomesi.to | |||
o se volete chiedere ad un server particolare | |||
dig @nomeserver/ipserver nomesi.to | |||
Versione delle 13:12, 20 mag 2013
Bene, hai un'antenna sul tetto ed ora?
Assumendo linux, windows sticazzi per me Svalo (discussioni)
Intanto controlliamo se funziona tutto e hai accesso alla rete...
Se tutto è andato a buon fine appena collegato alla rete il tuo computer riceverà delle informazioni com IP, rotte, DNS servers, ... vediamo un pò cosa sono:
Overview
Quando ti connetti alla rete stai usando un insieme di protocolli ed elementi fisici, le loro interazioni sono regolate da uno standard chiamato OSI. Per avere un'idea del funzionamento della rete possiamo partire cendo il percorso che faranno i dati dalla sorgente alla destinazione, partiamo dal computer client passo passo:
- Dei dati devono essere spediti dal computer ad un server, per esempio google
- Il computer richiede ad un server DNS qual'è l'IP del server
- Una volta ottenuto l'IP il computer proverà a connettersi al server
- Per fare questo creerà dei piccoli pacchetti che verranno spediti alla scheda di rete (sia wireless che wired)
- 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 gatewaypiù 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.
Un po' di spiegazioni dei termini usati:
- Un IPv4 è un indirizzo formato da 4 campi di 8 bit ciascuno, in decimale i valori oscillano da 0 a 255
- https://en.wikipedia.org/wiki/IPv4
- Un IPv6 è un indirizzo formato da 8 campi di 16 bit ciascuno, in base16 i valori oscillano da 0000 a FFFF
- https://en.wikipedia.org/wiki/IPv6
- 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.
- Le rotte sono delle indicazioni che istruiscono il computer riguardo a come fare per poter raggiungere un certo indirizzo di rete.
- Ogni rotta è un'indicazione ed è strutturata così:
primo campo destinazione (default = 0.0.0.0/0 ovvero tutto) secondo campo gateway ovvero colui che ti permette di raggiungere la destinazione campo dev indica l'interfaccia attraverso la quale si raggiunge la destinazione
- 10.0.0.0/8 vuol dire che tutti i computer con IP 10.X.Y.Z sono raggiungibili attraverso 172.18.0.1 e l'interfaccia eigennet
- 10.174.0.0/15 vuol dire che tutti i computer con IP 10.17{5,4}.X.Y sono raggiungibili direttamente attraverso l'interfaccia wlan0}
- I DNS sono dei server distribuiti nella rete che permettono di trasformare il nome (come eigenlab.org) in un indirizzo IP da contattare , nel nostro caso ad esempio l'associazione sarà eigenlab.org->10.175.0.85
- Se ti interessa approfondire cosa è un server DNS puoi dare un'occhiata
- https://en.wikipedia.org/wiki/Domain_Name_System
- Per vedere come funzionano i DNS distribuiti nella rete dai un occhiata a
- https://wiki.eigenlab.org/index.php/ConfigureBackUpAnycastDNS
Bene innanzitutto vediamo se tutto è ok
Prova ad aprire un terminale (In linux :programmi->accessori->console/terminale)
ed a scrivere:
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 dal server.
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” 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 informaziona aggiuntiva ovvero quanti PING non hanno ricevuto un PONG , le velocità minima,media,massima e la media di risposta.
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:
Trubleshooting
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) [invio]
Se sei connesso via cavo
ip address show dev eth0 (o il nome dell'interfaccia wired) [invio]
se il risultato è simile a
user@computer $ ip address show dev [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
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
inet 10.175.0.213/15 brd 10.175.0.255 scope global
- questo è l'ipv4 dell'interfaccia: la nostra subnet 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.
Nessun IP
Se non hai gli IP impostati possiamo guardare le interfacce, 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: <BROADCAST,MULTICAST> 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
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.
Nel caso non succedesse è possibile capire (nel caso di DHCP) cosa stia succedendo:
- Se usate NetworkManager controllate se siete associati all'Access Point (AP) di eigennet con
nm-tool
Che vi darà informazioni sulla connessione, sopratutto i primi campi. Se vi risulta essere associati allora provate a dare
sudo dhcpcd 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
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 per vedere se la raggiungete. Nel caso non riusciste fatecelo sapere, qualcosa sta succedendo sulla rete.
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.head 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 "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 se fai
ping google.it
non fa nulla ma
ping 74.125.232.152
Invece funziona.
Per sapere l'ip di un nome
dig nomesi.to
o se volete chiedere ad un server particolare
dig @nomeserver/ipserver nomesi.to
Su eigenNet ci sono diversi servizi, li puoi scoprire qui: