Maison >Tutoriel système >Linux >Transformez votre CentOS en routeur OSPF
Présentation | Quagga est une suite logicielle de routage open source qui transforme Linux en un routeur prenant en charge les principaux protocoles de routage tels que RIP, OSPF, BGP et IS-IS. Il prend entièrement en charge IPv4 et IPv6 et prend en charge le filtrage de route/préfixe. Quagga peut vous sauver la vie au cas où votre routeur de production tomberait en panne et que vous n'en auriez pas de rechange mais attendriez un remplacement. Avec une configuration appropriée, Quagga peut même fonctionner comme un routeur de production. |
Dans ce didacticiel, nous connecterons deux réseaux de succursales en supposant qu'il existe une connexion de ligne dédiée entre eux (par exemple, 192.168.1.0/24 et 172.17.1.0/24).
Notre CentOS se trouve aux deux extrémités dudit lien privé. Les deux noms d'hôte sont respectivement définis sur « site-A-RTR » et « site-B-RTR ». Vous trouverez ci-dessous les détails des adresses IP
.
•Site-A : 192.168.1.0/24
•Site-B : 172.16.1.0/24
•Réseau peer-to-peer entre deux routeurs Linux : 10.10.10.0/30
Quagga comprend plusieurs démons qui fonctionnent ensemble. Dans ce tutoriel, nous nous concentrerons sur la configuration des démons suivants.
1.Zebra : Démon principal, responsable de l'interface du noyau et du routage statique.
2.Ospfd : démon IPv4 OSPF.
Nous utilisons yum pour installer Quagga.
# yum install quagga
Dans CentOS7, SELinux empêchera quagga d'écrire les fichiers de configuration dans /usr/sbin/zebra par défaut. Cette politique SELinux interférera avec le processus d'installation que nous présenterons ensuite, nous devons donc désactiver cette politique. Pour cela, désactiver SELinux (non recommandé ici) ou activer "zebrawriteconfig" comme suit fonctionnera. Si vous utilisez CentOS 6, veuillez ignorer cette étape.
# setsebool -P zebra_write_config 1
Si cette modification n'est pas effectuée, nous verrons l'erreur suivante lorsque nous tenterons de sauvegarder la configuration dans la ligne de commande Quagga.
Can't open configuration file /etc/quagga/zebra.conf.OS1Uu5.
Après avoir installé Quagga, nous devons configurer les adresses IP homologues nécessaires et mettre à jour les paramètres OSPF. Quagga est livré avec une ligne de commande appelée vtysh. Les commandes Quagga utilisées dans vtysh sont similaires à celles des principaux fabricants de routeurs tels que Cisco et Juniper.
Étape 1 : Configurer ZebraNous créons d’abord le fichier de configuration Zebra et activons le démon Zebra.
# cp /usr/share/doc/quagga-XXXXX/zebra.conf.sample /etc/quagga/zebra.conf # service zebra start # chkconfig zebra on
Démarrer la ligne de commande vtysh :
#vtysh
Tout d’abord, nous configurons les fichiers journaux pour Zebra. Entrez la commande suivante pour accéder au mode de configuration globale de vtysh :
site-A-RTR# configure terminal
Spécifiez l'emplacement du fichier journal puis quittez le mode :
site-A-RTR(config)# log file /var/log/quagga/quagga.log site-A-RTR(config)# exit
Enregistrer la configuration de manière permanente :
site-A-RTR# write
Ensuite, nous souhaitons identifier les interfaces disponibles et configurer leurs adresses IP selon les besoins.
site-A-RTR# show interface
Interface eth0 is up, line protocol detection is disabled . . . . . Interface eth1 is up, line protocol detection is disabled . . . . .
Configurer les paramètres eth0 :
site-A-RTR# configure terminal site-A-RTR(config)# interface eth0 site-A-RTR(config-if)# ip address 10.10.10.1/30 site-A-RTR(config-if)# description to-site-B site-A-RTR(config-if)# no shutdown
Continuez à configurer les paramètres eth1 :
site-A-RTR(config)# interface eth1 site-A-RTR(config-if)# ip address 192.168.1.1/24 site-A-RTR(config-if)# description to-site-A-LAN site-A-RTR(config-if)# no shutdown
Vérifiez la configuration maintenant :
site-A-RTR(config-if)# do show interface
Interface eth0 is up, line protocol detection is disabled . . . . . inet 10.10.10.1/30 broadcast 10.10.10.3 . . . . . Interface eth1 is up, line protocol detection is disabled . . . . . inet 192.168.1.1/24 broadcast 192.168.1.255 . . . . .
site-A-RTR(config-if)# do show interface description
Interface Status Protocol Description eth0 up unknown to-site-B eth1 up unknown to-site-A-LAN
Enregistrer la configuration de manière permanente :
site-A-RTR(config-if)# do write
Répétez les étapes ci-dessus pour configurer l'adresse IP sur le site-B.
Si tout se passe bien, vous devriez pouvoir envoyer une requête ping à l'adresse IP homologue 10.10.10.2 sur le site B à partir du serveur du site A.
Remarque : une fois le démon Zebra démarré, toutes les modifications apportées à la ligne de commande vtysh prendront effet immédiatement. Il n'est donc pas nécessaire de redémarrer le démon Zebra après avoir modifié la configuration.
Étape 2 : Configurer OSPFNous créons d'abord le fichier de configuration OSPF et démarrons le démon OSPF :
# cp /usr/share/doc/quagga-XXXXX/ospfd.conf.sample /etc/quagga/ospfd.conf # service ospfd start # chkconfig ospfd on
Lancez maintenant la ligne de commande vtysh pour continuer la configuration OSPF :
# vtysh
Entrez en mode de configuration du routage :
site-A-RTR# configure terminal site-A-RTR(config)# router ospf
Identifiant d'itinéraire de configuration facultatif :
site-A-RTR(config-router)# router-id 10.10.10.1
Réseau ajouté dans OSPF :
site-A-RTR(config-router)# network 10.10.10.0/30 area 0 site-A-RTR(config-router)# network 192.168.1.0/24 area 0
Enregistrer la configuration de manière permanente :
site-A-RTR(config-router)# do write
Répétez la configuration OSPF similaire à ci-dessus sur le site-B :
site-B-RTR(config-router)# network 10.10.10.0/30 area 0 site-B-RTR(config-router)# network 172.16.1.0/24 area 0 site-B-RTR(config-router)# do write
Le voisin OSPF devrait maintenant être démarré. Tant que ospfd est en cours d'exécution, toutes les modifications de configuration liées à OSPF effectuées via vtysh prendront effet immédiatement sans redémarrer ospfd.
Vérifier1. Réussir le test de ping
Tout d'abord, vous devriez pouvoir envoyer une requête ping au même sous-réseau LAN que le site B à partir du site A. Assurez-vous que votre pare-feu ne bloque pas le trafic ping.
[root@site-A-RTR ~]# ping 172.16.1.1 -c 2
2. Vérifiez la table de routage
Les routes nécessaires doivent apparaître dans les tableaux de justification du noyau et de Quagga.
[root@site-A-RTR ~]# ip route
10.10.10.0/30 dev eth0 proto kernel scope link src 10.10.10.1 172.16.1.0/30 via 10.10.10.2 dev eth0 proto zebra metric 20 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1
[root@site-A-RTR ~]# vtysh site-A-RTR# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - ISIS, B - BGP, > - selected route, * - FIB route O>* 10.10.10.0/30 [110/10] is directly connected, eth0, 00:14:29 C>* 10.10.10.0/30 is directly connected, eth0 C>* 127.0.0.0/8 is directly connected, lo O>* 172.16.1.0/30 [110/20] via 10.10.10.2, eth0, 00:14:14 C>* 192.168.1.0/24 is directly connected, eth1
3. Vérifiez les voisins et les itinéraires OSPF
Dans la ligne de commande vtysh, vous pouvez vérifier si les voisins nécessaires sont en ligne et si les itinéraires appropriés ont été appris.
[root@site-A-RTR ~]# vtysh site-A-RTR# show ip ospf neighbor
Dans ce tutoriel, nous nous concentrerons sur la configuration d'OSPF de base à l'aide de Quagga. En général, Quagga nous permet de configurer facilement des protocoles de routage dynamique tels que OSPF, RIP ou BGP sur une machine Linux ordinaire. Les machines compatibles Quagga peuvent communiquer et échanger des informations de routage avec d'autres routeurs de votre réseau. Parce qu'il prend en charge les principaux protocoles de routage standard ouverts, il peut constituer le premier choix dans de nombreuses situations. De plus, l'interface de ligne de commande de Quagga est presque identique à celle des principaux fournisseurs de routeurs tels que Cisco et Juniper, ce qui facilite grandement le déploiement et la maintenance des machines Quagga.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!