\documentclass{article}
\title{Sous-r\'eseau}
\author{Julien Danjou\\jdanjou@linuxenrezo.org}
\date{}
\begin{document}
\maketitle

        Le but de cette page est de vous expliquer les bases sur les adresses IP, que vous devriez au moins survoler. Ensuite, si vous poss\'edez beaucoup de machine vous pourriez pensez \`a d\'ecouper votre r\'eseau en sous-r\'eseau, afin d'am\'eliorer la s\'ecurit\'e et la rapidit\'e comme ceci est expliqu\'e.\\ 

\section{Les adresses IP}

        Tout d'abord, il faut bien comprendre la principale source d'erreur des d\'ebutants: une adresse IP n'appartient pas \`a un PC, mais \`a une interface !\\

        C'est \`a dire c'est le mat\'eriel utilis\'e pour se connecter au r\'eseau qui poss\`ede l'adresse IP. Donc un PC avec un modem et une carte r\'eseau aura 2 adresses IP (enfin, seulement lorsque les 2 appareils sont actifs).\\ 
        
	A l'heure actuelle, les num\'eros IP (IPv4) sont compos\'es de 4 octets (de 8 bits) ce qui fait un total de 32 bits d'information. Cela donne des num\'eros un peu grands (2\^32=4 294 967 296) et difficile \`a retenir, Pour des raisons m\'emotechnique, on les \'ecrits sous formes de quadruplet point\'e.\\

        Par exemple: 192.168.1.45  est une adresse IP: 4 nombres s\'epar\'es par des points.\\
        
	Les adresses IP vont donc de 0.0.0.0 à 255.255.255.255 (oui, un octet de 8 bits peut prendre 256 valeurs puisque chaque bit a une valeur de 0 ou 1 ce qui fait 2\^8)\\ 

        Il existe 6 classes de r\'eseau IP: Les num\'eros de r\'eseau IP de classe A utilisent les 8 bits de gauche pour identifier le r\'eseau, ce qui laisse les 24 autres pour identifier les interfaces des h\^otes (ou PC). Ces 24 bits restantes sont donc appell\'ees bits d'interface pour un r\'eseau de classe A.\\

        Toutefois les adresses de classe A ont toujours le premier bit a gauche a 0, ce qui fait que le premier nombre de l'adresse IP sera compris entre 0 et 127.\\
        
	Cela fait donc 128 r\'eseaux diff\'erents, pouvant accueillir chacun 1 677 214 interfaces.\\
        
	Mais, l'adresse 0.0.0.0 (appel\'e route par d\'efaut) et 127.0.0.0 (le r\'eseau de la boucle de retour, loopback) ont des significations sp\'eciales et ne sont pas utilisables, ce qui ne fait que 126 r\'eseaux de classe A.\\
        
        Les num\'eros de r\'eseau IP de classe B utilisent les 16 bits de gauche pour identifier le r\'eseau, ce qui laisse les 16 autres pour identifier les interfaces des h\^otes (d'o\`u 16 bits d'interfaces).\\

        Toutefois les adresses de classe B ont toujours les deux premier bit a gauche a 1 0, ce qui fait que le premier nombre de l'adresse IP sera compris entre 128 et 191. Cela fait donc 32 767 r\'eseaux diff\'erents, pouvant accueillir chacun 65 534 interfaces.\\
        
        Les numéros de r\'eseau IP de classe C utilisent les 24 bits de gauche pour identifier le r\'eseau, ce qui laisse les 8 autres pour identifier les interfaces des h\^otes.\\

        Toutefois les adresses de classe C ont toujours les trois premiers bits a gauche a 1 1 0, ce qui fait que le premier nombre de l'adresse IP sera compris entre 192 et 256.\\

        Cela fait donc 4 194 303 r\'eseaux diff\'erents, pouvant accueillir chacun 254 interfaces.\\
        
	Les r\'eseaux de classe C avec le premier octet sup\'erieur à 223 sont r\'eserv\'es et non disponibles.\\         
        
	Les num\'eros IP de classe D, E et F sont r\'eserv\'es aux exp\'erimentations. Ce sont les adresses r\'eseaux de 223.0.0.0 \`a 254.255.255.255.\\ 
        
	Pour r\'esum\'e\\
        
	Classe de r\'eseau Intervalles des valeurs du premi\`ere octet\\
        
	A 1 \`a 126\\
	B 128 \`a 191\\
        C 192 \`a 223\\
        
        Certaine adresses IP sont r\'eserv\'es pour des r\'eseau n'\'etant pas directement connect\'e \`a Internet (en effet, ils peuvent \^etre reli\'es \`a Internet via un PC faisant office de passerelle). Ces adresses sont:\\

        Un r\'eseau de classe A: 10.0.0.0\\
        Un r\'eseau de classe B: 172.16.0.0 - 172.31.0.0\\
        Un r\'eseau de classe C: 192.168.0.0 - 192.168.255.0\\
        
        Les num\'eros IP peuvent avoir 3 significations:\\
        
	L'adresse d'un r\'eseau (un groupe d'appareil IP). Un num\'ero de r\'eseau aura toujours les bits d'interface \`a 0, sauf si ce r\'eseau est d\'ecoup\'e en sous-r\'eseau.\\

        L'adresse de diffusion d'un r\'eseau IP (adresse utilis\'e pour communiquer avec tout les appareils d'un r\'eseau IP). Les adresses de diffusion d'un r\'eseau ont toujours les bits d'interface \`a 1, sauf si ce r\'eseau est d\'ecoup\'e en sous-réseau. (ex: 10.255.255.255)\\

        L'adresse d'une interface (comme une carte Ethernet ou une imprimante r\'eseau...). Ces adresses peuvent avoir n'importe quelle valeur pour les bits d'interface sauf tout \`a 0 ou tout \`a 1, car sinon elle correspondrai respectivement \`a une adresse r\'eseau et adresse de diffusion (broadcast en anglais).\\
        
\section{Le masque de sous-r\'eseau}

        Le masque de r\'eseau standard est tous les bits de r\'eseau d'une adresse plac\'e \`a 1 et tous les bits d'interface plac\'e \`a 0. Cela donne des masques standards pour les 3 classes de r\'eseau:

        Classe A: 255.0.0.0\\
        Classe B: 255.255.0.0\\
        Classe C: 255.255.255.0\\

        Les masques de r\'eseau n'affecte que l'intr\'etation locale des num\'eros IP (sur un segment  particulier de r\'eseau)\\
        
\section{Sous-r\'eseaux}

        Pourquoi d\'ecouper un r\'eseau en sous-r\'eseau ?\\
        
	Le trafic r\'eseau est suffisament \'elev\'e pour ralentir tout le r\'eseau. En d\'ecoupant le r\'eseau en sous-r\'eseau, cela r\'eduit le trafic global et am\'eliora la connectivit\'e du r\'eseau sans n\'ecessit\'e plus de bande passante.\\
       
	Pour la s\'ecurit\'e, on peut \^etre amen\'e \`a empecher certain sous r\'eseau \`a acc\'eder \`a d'autres, et vice-versa...\\
        
	De plus, il est possible d'utiliser des adaptateurs assez diff\'erents et les placer dans un sous-r\'eseau.\\
        
        Comment faire ?\\

        Vous avez d\'ecidez de découpez votre r\'eseau en sous-r\'eseaux, mais que faut-il pour le mettre en place ?\\
        
        Mettez en place la connectivit\'e physique de tout les appareils que vous voulez interconnect\'e. Voil\`a deux sch\'emas d'exemple:\\ 

        Sch\'ema pour r\'eseau type BNC.\\ 

        Sch\'ema pour r\'eseau type RJ45.\\ 

        Ces 2 sch\'emas illustrent comment les sous-r\'eseaux peuvent s'organiser. Il y a 2 sous-r\'eseaux de 3 PC. Il est n\'eanmoins possible d'adopter des configuration diff\'erente.\\

        Il est evident que le PC qui sert de routeur (ou passerelle) poss\`ede 2 cartes r\'eseaux.\\
        
        Il vous faut aussi choisir la taille des sous-r\'eseaux.\\ 

	Je pense qu'il est mieux de faire 3 sous-r\'eseau de 8 PC, plutot que de faire 8 sous-r\'eseau de 3 PC...\\
 
        Il faut maintenant calculer le masque de sous-r\'eseau pour chacun d'entre eux.\\

        On sait d\'ej\`a que pour un r\'eseau de classe C, le masque de sous-r\'eseau est 255.255.255.0, ce qui fait 11111111.11111111.11111111.11111111.00000000 en binaire. Pour diviser en sous-r\'eseaux, on r\'eserve un ou plusieurs bits dans celles de l'interface.\\
        
	Cela donne donc 11111111.11111111.11111111.10000000 soit 255.255.255.128 pour le r\'eseau 192.168.1.0\\ 
        
	Voici quelques un de d\'ecoupage possible:\\
        
        Voilà quelques exemples de d\'ecoupage de r\'eseau.\\ 

\section{Le routage}
        
	Si vous utilisez un PC sous Linux avec deux interfaces r\'eseau pour router le trafic d'un sous r\'eseau \`a l'autre, vous devez avoir compil\'e votre noyau avec l'option IP forwarding.\\ 
	
	Taper la commande:\\
        
	cat /proc/ksyms \textbar grep ip\_forward\\
        
	Vous devriez avoir quelque chose comme:\\
        
	00141364 ip\_forward\_Rf71ac834\\ 
        
	Si ce n'est pas le cas, c'est que vous n'avez pas activ\'e l'option IP forwarding dans la compilation du noyau. Vous devez alors recompilez le noyau avec cette option.\\
        
\section{Les tables de routage}
        
	Supposons qu'un ordinateur fonctionnant sous Linux serve de routeur pour un r\'eseau d\'ecoup\'e en 2 sous-r\'eseaux. Ils poss\`edent donc 2 interfaces et 2 adresses IP (une par interface).\\ 

        L'adresse IP de la premi\`ere carte est 192.168.0.1 et celle de la deuxi\`eme 192.168.0.129.\\
        
        On configurera alors ces interfaces ainsi:\\ 

        Interface Adresse IP  Masque de sous-r\'eseau\\
        eth0  192.168.0.1   255.255.255.128\\
        eth1  192.168.0.129  255.255.255.128 \\
        
        Le routage utilis\'e sera:\\
	
        Destination Passerelle  Masque  Interface\\
        192.168.0.0   0.0.0.0  255.255.255.128 eth0\\
        192.168.0.129 0.0.0.0  255.255.255.128 eth1 \\

        Sur chacun des h\^otes, les h\^otes seront configur\'es avec leur propre adresse IP et masque de r\'eseau.\\ 

        Chaque h\^ote d\'eclarera l'interface du PC sous Linux auquel il est raccord\'e comme routeur.\\ 

        Mise en place du routage:\\
        
	Pour la mise en place des tables de routages, il faudra utiliser le programme ipchains afin d'autoriser/refuser les connections. Consultez la rubrique Firewall.\\

\end{document}