Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > a412ceb851151854794ced2a242192bb > files > 3837

howto-html-fr-20080722-1mdv2010.0.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapitre 17. Routage Dynamique - OSPF et BGP</title><link href="style.css" rel="stylesheet" type="text/css" /><meta content="DocBook XSL Stylesheets V1.73.2" name="generator" /><link rel="start" href="index.html" title="HOWTO du routage avancé et du contrôle de trafic sous Linux" /><link rel="up" href="index.html" title="HOWTO du routage avancé et du contrôle de trafic sous Linux" /><link rel="prev" href="ch16s03.html" title="Pseudo-pont avec du Proxy-ARP" /><link rel="next" href="ch17s02.html" title="Configurer BGP4 avec Zebra" /></head><body><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">Chapitre 17. Routage Dynamique - OSPF et BGP</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="ch16s03.html">Précédent</a> </td><th align="center" width="60%"> </th><td align="right" width="20%"> <a accesskey="n" href="ch17s02.html">Suivant</a></td></tr></table><hr /></div><div class="chapter" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="lartc.dynamic-routing" />Chapitre 17. Routage Dynamique - OSPF et BGP</h2></div></div></div><div class="toc"><p><b>Table des matières</b></p><dl><dt><span class="sect1"><a href="ch17.html#lartc.dynamic-routing.ospf">Configurer OSPF avec Zebra</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch17.html#lartc.dynamic-routing.ospf.prereq">Prérequis</a></span></dt><dt><span class="sect2"><a href="ch17.html#lartc.dynamic-routing.ospf.zebracfg">Configurer Zebra</a></span></dt><dt><span class="sect2"><a href="ch17.html#lartc.dynamic-routing.ospf.running">Exécuter Zebra</a></span></dt></dl></dd><dt><span class="sect1"><a href="ch17s02.html">Configurer BGP4 avec Zebra</a></span></dt><dd><dl><dt><span class="sect2"><a href="ch17s02.html#lartc.dynamic-routing.bgp.netmap">schéma réseau (Exemple)</a></span></dt><dt><span class="sect2"><a href="ch17s02.html#lartc.dynamic-routing.bgp.config">Configuration (Exemple)</a></span></dt><dt><span class="sect2"><a href="ch17s02.html#N123BB">Vérification de la configuration</a></span></dt></dl></dd></dl></div><p>
Si votre réseau commence à devenir vraiment gros ou si vous commencez
à considérer Internet comme votre propre réseau, vous avez besoin
d'outils qui routent dynamiquement vos données. 
Les sites sont souvent reliés entre eux par de multiples liens, et de
nouveaux liens surgissent en permanence.
</p><p>
L'Internet utilise la plupart du temps les standards OSPF (RFC 2328) et
BGP4 (RFC 1771). Linux supporte les deux, par le biais de <code class="literal">gated</code> et <code class="literal">zebra</code>.
</p><p>
Ce sujet est pour le moment hors du propos de ce document, mais 
laissez-nous vous diriger vers des travaux de référence :
</p><p>
Vue d'ensemble :
</p><p>
Cisco Systems
<a class="ulink" href="http://www.cisco.com/univercd/cc/td/doc/cisintwk/idg4/nd2003.htm" target="_top">Cisco Systems Designing large-scale IP Internetworks</a>
</p><p>
Pour OSPF :
</p><p>
Moy, John T.
"OSPF.  The anatomy of an Internet routing protocol"
Addison Wesley. Reading, MA. 1998.
</p><p>
Halabi a aussi écrit un très bon guide sur la conception du routage
OSPF, mais il semble avoir été effacé du site Web de Cisco.  
</p><p>
Pour BGP :
</p><p>
Halabi, Bassam
"Internet routing architectures"
Cisco Press (New Riders Publishing). Indianapolis, IN. 1997.
</p><p>
Il existe aussi
</p><p>
Cisco Systems
</p><p>
<a class="ulink" href="http://www.cisco.com/univercd/cc/td/doc/cisintwk/ics/icsbgp4.htm" target="_top">
Using the Border Gateway Protocol for Interdomain Routing</a>
</p><p>
Bien que les exemples soient spécifiques à Cisco, ils sont
remarquablement semblables au langage de configuration de Zebra :-) 
</p><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title"><a id="lartc.dynamic-routing.ospf" />Configurer OSPF avec Zebra</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Pedro</span> <span class="surname">Larroy Tovar</span></h3><div class="affiliation"><div class="address"><p><span style="white-space: pre;">
 		<code class="email">&lt;<a class="email" href="mailto:piotr%member.fsf.org">piotr%member.fsf.org</a>&gt;</code>
 		</span></p></div></div></div></div></div></div><p>
	<a class="ulink" href="mailto:piotr%member.fsf.org" target="_top">Contactez-moi</a> si
	les informations qui suivent ne sont pas exactes ou si vous avez des
	suggestions.

 	<a class="ulink" href="http://www.zebra.org" target="_top">Zebra</a> est un formidable
	logiciel de routage dynamique écrit par Kunihiro Ishiguro,
	Toshiaki Takada et Yasuhiro Ohara. Configurer OSPF avec zebra est
	simple et rapide mais, en pratique, il y a de nombreux paramètres
	dans le cas où vous auriez des besoins spécifiques. OSPF est
	l'abréviation de Open Shortest Path First et quelques une de ses
	fonctionnalités sont : 
 		<div class="variablelist"><dl><dt><span class="term">hiérarchique</span></dt><dd><p>
				Les réseaux sont regroupés par
				<span class="emphasis"><em>zones</em></span> (<em class="wordasword">areas</em>), qui sont
				interconnectées par une <span class="emphasis"><em>zone
				épine dorsale</em></span> qui sera appelée
				<span class="emphasis"><em>zone 0</em></span>. Tout le trafic
				passe par la zone 0 et tous les routeurs de
				cette zone ont les informations de routage
				de toutes les autres zones.
 				</p></dd><dt><span class="term">convergence rapide</span></dt><dd><p>
				Les routes sont propagées très rapidement,
				comparé à RIP par exemple.
 				</p></dd><dt><span class="term">économie de bande passante</span></dt><dd><p>
				Utilise la multi-distribution à la place de la diffusion,
				ce qui évite de submerger les autres hôtes avec des informations
				de routage sans intérêt pour eux. La multi-distribution réduit ainsi
				le débit sur le réseau.
				De même, <span class="emphasis"><em>les routeurs internes</em></span> (ceux dont toutes les
				interfaces sont situées dans la même zone) n'obtiennent pas d'informations
				sur les autres zones.
				Les routeurs avec des interfaces dans plus d'une zone sont appelés
				<span class="emphasis"><em>Area Border Routers</em></span>. Ils possèdent les informations
				de topologie sur les zones auxquelles ils sont connectés.
 				</p></dd><dt><span class="term">Utilisation intensive de CPU</span></dt><dd><p>
				OSPF est basé sur l'algorithme de Dijkstra
				<a class="ulink" href="http://www.soi.wide.ad.jp/class/99007/slides/13/07.html" target="_top">Shortest
				Path First</a>, qui est coûteux en temps de calcul comparé aux autres 
				algorithmes de routage.
				Ce n'est pas forcément mauvais, dans la mesure où le plus court chemin est
				calculé uniquement pour chaque zone. Donc, pour les réseaux de petite à
				moyenne taille, ce ne sera pas un problème ; vous ne vous en rendrez pas
				compte.
 				</p></dd><dt><span class="term">Information d'état de lien</span></dt><dd><p>
				OSPF prend en compte les caractéristiques spécifiques des réseaux
				et interfaces, telles que la bande passante, les défauts de liens et
				le coût monétaire.
 				</p></dd><dt><span class="term">Protocole ouvert et logiciel sous
				license GPL</span></dt><dd><p>
				OSPF est un protocole ouvert et Zebra est
				un logiciel sous license GPL, ce qui
				représente un avantage évident par rapport
				aux protocoles et logiciels propriétaires.
 				</p></dd></dl></div>
   </p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="lartc.dynamic-routing.ospf.prereq" />Prérequis</h3></div></div></div><p>
 
 			<div class="variablelist"><dl><dt><span class="term">Noyau Linux :</span></dt><dd><p>
 					Compilé avec CONFIG_NETLINK_DEV and
 					CONFIG_IP_MULTICAST (Je ne sais pas
 					si d'autres éléments sont également
 					nécessaires).
 					</p></dd><dt><span class="term">Iproute</span></dt><dd><p>
 					</p></dd><dt><span class="term">Zebra</span></dt><dd><p>
					Récupérez-le avec votre
					gestionnaire de paquet favori ou à
					partir de <a class="ulink" href="http://www.zebra.org" target="_top">http://www.zebra.org</a>.
 					</p></dd></dl></div>
 		</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="lartc.dynamic-routing.ospf.zebracfg" />Configurer Zebra</h3></div></div></div><p>
		Prenons le réseau suivant comme exemple :
 			<pre class="screen">
 			----------------------------------------------------
 			| 192.168.0.0/24                                   |
 			|                                                  |
 			|      Zone 0    100BaseTX Commuté                 |
 			|     Epine dorsale     Ethernet                   |
 			----------------------------------------------------
 			  |           |                |              |
 			  |           |                |              |
 			  |eth1       |eth1            |eth0          |
 			  |100BaseTX  |100BaseTX       |100BaseTX     |100BaseTX
 			  |.1         |.2              |.253          |
 			 ---------   ------------   -----------      ----------------
 			 |R Omega|   |R Atlantis|   |R Legolas|      |R Frodo       |
 			 ---------   ------------   -----------      ----------------
 			  |eth0         |eth0             |             |          |
 			  |             |                 |             |          |
 			  |2MbDSL/ATM   |100BaseTX        |10BaseT      |10BaseT   |10BaseT
 			------------   ------------------------------------       -------------------------------
 			| Internet |   | 172.17.0.0/16        Zone 1      |       | 192.168.1.0/24 wlan  Zone 2 |
 			------------   |     Réseau etudiant (dortoir)    |       |   Sans fil de Barcelone     |
 			               ------------------------------------       -------------------------------
 			</pre>
			Ne soyez pas effrayé par ce diagramme, Zebra réalise
			la plus grande partie du travail automatiquement ;
			ce qui ne demandera aucun travail de saisie des routes
			avec Zebra.
			Il serait pénible de maintenir toutes ces routes à la
			main au quotidien.
			La chose la plus importante à maîtriser clairement, 
			c'est la topologie du réseau.
			Faites particulièrement attention à la zone 0, puisque
			c'est la plus importante.
			Dans un premier temps, configurez Zebra en éditant 
			zebra.conf et en l'adaptant à vos besoins :
<pre class="screen">hostname omega
password xxx 
enable password xxx
!
! Interface's description.
!
!interface lo
! description test of desc.
!
interface eth1
multicast
!
! Static default route
!
ip route 0.0.0.0/0 212.170.21.129
!
log file /var/log/zebra/zebra.log
</pre>
			Debian nécessite également l'édition de
			<code class="filename">/etc/zebra/daemons</code> pour qu'ils
			soient lancés au démarrage :
 			<pre class="screen">
 			zebra=yes
 			ospfd=yes
 			</pre>
			Nous devons maintenant editer ospfd.conf si vous
			utilisez encore IPV4 ou ospf6d.conf si vous
			travaillez avec IPV6. Mon fichier ospfd.conf
			ressemble à ceci :
 			<pre class="screen">
 			hostname omega
 			password xxx
 			enable password xxx
 			!
 			router ospf
 			  network 192.168.0.0/24 area 0
 			  network 172.17.0.0/16 area 1
 			!
 			! log stdout
 			log file /var/log/zebra/ospfd.log
 			</pre>
			Ceci indique à ospf la topologie de notre réseau.
 		</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a id="lartc.dynamic-routing.ospf.running" />Exécuter Zebra</h3></div></div></div><p>
		Nous devons maintenant démarrer Zebra soit à la main en
		tapant "zebra -d", soit avec un script comme
		"/etc/init.d/zebra start". En regardant attentivement les
		logs de ospdfd, on peut voir les éléments suivants :
<pre class="screen">2002/12/13 22:46:24 OSPF: interface 192.168.0.1 join AllSPFRouters Multicast group.
2002/12/13 22:46:34 OSPF: SMUX_CLOSE with reason: 5   
2002/12/13 22:46:44 OSPF: SMUX_CLOSE with reason: 5
2002/12/13 22:46:54 OSPF: SMUX_CLOSE with reason: 5   
2002/12/13 22:47:04 OSPF: SMUX_CLOSE with reason: 5   
2002/12/13 22:47:04 OSPF: DR-Election[1st]: Backup 192.168.0.1
2002/12/13 22:47:04 OSPF: DR-Election[1st]: DR     192.168.0.1
2002/12/13 22:47:04 OSPF: DR-Election[2nd]: Backup 0.0.0.0
2002/12/13 22:47:04 OSPF: DR-Election[2nd]: DR     192.168.0.1
2002/12/13 22:47:04 OSPF: interface 192.168.0.1 join AllDRouters Multicast group.
2002/12/13 22:47:06 OSPF: DR-Election[1st]: Backup 192.168.0.2
2002/12/13 22:47:06 OSPF: DR-Election[1st]: DR     192.168.0.1
2002/12/13 22:47:06 OSPF: Packet[DD]: Negotiation done (Slave).
2002/12/13 22:47:06 OSPF: nsm_change_status(): scheduling new router-LSA origination
2002/12/13 22:47:11 OSPF: ospf_intra_add_router: Start
</pre>
			Ignorez le message SMUX_CLOSE pour l'instant dans
			la mesure où il concerne SNMP. Nous pouvons voir
			que 192.168.0.1 est <span class="emphasis"><em>routeur
			désigné</em></span> 
			(<em class="wordasword">Designated Router</em>) et que
			192.168.0.2 est le <span class="emphasis"><em>le routeur désigné de sauvegarde</em></span>
			(<em class="wordasword">Backup Designated Router</em>).
 		</p><p>
		Nous pouvons également interagir avec zebra et ospfd en
		exécutant :
<pre class="screen"><code class="prompt">$ </code>telnet localhost zebra
<code class="prompt">$ </code>telnet localhost ospfd
</pre>
			Voyons comment les routes se sont propagées
			en se connectant à zebra :
 			<pre class="screen">
 			root@atlantis:~# telnet localhost zebra
 			Trying 127.0.0.1...
 			Connected to atlantis.
 			Escape character is '^]'.
 
 			Hello, this is zebra (version 0.92a).
 			Copyright 1996-2001 Kunihiro Ishiguro.
 
 			User Access Verification
 
 			Password: 
 			atlantis&gt; show ip route
 			Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
 			       B - BGP, &gt; - selected route, * - FIB route
 
 			K&gt;* 0.0.0.0/0 via 192.168.0.1, eth1
 			C&gt;* 127.0.0.0/8 is directly connected, lo
 			O   172.17.0.0/16 [110/10] is directly connected, eth0, 06:21:53
 			C&gt;* 172.17.0.0/16 is directly connected, eth0
 			O   192.168.0.0/24 [110/10] is directly connected, eth1, 06:21:53
 			C&gt;* 192.168.0.0/24 is directly connected, eth1
 			atlantis&gt; show ip ospf border-routers
 			============ OSPF router routing table =============
			R    192.168.0.253         [10] area: (0.0.0.0), ABR
 						   via 192.168.0.253, eth1
 							 [10] area: (0.0.0.1), ABR
 						   via 172.17.0.2, eth0
 			</pre>
 			ou directement avec iproute :
 			<pre class="screen">
 			root@omega:~# ip route
 			212.170.21.128/26 dev eth0  proto kernel  scope link  src 212.170.21.172 
 			192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.1 
 			172.17.0.0/16 via 192.168.0.2 dev eth1  proto zebra  metric 20 
 			default via 212.170.21.129 dev eth0  proto zebra 
 			root@omega:~# 
 			</pre>
			Nous pouvons voir les routes Zebra, qui n'étaient pas présentes auparavant.
			Il est vraiment agréable de voir apparaître les routes quelques secondes après
			le lancement de zebra et ospfd.
			Vous pouvez vérifier la connectivité avec les autres hôtes en utilisant ping.
			Les routes zebra sont automatiques. Vous pouvez ajouter un autre routeur au
			réseau, configurez Zebra et voilà !
 		</p><p>
		Astuce : vous pouvez utiliser :
 			<pre class="screen">
 			tcpdump -i eth1 ip[9] == 89
 			</pre>
			pour analyser les paquets OSPF. Le numéro du
			protocole OSPF est 89 et le champ du protocole est
			le 9ième octet de l'en-tête ip.
 		</p><p>
		OSPF possède de nombreux paramètres, spécialement pour les
		grands réseaux. Dans de prochains développements du HOWTO, nous montrerons des méthodes
		de réglages fins d'OSPF.
 		</p></div></div></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="ch16s03.html">Précédent</a> </td><td align="center" width="20%"> </td><td align="right" width="40%"> <a accesskey="n" href="ch17s02.html">Suivant</a></td></tr><tr><td valign="top" align="left" width="40%">Pseudo-pont avec du Proxy-ARP </td><td align="center" width="20%"><a accesskey="h" href="index.html">Sommaire</a></td><td valign="top" align="right" width="40%"> Configurer BGP4 avec Zebra</td></tr></table></div></body></html>