[RISOLTO]Gateway setup: dal client non si accede ad internet

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

[RISOLTO]Gateway setup: dal client non si accede ad internet

Messaggio da joe »

Come detto in altri topic sto cercando di mettere in rete uno smartphone android (client) e il mio PC, usando quest'ultimo (connesso ad internet con una chiavetta internet mobile in dialup e interfaccia "ppp0") come gateway che reindirizzi le richieste dello smartphone su internet. Aggiungo la particolarità della cosa, visto che il collegamento tra PC e smartphone avviene via Bluetooth e non via WiFi come ci si aspetterebbe.

Il collegamento dei dispositivi avviene, esiste in piedi una rete tra i due: quindi escluderei a questo punto il discorso bluetooth. Sintetizzando:
Sul PC vedo l'interfaccia di rete chiamata "bnep0" con IP 10.0.0.1 impostato da me con una regola di udev (cui ha collaborato anche l'utente "miklos" che ringrazio).
All'atto del collegamento del telefono, inoltre il PC su cui gira dnsmasq, gli attribuisce un ip compreso tra 10.0.0.2 e 10.0.0.4, in questo momento l'indirizzo che il telefono ha ricevuto è 10.0.0.4.

I due indirizzi sono raggiungibili da l'una e dall'altra parte rispettivamente, cioè se dò un ping dal PC verso 10.0.0.4 risponde correttamente. Sul telefono, posso fare lo stesso grazie ad un emulatore di terminale che ho installato dal google store di android. Se da lì digito "ping 10.0.0.1" ottengo una regolare risposta da parte del PC. Perfetto!

Ora però vorrei configurare il PC in modo che instradasse le richieste provenienti dal telefono, attraverso l'interfaccia "bnep0", quindi verso internet (10.0.0.1 ---> ppp0) e ne riconsegnasse la rispettiva risposta allo stesso telefono sempre attraverso l'interfaccia bnep0 (10.0.0.1 ---> 10.0.0.4).

La connessione ad internet sul PC avviene in dialup, senza router o altro e l'nterfaccia affacciata ad internet è "ppp0".

Al momento vorrei testare la cosa senza introdurre regole aggiuntive del firewall per bloccare particolari pacchetti. Mi basta che la macchia faccia da gateway e basta, senza firewall attivo.

Dalla documentazione che ho letto (e soprattutto da quella poca che ho capito) sembrerebbe sufficiente tabilire la regola:

Codice: Seleziona tutto

iptables -t nat -A POSTROUTING -s 10.0.0.4 -o ppp0 -j MASQUERADE
Questo dovrebbe mascherare il traffico proveniente dal telefono come proveniente dal localhost e restituirne poi indietro la richiesta.

Però se dal telefono tento un ping verso un host esterno: tipo 8.8.8.8, oppure per esempio "maya.ngi.it". Ecco che non riesco ad ottenere una risposta. Ne tanto meno riesco a navigare dal cellulare o fare altro che richieda l'accesso ad internet.

Che sia un problema di instradamento?
Vi lascio un po' di log ottenuti sul PC.

Codice: Seleziona tutto

root@darkstar:~# ifconfig
bnep0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.1  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::209:ddff:fe50:2f9c  prefixlen 64  scopeid 0x20<link>
        ether 00:09:dd:50:2f:9c  txqueuelen 1000  (Ethernet)
        RX packets 4207  bytes 260517 (254.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 402  bytes 37449 (36.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 4786  bytes 543537 (530.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4786  bytes 543537 (530.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet x.x.x.x  netmask 255.255.255.255  destination 10.64.64.64
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 254435  bytes 332890913 (317.4 MiB)
        RX errors 5  dropped 0  overruns 0  frame 0
        TX packets 159062  bytes 11073368 (10.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


root@darkstar:~# ip addr show>>log
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:22:15:3c:38:66 brd ff:ff:ff:ff:ff:ff
8: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp 
    inet x.x.x.x peer 10.64.64.64/32 scope global ppp0
16: bnep0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:09:dd:50:2f:9c brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/24 brd 10.0.0.255 scope global bnep0
    inet6 fe80::209:ddff:fe50:2f9c/64 scope link 
       valid_lft forever preferred_lft forever


root@darkstar:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 bnep0
10.64.64.64     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo


root@darkstar:~# iptables -L -v
Chain INPUT (policy ACCEPT 246K packets, 326M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 151K packets, 10M bytes)
 pkts bytes target     prot opt in     out     source               destination         
Sul telefono alcuni comandi come "route -n" non fungono, forse perchè non ho accesso come root...
Le cause potrebbero essere molteplici...
Proprio per questo alla fine ho deciso di chiedere qui. Almeno per cercare di capire se ci sia qualche errore nella mia configurazione almeno del PC.

Grazie in anticipo come al solito! :D
Ultima modifica di joe il ven 30 mag 2014, 12:14, modificato 1 volta in totale.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3797
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Gateway setup: dal client non si accede ad internet

Messaggio da joe »

Gente, ho risolto!

Il cellulare android non c'entra nulla. Da lì non dovevo impostare nient'altro che la connessione bluetooth verso il PC.

Invece in slackware mancava:

Codice: Seleziona tutto

root@darkstar:~# cat /proc/sys/net/ipv4/ip_forward 
0
root@darkstar:~# echo 1 > /proc/sys/net/ipv4/ip_forward 
root@darkstar:~# cat /proc/sys/net/ipv4/ip_forward 
1
Per quanto riguarda iptables ho cancellato le regole della tabella di "nat" e creato quella della catena "POSTROUTING":

Codice: Seleziona tutto

root@darkstar:~# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
root@darkstar:~# iptables -t nat -L -v -n
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MASQUERADE  all  --  *      ppp0    0.0.0.0/0            0.0.0.0/0 
Fatte queste due cose il gateway risulta in piedi e funzionante, tant'è che mi sono arrivate due notifiche sul telefono all'istante.
Ho anche verificato che il ping ad indirizzi numerici e non funziona senza problemi.
Volevo controllare quale server dns viene usato, penso quello del gateway (10.0.0.1 grazie a dnsmasq), ma dall'app andoid "terminal emulator" non ho il comando dig... Pazienza non si può avere tutto...

Mi riprometto di completare il mio toic sulla "rete via bluetooth nap"

Rispondi