Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/11/2012, à 14:11

Azik

créer un pont entre interface 3G et eth0, Linux embarqué

Bonjour à tous !

Je travaille actuellement sur un Linux embarqué, qui est composé d'une interface eth0 et ppp0 (3G)
Actuellement, depuis mon système, j'arrive à pinger google via la 3G, donc tout va bien à ce niveau là.

Mon but est qu'un système externe, relié par ethernet, puisse se connecter via la 3G d'une manière totalement transparante,
Il faut donc que je crée un pont (enfin je crois) entre ppp0 et eth0.

après plusieurs recherches, je ne parviens pas à trouver La bonne solution, je ne sais pas si iptables suffit pour celà, ou bien s'il faut que j'installe "bridge-utils"
Je suis débutant en réseau, ce n'est pas ma tasse de thé et là je commence à bloquer ^^

infos :
Linux-3.2.8 modifié
eth0 : 10.0.0.12
ppp0: 10.242.121.187

système externe :  10.0.0.3
A terme, depuis le système externe, pouvoir me connecter à la 3G.

Ah j'allais oublier, je n'ai pas les services d'installé sur mon système embarqué ( /etc/network/interfaces )

Je vous remercie par avance

Romain

Hors ligne

#2 Le 15/11/2012, à 23:21

tiramiseb

Re : créer un pont entre interface 3G et eth0, Linux embarqué

Dans ton cas c'est pas un bridge qu'il faut créer.

Un bridge, ça permet de faire comme si deux réseaux étaient un seul ; mais l'équipement qui est en face, côté 3G, n'aura jamais connaissance des postes que tu as en interne, côté eth0.

Il faut donc que tu configures ton Linux comme un firewall qui fait du NAT (et pour ça, iptables suffit).

Par contre je ne saurais pas vers quel document te diriger pour ça, je connais ça depuis des années du coup je m'en sors sans doc... Peut-être qu'une âme charitable qui a un bon lien pour ça passera par là...

Hors ligne

#3 Le 16/11/2012, à 15:10

Azik

Re : créer un pont entre interface 3G et eth0, Linux embarqué

Salut Tiramiseb,  merci pour ces conseils,
voilà ce que j'ai trouvé (et essayé)
une fois ma connection 3G etablie, j'ai éxécuté la suivante commande :         iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Sans succès, je ne peux pas pinger un site depuis un système externe.

Je continue évidemment à expérimenter tout ça, si bien sûr vous avez la solution, je prend big_smile

Hors ligne

#4 Le 16/11/2012, à 15:12

tiramiseb

Re : créer un pont entre interface 3G et eth0, Linux embarqué

echo 1 > /proc/sys/net/ipv4/ip_forward

Hors ligne

#5 Le 16/11/2012, à 17:07

Azik

Re : créer un pont entre interface 3G et eth0, Linux embarqué

Malheureusement ça ne suffit pas, Je vais reprendre en expliquant mieux (je suis pas très doué niveau explications)

Carte1 : Linux embarqué + modem3G  (S1)

eth0      Link encap:Ethernet  HWaddr 08:08:11:18:12:27 
          inet addr:10.0.0.12  Bcast:10.0.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:38629 errors:0 dropped:2 overruns:0 frame:0
          TX packets:1491 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3004972 (2.8 MiB)  TX bytes:135282 (132.1 KiB)
          Interrupt:52 Base address:0xa300

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:504 (504.0 B)  TX bytes:504 (504.0 B)

ppp0      Link encap:Point-to-Point Protocol 
          inet addr:10.242.49.112  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:27 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:2925 (2.8 KiB)  TX bytes:2517 (2.4 KiB)

-----------

Carte 2 : Linux embarqué  (S2)

eth0      Link encap:Ethernet  HWaddr 00:90:E8:31:BB:A2 
          inet addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:486473 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4844582 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:67082714 (63.9 MiB)  TX bytes:5968001957 (5.5 GiB)


La situation :
S1----switch----S2 /\/\/\/\/\/\/ 3G

depuis S2 : je ping S1 et la 3G (ping google par ex)
depuis S1 : je ping uniquement S2.

Lorsque je tente de pinger google :
PING 173.194.31.34 (173.194.31.34): 56 data bytes
ping: sendto: Network is unreachable


Mon but, faire que S2 devienne transparant, que je puisse donc "surfer" sur le web depuis S1 via la 3G!

Je dispose des commandes "route" et "iptables", qui je crois, suffisent pour pouvoir réaliser celà.

Je n'ai jamais été doué pour le réseau, et là, honnêtement, je pige pas grand chose avec ces 2 commandes, !
Par exemple la commande :
route add -net 0.0.0.0 gw 10.0.0.12                créé une passerelle entre * et 10.0.0.12 ?

Merci de votre aide! smile

Hors ligne

#6 Le 16/11/2012, à 17:09

tiramiseb

Re : créer un pont entre interface 3G et eth0, Linux embarqué

PING 173.194.31.34 (173.194.31.34): 56 data bytes
ping: sendto: Network is unreachable

Ah ben oui c'est sûr, il faut que tu configures S1 pour qu'il utilise S2 comme passerelle par défaut :

Sur S1 :

route add default gw 10.0.0.12

Sur S2 :
config de firewall qu'on a vue plus haut

Hors ligne

#7 Le 16/11/2012, à 17:39

Azik

Re : créer un pont entre interface 3G et eth0, Linux embarqué

J'allais poster la même ligne !
Ca marche super bien merci beaucoup smile

Ah je suis soulagé/content/souriant/etc

Merci beaucoup TiramiSeb
Vive Linux et ses communautés !


cd /happy
ls
romain

Hors ligne

#8 Le 19/11/2012, à 11:47

Azik

Re : créer un pont entre interface 3G et eth0, Linux embarqué

Bonjour,

Je reviens vers vous suite à un nouveau problème que je ne pensais pas rencontrer.
Après être connecté via la 3G, je ping sans problème www.google.fr par exemple.

Je dois être capable de récupérer un fichier via wget, ou bien par ftp.
Je rajoute quelques commande via busybox, je recompile le tout, hop j'ai bien wget, ftpd, ftpget ftpput.

wget ftp://ftp.imagemagick.org/pub/ImageMagi … ick.tar.Gz
Connecting to ftp.imagemagick.org (209.191.186.187:21)
wget : can't connect to remote host (209.191.186.187:21): Connection timed out

Je ping le serveur ftp, mais impossible de récupérer un fichier, j'ai testé sur plusieurs dépôts différents, toujours la même erreur.
le DNS est bon puisque je ping "www.google.fr"

Peut-être qu'il faut autoriser les paquets du port 21 ? où me manquerait-il une option dans la conf kernel?
La connexion 3G n'empêche rien? je patoge...

Merci

Hors ligne

#9 Le 19/11/2012, à 12:13

tiramiseb

Re : créer un pont entre interface 3G et eth0, Linux embarqué

Je n'ai pas beaucoup de temps à t'accorder là (boulot, tout ça).

Ce que je peux te dire rapidement, c'est que je vois deux pistes :
- tente avec le module conntrack_ftp (je te laisse te documenter sur le sujet)
- vois si ton fournisseur d'accès 3G autorise les connexions FTP

Hors ligne

#10 Le 19/11/2012, à 14:03

Azik

Re : créer un pont entre interface 3G et eth0, Linux embarqué

Tu as raison, SFR bloque le ftp pour mon cas, superbe !
Et wget fonctionne via http, parfait, tout ce que je voulais savoir.

Merci encore TiramiSeb

Hors ligne