Forum Linux.général Partager une connexion PPP

Posté par  .
Étiquettes : aucune
-1
15
nov.
2011

Bonjour,

Je cherche à partager une connexion GPRS entre deux cartes embarquées avec systèmes Debian.

Carte 1 :
---------

Un modem est connecté sur un port série et on se connecte avec pppd qui créé une interface ppp0.

J'ai configuré l'interface ethernet usb0 avec l'adresse IP 192.168.1.254 :

allow-hotplug usb0
iface usb0 inet static
address 192.168.1.254
netmask 255.255.255.0

Carte 2 :
---------

La carte 2 est connecté à la carte 1 par un câble Ethernet.

J'ai configuré l'interface usb1 avec l'adresse IP 192.168.1.1 :

allow-hotplug usb0
iface usb0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.9.9.255
gateway 192.168.1.254

J'ai testé deux méthodes pour partager la connexion

  • Faire un pont sur la carte 1 entre l'interface ppp0 et usb0

Ca n'a pas marché, et j'ai lu sur un forum qu'il ne faut pas faire de pont entre une interface PPP et une interface ETH

  • Faire de la redirection d'adresse IP avec NAT

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE

J'utilise tcpdump pour voir les trames passer.

Est-ce que la deuxième méthode est adaptée (c'est pour utiliser en production) ?
Existe-t-il d'autres moyens de le faire ?

Merci

  • # probleme reseau classique

    Posté par  . Évalué à 4.

    dans ton cas, ca ne marchera jamais
    car tes deux reseaux sont dans la meme classe 192.168.1.0/24

    donc faisons par etape :
    1°) mettons les cartes sur des reseaux differents (192.168.1.0/24 et 192.168.2.0/24 par ex)
    2°) activons le forward entre les cartes (comme tu a tenté de le faire) en faisant du masquerade de ce qui vient du reseau locale vers le PPP0

    ca devrait aller mieux

    • [^] # Re: probleme reseau classique

      Posté par  . Évalué à 1.

      Si ça marche.

      Le réseau 192.168.1.0/24 c'est pour le réseau local Ethernet.

      Après avec la connexion PPP en GPRS, le réseau est différent :

      ppp0 Link encap:Point-to-Point Protocol
      inet addr:10.241.113.220 P-t-P:192.168.254.254 Mask:255.255.255.255
      UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
      RX packets:222 errors:0 dropped:0 overruns:0 frame:0
      TX packets:237 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:3
      RX bytes:244297 (238.5 KiB) TX bytes:12473 (12.1 KiB)

      • [^] # Re: probleme reseau classique

        Posté par  . Évalué à 2.

        excuse j'avais pas lu qu'en fait tu voulais juste un avis sur "y a mieux, ou j'ai tout bon"

        donc oui, tu as tout bon, et tu ne peux pas faire mieux.
        tu actives le forward de ipv4
        tu fait le masquerade pour faire croire à ppp0 que tout vient de la machine qui partage la connexion (la passerelle)

        ensuite sur les machines de ton reseau il reste juste à dire que c'est 192.168.1.1 qui est la passerelle par defaut
        et à preciser les DNS (ceux de ton fournisseur) dans /etc/resolv.conf

        sinon tu peux aussi installer un serveur DNS et DHCP sur cette passerelle pour fournir une configuration IP avec le DNS 192.168.1.1 et la passerelle 192.168.1.1 à toutes les machines de ton LAN.

        • [^] # Re: probleme reseau classique

          Posté par  . Évalué à 0.

          Ok merci,

          Pour faire une connexion VPN sur la carte 2, j'ai du activer une option dans le noyau :

          Networking options->Network packet filtering framework (Netfilter)->Core Netfilter Configuration :

          [*] Netfilter connection tracking support
          [*] PPtP protocol support

          Sans cette option les paquets GRE n'étaient pas redirigés de usb0 vers ppp0.

          Il y'a une option que je n'ai pas activé :

          [ ] FTP protocol support

          pourtant j'ai quand même réussi à faire un télechargement par FTP avec wget.

          D'après l'article Wikipedia sur le NAT, il y'a quelques limitations :

          "Les communications entre postes qui se situent derrière des NAT pose un problème, c'est le cas des protocoles pair à pair.
          ..
          Un problème majeur se pose lorsqu'un protocole de communication transmet l'adresse IP de l'hôte source dans un paquet, ou des numéros de ports. Cette adresse n'étant pas valide après avoir traversé le routeur NAT, elle ne peut être utilisée par la machine destinataire. Ces protocoles sont dits « passant difficilement les pare-feu », car ils échangent au niveau applicatif (FTP) des informations du niveau IP (échange d'adresses) ou du niveau TCP (échange de ports), ce qui transgresse le principe de la séparation des couches réseaux."

          Si j'ai bien compris, le NAT permet à un client de se connecter au socket d'un serveur, et dans ce cas le NAT fonctionne.

          Par contre un serveur ne peut pas envoyer de trame en se connectant à un socket du client car l'adresse et port du client n'existent pas (ils sont créés dynamiquement par le NAT).

          Donc le P2P par exemple ne peut pas marcher.

          Mais dans mon cas ça ne pose pas de problème.

          Pour contourner ce problème il faudrait faire du routage pour indiquer qu'un port doit être redirigé sur telle adresse IP.

          • [^] # Re: probleme reseau classique

            Posté par  . Évalué à 0.

            Quelqu'un connait le principe d'un pont entre cartes réseau ?

            J'utilise cette méthode sur des machines virtuelles, ce qui me permet d'avoir accès aux machines virtuelles depuis l'extérieur.

            Ca permet donc d'avoir plusieurs adresses IP sur une même carte Ethernet.

            Est-ce que ça émule logiciellement un switch ?

            • [^] # Re: probleme reseau classique

              Posté par  . Évalué à 2.

              Est-ce que ça émule logiciellement un switch ?

              Réponse courte: oui.

              Pour préciser, tu n'ajoute pas une IP à une carte ethernet, tu rajoute des ports à ton bridge (i.e. des portes de ton switch virtuel) qui sont soit une carte réseau, soit une interface tun/tap qui va servir de lien avec la carte ethernet virtualisée dans la VM.
              Ensuite tout se passe comme si c'était un vrai switch. Note: tu peux ajouter plusieurs IP à nimporte quelle interface ethernet, c'est orthogonal au switch qui permet d'aggréger plusieurs interfaces sur un même média.

  • # resolv.conf

    Posté par  . Évalué à 0.

    J'ai du également recopier le fichier /etc/resolv.conf de la carte 1 sur la carte 2 (pour le DNS).

    Sachant que les adresses IP de ces serveurs DNS sont établis quand la carte 1 se connecte au réseau GPRS, y'a-t-il un moyen pour que la carte 2 utilise les mêmes serveurs DNS ?

    • [^] # Re: resolv.conf

      Posté par  . Évalué à 2.

      En quoi /etc/resolv.conf est lié à une carte en particulier ?

      • [^] # Re: resolv.conf

        Posté par  . Évalué à 0.

        Par "carte" je parle de "carte embarquée", équivalent de PC.

        Donc le PC 1 se connecte en PPP sur le réseau GPRS, le FAI fournit deux adresses IP pour les serveurs DNS. Le PC 1 partage la connexion, le PC 2 l'utilise,

        Mais comment le PC 2 peut accéder aux adresses IP des serveurs DNS situés sur le PC 1 ?

        • [^] # Re: resolv.conf

          Posté par  (site web personnel) . Évalué à 2.

          dhcp ?

          Système - Réseau - Sécurité Open Source

        • [^] # Re: resolv.conf

          Posté par  . Évalué à 1.

          Le PC 1 partage la connexion

          comment le PC 2 peut accéder aux adresses IP des serveurs DNS situés sur le PC 1 ?

          Je dirais que le PC1 fait du NAT.

          Aaahhh, vivement l'IPV6 partout.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.