Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
routage [Le 15/07/2009, 23:11] menoftroutage [Le 04/10/2020, 09:13] (Version actuelle) – [Solution] 78.203.218.4
Ligne 1: Ligne 1:
 +{{tag>réseau}}
 +----
 +
 +====== Routage sous Linux ======
 +
 +Le routage est fort utile pour créer un sous-réseau et cacher ainsi des ordinateurs derrière un seul.
 +
 +<note important>__**Ce que ne présente pas cet article**__ : Il n'est pas question de routage dynamique (utilisation de RIP, OSPF, etc. et du démon routed), pour le routage dynamique voir la page [[routage_dynamique]].</note>
 +
 +
 +===== Pré-requis =====
 +
 +Pour faire un routeur de votre ordinateur, il vous faut :
 +   * deux cartes réseau installées (si vous voulez séparer les réseaux)
 +   * deux réseaux différents à relier (vous pouvez les créer vous-même)
 +   * activer le routage dans le fichier /etc/sysctl.conf
 +
 +<note tip>Il n'est pas obligatoire d'utiliser 2 cartes réseau ou plus afin de séparer les réseaux. L'utilisation de plusieurs cartes réseau transforme juste votre ordinateur en **bastion**. 
 +
 +Cette façon de faire est recommandée si vous voulez séparer physiquement 2 réseaux distincts et permet un contrôle total au niveau de votre ordinateur des échanges entre les 2 réseaux.</note>
 +
 +
 +
 +===== Installation d'un réseau =====
 +
 +Pour créer un réseau, il suffit d'associer une adresse IP à une des interfaces de votre système. 
 +Par exemple, je peux associer l'adresse IP **190.1.1.173** à mon interface **eth0**.
 +
 +Il suffit de taper la commande suivante :
 +<code>sudo ifconfig eth0 add 190.1.1.173</code> 
 +
 +Pour vérifier votre association tapez :
 +<code>ifconfig</code>
 +
 +<note tip> 
 +Avec les nouvelles commandes debian cela donne:
 +<code>sudo ip add 190.1.1.173 dev eth0</code>
 +<code>ip -c add</code>
 +les noms des interfaces par défaut ont également changé. Au lieu de __eth0__ vous trouverez plus certainement quelque chose du type __enp2s0f1__</note>
 +
 +Vous pouvez associer autant de réseaux que vous souhaitez à une interface. (c'est ça la fameuse magie du noyau Linux ^_^ )
 +
 +Vous pouvez maintenant communiquer avec toutes les machines qui sont sur le même réseau que vous (ayant une **__autre adresse IP du réseau__** et **__reliées__** directement ou indirectement à votre carte réseau)
 +
 +<note tip>Si vous voulez que Ubuntu se souvienne de votre association au redémarrage de l'ordinateur, il vous faut modifier le fichier **/etc/network/interfaces**, en mettant la commande up suivie de votre nouvelle route.
 +
 +Par exemple, pour supprimer la route default, rajoutez dans le fichier interface :
 +
 +<code>ip route del default</code>
 +</note>
 +
 +<note help> __Indication__ : Lorsque vous associez une adresse IP à une interface, la table de routage est **automatiquement mise à jour**. 
 +</note>
 +
 +<note help>Pour que les paquets puissent aller d'une carte réseau à une autre, il est indispensable d'activer le forward. Cette procédure est expliquée dans : [[partage_de_connexion_internet#avec_le_transfert_d_ip|Comment partager une connexion internet ?]] dans la section Activation du partage</note>
 +
 +===== Description du routage =====
 +
 +Demander la table de routage actuelle : <code>route -n</code>
 +
 +
 +{{:table_routage.png}}
 +
 +Le tableau ci-dessus s'affiche avec une ligne par route.
 +
 +Les colonnes indiquent chacune une information sur la route paramétrée.
 +
 +  - La **destination** (Réseau) : c'est une adresse IP qui indique __quels sont les paquets__ de données qui vont suivre cette route selon leur destination.
 +  - La **passerelle** (Gateway) : c'est une adresse IP qui indique __par où les paquets vont passer__ pour arriver à destination. Ils seront envoyés à cette adresse.
 +  - Le **masque de sous-réseau** (Genmask) : c'est une suite de 4 octets (comme une adresse IP) qui permet d'indiquer quelle est la taille de chaque partie de l'adresse IP (partie réseau et partie hôte). Par exemple, 255.255.255.0 comme ci-dessus indique que les 3 premiers octets seront utilisés pour le réseau et le dernier pour les adresses d'hôtes (ici la première ligne correspond à toutes les adresses comprises entre 193.17.1.1 et 193.17.1.254).
 +  - Les **indicateurs** : Ils correspondent à l'état de la route (ici **U** signifie que la route est active (Up) et **G** que la route est une passerelle (Gateway). Il existent d'autres indicateurs mais ils sont moins courants (tapez man route pour les découvrir)
 +  - Les **sauts** (Metric) : C'est un nombre qui indique combien d'intermédiaires il reste avant d'arriver à la destination. //Cette information n'est plus utilisée (sauf par des programmes comme routed (RIP)).//
 +  - Les **références** (Ref) : C'est un nombre qui indique le nombre de références associées à cette route. //Cette information n'est pas utilisée.//  
 +  - L'**utilisation** (Use) : C'est un compteur d'utilisation de la route.
 +  - L'**interface réseau** (Iface) : C'est le nom de l'interface réseau qui sera utilisée pour cette route. (pour avoir la liste des interfaces disponibles tapez ifconfig)   
 +
 +Nous pouvons voir que cette table de routage :
 +    * Envoie à l'adresse //190.1.1.1// tous les paquets qui sont destinés au réseau //193.17.1.0// (de 193.17.1.1 à 193.17.1.254) ainsi que ceux destinés au réseau //10.226.7.0// (de 10.226.7.1 à 10.226.7.254) en passant par l'interface //eth0//. (**lignes 1 et 3**)
 +   * Envoie à l'adresse //190.1.1.249// tous les paquets qui sont destinés au réseau //192.22.1.0// (de 192.22.1.1 à 192.22.1.254) en passant par l'interface //eth0//. (**ligne 2**)
 +   * Envoi tous les paquets destinés au réseau //190.1.1.0// (de 190.1.1.1 à 190.1.1.254) **__directement__** aux adresses concernées en passant par l'interface //eth0//. (**ligne 4**)
 +   * Envoie tous les paquets destinés au réseau //169.254.0.0// (de 169.254.1.1 à 169.254.254.254) **__directement__** aux adresses concernées en passant par l'interface //eth0//. (**ligne 5**)
 +   * Envoie tous les paquets __**ne correspondant pas**__ à l'une des routes précédentes vers l'adresse //190.1.1.245// en passant par l'interface //eth0//        (**dernière ligne**)
 +
 +<note help>Indication : La dernière ligne correspond à ce que l'on nomme plus couramment la **passerelle par défaut** (vous comprenez pourquoi ! :-) )</note> 
 +
 +
 +===== Modification du routage =====
 +
 +Nous allons maintenant voir comment mettre en œuvre le routage entre 2 réseaux.
 +
 +C'est en utilisant la commande **ifconfig** 
 +
 +
 +
 +==== Objectif ====
 +Nous voulons pouvoir faire communiquer 2 ordinateurs qui ne sont pas sur le même réseau mais qui sont tous les 2 connectés au même routeur.
 +ajouter l'@ à les ordinateurs pour accéder aux partages qui sont développés par ubuntu 
 + 
 +==== Données ====
 +  * Le réseau A : **190.1.1.0/255.255.255.0** (de 190.1.1.1 à 190.1.1.254)
 +  * L'**adresse IP du poste A** sur le réseau A : **190.1.1.2**
 +  * Le réseau B : **193.17.1.0/255.255.255.0** (de 193.17.1.1 à 193.17.1.254)
 +  * L'**adresse IP du poste B** sur le réseau B : **193.17.1.2**
 +
 +
 +
 +==== Solution ====
 +Il faut tout d'abord avoir une adresse IP sur le réseau de destination afin de communiquer avec par le biais de l'interface qui y est connectée.
 +<note important>Attention de ne pas prendre une adresse IP déjà utilisée !</note>  
 +  - Sur le routeur, paramétrez votre interface réseau connectée au réseau A comme [[routage#installation_d_un_reseau|dit précedemment]]. (par exemple : **190.1.1.1**)
 +  - Sur le routeur, paramétrez votre interface réseau connectée au réseau B. (par exemple : **193.17.1.1**)
 +  - Si besoin est, configurez la table de routage du poste A :
 +<code>sudo route add -net 193.17.1.0 netmask 255.255.255.0 gw 190.1.1.1</code> ou <code>sudo ip route add 193.17.1.0/24 via 190.1.1.1</code>
 +  - Si besoin est, configurez la table de routage du poste B :
 +<code>sudo route add -net 190.1.1.0 netmask 255.255.255.0 gw 193.17.1.1</code> ou <code>sudo ip route add 190.1.1.0/24 via 193.17.1.1</code>
 +
 +<note tip>__Astuce__ : Il est possible de ne pas toucher aux tables de routage des postes clients si le routeur est déjà leur **route par défaut**.</note>
 +[[http://example.com|Lien externe]]
 +Maintenant, si vous faites un ping du poste A ou du poste B vers son homologue du réseau opposé vous pouvez remarquer qu'ils peuvent maintenant __communiquer entre eux__.   
 +
 +<note important>La commande **route sous Windows "route print"** n'est que similaire. Renseignez-vous sur la commande à taper.</note>
 +
 +
 +[[https://openclassrooms.com/fr/courses/857447-apprenez-le-fonctionnement-des-reseaux-tcp-ip/854659-le-routage]]
 +----
 +//Contributeurs : ...//
 +