Le tethering, à la main

Aller en bas

Le tethering, à la main Empty Le tethering, à la main

Message par bandix400 le Sam 30 Oct 2010 - 14:52

Salut ...
tethering : (Technologie) Mise à disposition par un appareil de sa connexion à Internet.

Un mot bien compliqué pour faire ce que fait normalement un kernel linux ... standart.
Comme il n'est pas question de configurer son Nokia en bridge (je doute que votre opérateur fournisse une adresse ip, autre que pour votre webphone), le tethering consistera plus prosaïquement en du : Network Adresse Translation ; en français, ce concept est aussi appelé : Truandage IP Embarassed Translation d'Adresse IP.

Il faut savoir que nativement (enfin depuis au moins 1997) le kernel linux à ce qu'il faut pour faire du "NAT" en 3 instructions. Sur les kernel de la famille 2.6.x, on utilise la commande iptable, qui s'occupe de charger les modules idoines et de gérer le réseau.

pré requis :
- un N900 connecté en GPRS (2G ou 3G) au réseau,
- un PC (par exemple) connecté en ad-hoc ou USB au Nokia. Pour faire simple, on va donner un exemple avec une connexion USB entre le nokia et le pc
- pour taper les commandes dans le terminal du N900, je conseille plutôt un ssh vers le N900 ... C'est grandement plus confortable.

pour réaliser ces pré-rquis : http://n900.frenchboard.com/discussions-n900-f5/surfer-sur-internet-en-utilisant-le-cable-usb-t557.htm#4605

Par définition, il n'y a ni serveur de nom, ni serveur d'adresse entre le nokia et le PC (enfin c'est possible, mais c'est pas l'objet d'un Tuto pour N900°) :
- Le nokia aura une ip fixée a la main (192.168.100.150),
- le PC aussi (192.168.100.250).

On doit trouver dans /etc/network/interfaces
Code:

iface usb0 inet static
address 192.168.100.150
netmask 255.255.255.0
gateway 192.168.100.250
... quelque chose comme ça.

on branche le cable USB, on choisi pc-suite, l'interface USB0 est crée, et configurée
vérifions :
Code:
Nokia-N900:~# sudo gainroot
Nokia-N900:~# ifconfig
usb0 Link encap:Ethernet HWaddr xx:yy:zz:tt:uu:vv
inet addr:192.168.100.150 Bcast:192.168.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:355 errors:0 dropped:0 overruns:0 frame:0
TX packets:235 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:38918 (38.0 KiB) TX bytes:31784 (31.0 KiB)

On supprime la route actuelle qui va vers le PC Linux, car on veut une route utilisant gprs0
Code:
route del default

pour activer le gprs0, soit
- on lance miniB (le web browser)
- la connexion à votre opérateur,
et hop gprs0 est activé ; la route par défaut est alors gprs0

Ce qui suit n'est pas spécifique du N900 mais d'une distribution linux debian.
1/ on autorise le forwarding et
2/ on lance le NAT de usb0 vers le gprs0.

Le plus simple est de faire un script (passerelle.sh) que l'on pourra lancer à volonté :
Code:

Nokia-N900:~# cat <<! >passerelle.sh
#!/bin/sh
/etc/init.d/iptables stop
#vidage et remise à zéro règles iptable
iptables -F
iptables -X
iptables -Z

#accés au forward
echo 1 >/proc/sys/net/ipv4/ip_forward de USB vers GPRS
/usr/sbin/iptables -A FORWARD -i usb0 -o gprs0 -s 192.168.100.0/24 -j ACCEPT

#accè au NAT de USB vers GPRS
/usr/sbin/iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o gprs0 -j MASQUERADE
echo "c'est ouvert !!"
!
Nokia-N900:~# chmod +x passerelle.sh
Nokia-N900:~# ./passerelle.sh

et maintenant expliquons au pc que tout doit passer par le Nokia ;
sur le pc linux, logué root verifions que la carte ethernet virtuelle USB0 existe:
Code:

[moi@pclinux] su -
[root@pclinux] ifconfig usb0
usb0 Link encap:Ethernet HWaddr xxxxxxxxxxxxxxxxxxxxx
inet adr:192.168.100.250 Bcast:192.168.100.255 Masque:255.255.255.0
adr inet6: fe80::74fe:edff:fef2:714f/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:317 errors:0 dropped:0 overruns:0 frame:0
TX packets:444 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:39642 (38.7 KiB) TX bytes:51420 (50.2 KiB)


Il faut lui indiquer comment accéder à internet : on route par défaut vers le Nokia; pareil un script (routen900.sh) est plus pratique
Code:

[root@pclinux] cat <<! >routen900.sh
echo "on vire l'ancienne default route"
route del default
echo "on route via le N900"
route add default gw 192.168.100.150
echo "et re hop"
!
[root@pclinux] chmod +x routen900.sh
[root@pclinux] ./routen900.sh

et lui indiquer l'adresse du serveur de nom. Le plus simple est d'editer le fichier /etc/resolv.conf et mettre en premiere ligne :
Code:

#google dns
nameserver 8.8.8.8

et c'est tout ...
il faut de temps en temps réactiver gprs0 sur le N900 via MiniB ou le menu connexion ...

maintenant que les scripts sont créés, il suffit juste de les exécuter dans cet ordre
1/ d'abord connecter le nokia au pc (usb, wifi),
2/ ensuite lancer le script "passerelle.sh" sur le nokia et
3/ enfin lancer le script "routen900.sh" sur la linux box (toute distrib confondures),
Chaque fois que l'on souhaitera tetherer le Nokia.


La force de cette méthode est de router tout internet (mail, ssh, web, skype/MSN/etc), à condition que votre abonnement le permette.
Maintenant si vous souhaitez de beaux cadrans à la Joykuspot, je suis preneur de vos lignes de codes Wink mais perso cela ne me manque pas.

Dans le cas de la liaisons adhoc, utilisez les menus pour créer les adresse IP et adaptez , sur le N900, les références au device qui est naté :
wlan0 au lieu de usb0 dans les 2 scripts.
Code:

/usr/sbin/iptables -A FORWARD -i wlan0 -o gprs0 -s 192.168.100.0/24 -j ACCEPT
Si vous souhaitez nater un perif en USB0 et un perif en wlan0, rajoutez
Code:

/usr/sbin/iptables -A FORWARD -i usb0 -o gprs0 -s 192.168.100.0/24 -j ACCEPT
/usr/sbin/iptables -A FORWARD -i wlan0 -o gprs0 -s 192.168.100.0/24 -j ACCEPT

au script passerelle.sh.

Amusez vous bien ...
Par contre il peut être raisonnable de de changer l'User Agent de votre navigateur PC, les proxy web des opérateurs téléphoniques traquent parfois ceux qui ne devraient pas s'y trouver ; par exemple :Internet Explorer pour windows vista a peu de chance de tourner sur un webphone, et ces opérateurs ne vendent pas des clés et des abonnement 3G pour que vous les contourniez avec votre N900.

Maintenant vous comprenez aussi pourquoi on ne trouve pas cette tablette bien subventionnée dans les boutiques des opérateurs (parfois Bouygues ..)

Au fait : est-ce que ça marche ?
Ces script ont été établis et validés lors d'une coupure réseau au taff : le couple PC-linux/Nokia-N900 accédait à tout le réseau (abonnement Bouygues), mon voisin et son Iphone cherche toujours "l'application pour ça" et celui qui étrennait son androphone (xperia X10) a constaté que son "application pour ça" ne lançait en fait qu'un proxy web, et n'avait donc accès qu'au web : pas de relevé du courrier dans thunderbird, via le protocol POP3 sur son PC, par exemple.


résumons nous :
quelque soit l'OS du PC, le principe est de :
  1. avoir toujours le script passerelle .sh sur le N900
  2. si liaison USB
    -- avoir le fichier interfaces configuré comme précisé
    -- établir une liaison (pc suite) entre le pc et le N900,
  3. s'arranger pour que le pc est une adresse en 192.168.100.xxx, xxx différent de 150 (c'est celle du N900), de préference 250 (cf fichier)
  4. selon l'OS du PC, dire au pc que le reseau "sort" par le N900 (192.168.100.150)
  5. executer le script passerelle (cherchez le tuto où on crée le "lanceur" associé)

et c'est tout


NB °)
il suffit d'installer et configurer dnsmasq.


Dernière édition par bandix400 le Mar 2 Nov 2010 - 16:48, édité 2 fois

bandix400
Amateur
Amateur


Revenir en haut Aller en bas

Le tethering, à la main Empty Re: Le tethering, à la main

Message par BlackHeart666 le Dim 31 Oct 2010 - 12:12

Salut,

je déplace section tutos! Merci bien!

Au plaisir,

_________________
Le tethering, à la main 12723810
BlackHeart666
BlackHeart666
Modo
Modo


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum