[RISOLTO] Condividere ADSL su 2 PC via bluetooth

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
michele.p
Packager
Packager
Messaggi: 1276
Iscritto il: ven 24 nov 2006, 16:52
Nome Cognome: Michele Petrecca
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: KDE
Distribuzione: ..Fedora e Mandriva
Località: Pontecorvo(FR)
Contatta:

[RISOLTO] Condividere ADSL su 2 PC via bluetooth

Messaggio da michele.p »

Holà,

come da titolo vorrei condividere l'ADSL tra il fisso e il portatile attraverso bluetooth, ma c'è qualcosa che sbaglio (sicuramente, altrimenti riuscirei a connettermi :D ).
In sostanza l'idea è di collegarmi ad Internet dal portatile (Mandriva 2010.2) sfruttando bluetooth "passando" dal PC fisso (Slackware 13.1): in sostanza "entro" con il portatile dall'interfaccia bluetooth (bnep0-pan0 sul quale ho fatto un bridging) poi faccio un forwarding sull'interfaccia eth0. Detto così è intuitivo e facile, in pratica c'è qualche intoppo. :p Dico subito che la scheda di rete è connessa ad un modem (192.168.100.1) Telecom Alice DSL-302T
Quello che segue è l'ouput di ifconfig dopo la configurazione:

Codice: Seleziona tutto

bash-4.1# ifconfig
bnep0     Link encap:Ethernet  HWaddr 00:09:dd:50:82:1a  
          inet6 addr: fe80::209:ddff:fe50:821a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:46 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8928 (8.7 KiB)  TX bytes:1633 (1.5 KiB)

eth0      Link encap:Ethernet  HWaddr 00:a0:d2:1b:73:86  
          inet6 addr: fe80::2a0:d2ff:fe1b:7386/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:44861 errors:0 dropped:0 overruns:0 frame:0
          TX packets:51023 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:28804977 (27.4 MiB)  TX bytes:30937108 (29.5 MiB)
          Interrupt:17 Base address:0x1c00 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:64 errors:0 dropped:0 overruns:0 frame:0
          TX packets:64 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3688 (3.6 KiB)  TX bytes:3688 (3.6 KiB)

pan0      Link encap:Ethernet  HWaddr 00:09:dd:50:82:1a  
          inet addr:10.0.0.1  Bcast:10.255.255.255  Mask:255.0.0.0
          inet6 addr: fe80::e401:88ff:fe1f:d414/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:27 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4932 (4.8 KiB)  TX bytes:1042 (1.0 KiB)

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:82.51.154.186  P-t-P:192.168.100.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:44697 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50854 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:27811668 (26.5 MiB)  TX bytes:29806989 (28.4 MiB)

bash-4.1# 
In sostanza il fisso ha indirizzo (pan0-bnep0) 10.0.0.1 e il portatile 10.0.0.2: un ping dal fisso al portatile e viceversa da esito positivo (in sostanza il fisso vede il portatile e viceversa). A questo punto ho attivato il forwarding:

Codice: Seleziona tutto

echo 1 > /proc/sys/net/ipv4/ip_forward
e ho attivato il packet filtering su tutte le interfacce, sinteticamente,

Codice: Seleziona tutto

echo > 1 /proc/sys/net/ipv4/conf/*/rp_filter
Prima di impostare le regole con iptables avevo:

Codice: Seleziona tutto

bash-4.1# iptables -L 
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Quindi ho impostato le regole iptables come da comandi che seguono:
bash-4.1# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
bash-4.1# iptables -A FORWARD -i pan0 -j ACCEPT
bash-4.1# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
quindi iptables -L fornisce ora:

Codice: Seleziona tutto

bash-4.1# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Domanda: perché il portatile vede la rete (in sostanza si collega al gateway cioè il PC fisso con indirizzo 10.0.0.1) però non si collega ad Internet? ...dove ho toppato con iptables? :D ...è giusto fare il forwarding su eth0 o dovrei farlo (non credo però) su ppp0?

...spero di aver dato tutte le informazioni del caso... :roll:
Ultima modifica di michele.p il mar 8 feb 2011, 21:59, modificato 1 volta in totale.

Avatar utente
michele.p
Packager
Packager
Messaggi: 1276
Iscritto il: ven 24 nov 2006, 16:52
Nome Cognome: Michele Petrecca
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: KDE
Distribuzione: ..Fedora e Mandriva
Località: Pontecorvo(FR)
Contatta:

Re: Condividere ADSL su 2 PC via bluetooth

Messaggio da michele.p »

Se servono aggiungo altre due informazioni. Dal PC fiso (Slackware 13.1 ..quindi quello che funge da gateway per il bluetooth e che fa poi il forwarding su eth0):

route -n

Codice: Seleziona tutto

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.1   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 pan0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 ppp0
brctl show

Codice: Seleziona tutto

bridge name     bridge id               STP enabled     interfaces
pan0            8000.0009dd50821a       no              bnep0
Bye 8)

albatross
Linux 0.x
Linux 0.x
Messaggi: 97
Iscritto il: mar 21 ott 2003, 0:00
Contatta:

Re: Condividere ADSL su 2 PC via bluetooth

Messaggio da albatross »

vediamo se ho capito bene...
1. hai un pc fisso con Slack che tramite modem usb si collega ad internet
2. Slack ha un'interfaccia di rete bluetooth pan0 (10.0.0.1)
3. hai un portatile con Mandriva che ha un'interfaccia di rete bluetooth (10.0.0.2)
4. il portatile raggiunge il pc fisso tramite la rete bluetooth

L'interfaccia di rete del modem Alice è la ppp0 e non la eth0 (perché il modem utilizza una connessione punto punto) il vantaggio di questa soluzione è che il pc che si collega ad internet ha direttamente l'indirizzo IP pubblico associato all'interfaccia presente sulla macchina non essendoci di mezzo il NAT tra rete LAN interna e WAN esterna, così non hai problemi con le porte di emule o, essendo più seri, se ti vuoi tirare su un web server accessibile da internet)
da quello che vedo dall'ultimo post il default gateway è impostato verso la ppp0 quindi in modo corretto.

secondo me l'errore sta in questa riga
bash-4.1# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
con questo comando il routing avviene verso l'interfaccia eth0

prova con
bash-4.1# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

fammi sapere se risolvi...

Avatar utente
michele.p
Packager
Packager
Messaggi: 1276
Iscritto il: ven 24 nov 2006, 16:52
Nome Cognome: Michele Petrecca
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: KDE
Distribuzione: ..Fedora e Mandriva
Località: Pontecorvo(FR)
Contatta:

Re: Condividere ADSL su 2 PC via bluetooth

Messaggio da michele.p »

Esatto è così: ho risolto praticamente il giorno dopo aver inserito il post, solo che dimenticai in seguito di aggiornarlo. :-/

Ad ogni modo questo è lo script iptables.sh che ho creato per il forwarding:

Codice: Seleziona tutto

#!/bin/sh
echo "1" > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do
  echo 1 >> $f
done
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i bnep0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
in più, avendo un solo device bluetooth, ho eliminato anche il bridging (avere la pan0 non mi servirebbe a nulla) e la connessione avviene direttamente con l'interfaccia bnep0. :D ...velocità? ...tra i 150 e i 180kbps a distanza di circa tre metri. :-)

Thanks & Bye 8)

albatross
Linux 0.x
Linux 0.x
Messaggi: 97
Iscritto il: mar 21 ott 2003, 0:00
Contatta:

Re: Condividere ADSL su 2 PC via bluetooth

Messaggio da albatross »

Non c'è che dire.... complimenti per l'ingegno!! :thumbright:

Avatar utente
michele.p
Packager
Packager
Messaggi: 1276
Iscritto il: ven 24 nov 2006, 16:52
Nome Cognome: Michele Petrecca
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: KDE
Distribuzione: ..Fedora e Mandriva
Località: Pontecorvo(FR)
Contatta:

Re: [RISOLTO] Condividere ADSL su 2 PC via bluetooth

Messaggio da michele.p »

Procedura:

1) Sul PC che si vuole faccia da master:

Codice: Seleziona tutto

pand --listen --master --role NAP
2) Sul client:

Codice: Seleziona tutto

pand --connect --role PANU
3) Dal PC master:

Codice: Seleziona tutto

pand --connect B_ADDR_client
4) Dal PC client:

Codice: Seleziona tutto

pand --connect B_ADDR_master
Doce B_ADDR_client e B_ADDR_master sono gli address bluetooth che si ottengono con il comando "hcitool scan"

5) Impostare l'interfaccia sul master:

Codice: Seleziona tutto

ifconfig bnep0 10.0.0.1 netmask 255.255.255.0
6) ...e sul client:

Codice: Seleziona tutto

ifconfig bnep0 10.0.0.2 netmask 255.255.255.0
7) Impostare il gateway per il client:

Codice: Seleziona tutto

route add default gw 10.0.0.1
8 ) Lanciare lo script per il forwarding riportato sopra

Bye 8)

Rispondi