Skip to Content

Comment transformer temporairement son PC en routeur

Description de la situation initiale

  •  Un PC (PC-WLAN) connecté à l’Internet via son interface wifi (wlan0)
  •  Un autre PC (PC-GUEST) qui ne dispose que d’une interface réseau ethernet (eth0)

    Ces 2 PC sont motorisés par (KX)ubuntu, mais toutes autres distributions linux ne devraient pas poser de problème majeur. Ce mémo a été testé avec Kubuntu 6.06. De plus même, il sera facile d’adapter les commandes pour par exemple profiter de la connexion modem plutôt que du wifi. Le noyau utilisé est celui livré avec la distribution. Pour un noyau compilé, il faut activer dans Networking —> Networking Options —> Network Packet filtering —> IP : Netfilter Configuration : Full Nat et Masquerade en module.

    On veut pouvoir connecter PC-GUEST sur internet. Pour cela, on va utiliser PC-WLAN comme intermédiaire. Celui-ci fera donc office de passerelle. Pour cela, nous avons simplement besoin d’un câble réseau RJ45 croisé.

    Toutes les commandes qui suivent seront tapées dans une console avec le compte root ou avec le compte utilisateur originel à condition de les précéder par la commande sudo.

    Sur PC-WLAN, on utilise la commandeifconfig -a pour connaître le réseau de la liaison wlan0. Il s’agit classiquement d’un réseau privé de classe C du type 192.168.X.0 Nous allons créé un autre réseau du même type entre nos 2 PC donc 192.168.Y.0 avec Y différent de X.
    Pour ce mémo, X=1 et Y=2

    Commandes à taper sur PC-WLAN

    ifconfig eth0 192.168.2.1
    echo 1 > /proc/sys/net/ipv4/ip_forward                
    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE        

    Ces commandes permettent :

  •  de configurer l’interface réseau ethernet
  •  d’activer le routage
  •  de configurer l’interface réseau de manière à ce que les demandes de PC-GUEST soient redirigées correctement sur Internet.

    Commandes à taper sur PC-GUEST

    ifconfig eth0 192.168.2.2
    route add default gw 192.168.2.1
    echo "nameserver 80.10.246.130" > /etc/resolv.conf

    Ces commandes permettent :

  •  de configurer l’interface réseau ethernet
  •  d’indiquer l’adresse de la passerelle par defaut
  •  d’indiquer l’adresse du serveur DNS du fournisseur d’accès. Pour cet exemple, il s’agit d’un DNS de wanadoo. Pour le FAI free il faudrait utiliser l’adresse suivante : 212.27.54.252

    Si on veut connecter plusieurs PC invités sur PC-WLAN, il faudra alors utiliser un hub ou switch et utiliser des câbles droits pour connecter tous les pc dessus. Il faudra également utiliser des adresses différentes pour chaque PC supplémentaire ifconfig eth0 192.168.2.3 pour le 2ème pc etc.

    Historique des modifications

    Version Date Commentaire
    0.1 19/10/2006 Création par Jibux à l’aide des informations glanées après de Laurent et d’Alexis (merci à eux)
    0.2 27/10/2006 Ajout suite aux remarques de Piou, Patrice et Alexis (merci à tous)
    0.3 04/11/2006 Complément suite aux remarques d’Alexis (merci à lui)
  • Commentaires

    > Comment transformer temporairement son PC en routeur

    Salut Alexis,

    OUI c’est OK pour le noyau.

    Sinon j’ai complété l’article dans le sens de ta proposition.

    > Comment transformer temporairement son PC en routeur

    Donc pour les options noyau c’est OK ?

    Sinon tu parles d’un cable croise, mais si on a plus d’un PC-GUEST, il faut peut etre preciser qu’il faut relier PC-HOST, PC-GUEST1, ..., PC-GUESTn a un concentrateur (switch) avec des cables droits et donner aux PC-GUEST des IP differentes (x.x.x.n+1) ?

    > Comment transformer temporairement son PC en routeur

    Pour Alexis
    Si tu pouvais indiquer toutes les options que tu as du activer dans ton noyau, je pense que cela pourrait servir à d’autre

    > Comment transformer temporairement son PC en routeur

    Merci à tous pour vos remarques, et pardon de ne pas y avoir répondu plus rapidement.

    Dans l’ordre d’apparition des messages.

    Piou : oui effectivement ce n’est pas spécifique au wifi, je vais donc ajouter une phrase dans ce sens. En fait Alexis t’a donner la raison de l’écriture de cet article. Je ne me souviens jamais comment faire la manip, donc suite à une réunion ou j’ai transformé mon pc en routeur, j’ai décidé d’en faire un article pour pouvoir m’y référer la prochaine fois que l’occasion se présentera.

    Patrice : en fait il me semble n’avoir rien fait de plus que ce que j’indique dans cet article. Comme le but est vraiment de pouvoir faire la manip en un minimum de commande, il faudra que je refasse le test pour vérifier que cela suffit effectivement.

    Alexis : oui, je vais rajouter dans l’article que pour les personnes qui compilent leur noyau il faut les options que tu as cité

    > Comment transformer temporairement son PC en routeur

    Super article ! Merci ca nous ferra un memo utile.

    Piou > en fait c’est un probleme auquel on a du faire face a la derniere reunion, c’est pourquoi Jibux parle de wifi :)

    D’ailleurs tu pourrais peut etre preciser qu’il faut un noyau compile avec netfilter : ip_tables. ip_nat etc...

    (Pardon j’ecris un commentaire depuis mon portable QWERTY, il n’y pas d’accents)

    > Comment transformer temporairement son PC en routeur

    La commande iptables -L permet de connaître la politique par défaut des chaînes INPUT, OUTPUT et FORWARD (Les 3 chaines par défaut de netfilter).

    par exemple, si iptables -L donne pour ces 3 chaines :
    Chain INPUT (policy DROP)
    Chain FORWARD (policy DROP)
    Chain OUTPUT (policy DROP)

    Il faudra commencer par autoriser les flux en forward par :
    iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT

    Sans quoi les paquets ne passeront pas d’une interface à l’autre.
    Dans cet exemple, les chaines INPUT et OUTPUT peuvent rester à DROP. Ces chaines concernent les services que la machine met à disposition (serveur web par exemple), et les accès vers l’extérieur que nous lui autorisons (envoyer un mail par exemple).

    Bon week-end.
    Patrice.

    > Comment transformer temporairement son PC en routeur

    a peu de choses prêt, ta démarche est identique pour le cas d’une connexion normale (non wifi).

    ça serait donc sympa d’en parler car quand on lit l’article, on a l’impression que cela ne s’adresse qu’à une connexion à internet par wifi.

    mais il est vrai que le titre de l’article, lui, ne précise pas de restriction au wifi.

    évantuellement, tu peux donner la démarche pour les deux cas. Puisque c’est presque pareil, ça doit pas compliquer beaucoup l’article.