Repository 32bit  Forum
Repository 64bit  Wiki

[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.

[RISOLTO] Condividere ADSL su 2 PC via bluetooth

Messaggioda michele.p » gio gen 13, 2011 19:21

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 feb 08, 2011 21:59, modificato 1 volta in totale.
Avatar utente
michele.p
Packager
Packager
 
Messaggi: 1275
Iscritto il: ven nov 24, 2006 16:52
Località: Pontecorvo(FR)
Nome Cognome: Michele Petrecca
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: KDE
Distribuzione: ..Fedora e Mandriva

Re: Condividere ADSL su 2 PC via bluetooth

Messaggioda michele.p » ven gen 14, 2011 11:41

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

Re: Condividere ADSL su 2 PC via bluetooth

Messaggioda albatross » mar feb 08, 2011 20:20

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...
albatross
Linux 1.0
Linux 1.0
 
Messaggi: 97
Iscritto il: lun ott 20, 2003 23:00

Re: Condividere ADSL su 2 PC via bluetooth

Messaggioda michele.p » mar feb 08, 2011 21:56

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

Re: Condividere ADSL su 2 PC via bluetooth

Messaggioda albatross » mar feb 08, 2011 21:59

Non c'è che dire.... complimenti per l'ingegno!! :thumbright:
albatross
Linux 1.0
Linux 1.0
 
Messaggi: 97
Iscritto il: lun ott 20, 2003 23:00

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

Messaggioda michele.p » mar feb 08, 2011 22:10

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


Torna a Gnu/Linux in genere

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti