GNU/Linux >> Tutoriels Linux >  >> Linux

Créer un SDN sous Linux avec open source

Les protocoles de routage réseau se répartissent en deux catégories principales :les protocoles de passerelle intérieure et les protocoles de passerelle extérieure. Les protocoles de passerelle intérieure sont utilisés par les routeurs pour partager des informations au sein d'un seul système autonome. Si vous utilisez Linux, vous pouvez faire en sorte que votre système se comporte comme un routeur via la pile de routage open source (GPLv2) Quagga.

Qu'est-ce que Quagga ?

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Quagga est une suite logicielle de routage et un fork de GNU Zebra. Il fournit des implémentations de tous les principaux protocoles de routage tels que Open Shortest Path First (OSPF), Routing Information Protocol (RIP), Border Gateway Protocol (BGP) et Intermediate System to Intermediate System (IS-IS) pour les plates-formes de type Unix. /P>

Bien que Quagga implémente les protocoles de routage pour IPv4 et IPv6, il n'agit pas comme un routeur complet. Un vrai routeur implémente non seulement tous les protocoles de routage, mais a également la capacité de transférer le trafic réseau. Quagga implémente uniquement la pile de routage, et le travail de transfert du trafic réseau est géré par le noyau Linux.

Architecture

Quagga implémente les différents protocoles de routage via des démons spécifiques au protocole. Le nom du démon est le même que le protocole de routage suivi de la lettre "d". Zebra est le cœur et un démon indépendant du protocole qui fournit une couche d'abstraction au noyau et présente l'API Zserv sur les sockets TCP aux clients Quagga. Chaque démon spécifique au protocole est responsable de l'exécution du protocole approprié et de la construction de la table de routage basée sur les informations échangées.

Configuration

Ce tutoriel implémente le protocole OSPF pour configurer le routage dynamique à l'aide de Quagga. La configuration comprend deux hôtes CentOS 7.7, nommés Alpha et Beta. Les deux hôtes partagent l'accès au 192.168.122.0/24 réseau.

Hôte alpha :

IP :192.168.122.100/24

Passerelle :192.168.122.1

Bêta hôte :

IP :192.168.122.50/24

Passerelle :192.168.122.1

Installer le package

Tout d'abord, installez le package Quagga sur les deux hôtes. Il est disponible dans le dépôt de base CentOS :

yum install quagga -y

Activer le transfert IP

Ensuite, activez le transfert IP sur les deux hôtes car cela sera effectué par le noyau Linux :

sysctl -w net.ipv4.ip_forward = 1
sysctl -p

Configuration

Maintenant, allez dans /etc/quagga répertoire et créez les fichiers de configuration pour votre installation. Vous avez besoin de trois fichiers :

  • zebra.conf  : le fichier de configuration du démon de Quagga, où vous définirez les interfaces, leurs adresses IP et leur redirection IP
  • ospfd.conf  :Le fichier de configuration du protocole, dans lequel vous définirez les réseaux qui seront proposés via le protocole OSPF
  • démons  :où vous spécifierez les démons de protocole pertinents qui doivent s'exécuter

Sur l'hôte Alpha,

 [root@alpha]# cat /etc/quagga/zebra.conf
interface eth0
 ip address 192.168.122.100/24
 ipv6 nd suppress-ra
interface eth1
 ip address 10.12.13.1/24
 ipv6 nd suppress-ra
interface lo
ip forwarding
line vty


[root@alpha]# cat /etc/quagga/ospfd.conf
interface eth0
interface eth1
interface lo
router ospf
 network 192.168.122.0/24 area 0.0.0.0
 network 10.12.13.0/24 area 0.0.0.0
line vty

[root@alphaa ~]# cat /etc/quagga/daemons
zebra=yes
ospfd=yes

Sur l'hôte bêta,

[root@beta quagga]# cat zebra.conf
interface eth0
 ip address 192.168.122.50/24
 ipv6 nd suppress-ra
interface eth1
 ip address 10.10.10.1/24
 ipv6 nd suppress-ra
interface lo
ip forwarding
line vty

[root@beta quagga]# cat ospfd.conf
interface eth0
interface eth1
interface lo
router ospf
 network 192.168.122.0/24 area 0.0.0.0
 network 10.10.10.0/24 area 0.0.0.0
line vty

[root@beta ~]# cat /etc/quagga/daemons
zebra=yes
ospfd=yes

Configurer le pare-feu

Pour utiliser le protocole OSPF, vous devez l'autoriser dans le pare-feu :

firewall-cmd --add-protocol=ospf –permanent

firewall-cmd –reload

Maintenant, démarrez les démons zebra et ospfd.

# systemctl start zebra
# systemctl start ospfd

Regardez la table de routage sur les deux hôtes en utilisant :

[root@alpha ~]# ip route show   
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 via 192.168.122.50 dev eth0 proto zebra metric 20
10.12.13.0/24 dev eth1 proto kernel scope link src 10.12.13.1
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.100 metric 100

Vous pouvez voir que la table de routage sur Alpha contient une entrée de 10.10.10.0/24 via 192.168.122.50 offert via le protocole zebra . De même, sur l'hôte bêta, la table contient une entrée de réseau 10.12.13.0/24 via 192.168.122.100 .

[root@beta ~]# ip route show 
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 dev eth1 proto kernel scope link src 10.10.10.1
10.12.13.0/24 via 192.168.122.100 dev eth0 proto zebra metric 20
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.50 metric 100

Conclusion

Comme vous pouvez le voir, l'installation et la configuration sont relativement simples. Pour ajouter de la complexité, vous pouvez ajouter plus d'interfaces réseau au routeur pour fournir un routage pour plus de réseaux. Vous pouvez également implémenter les protocoles BGP et RIP en utilisant la même méthode.


Linux
  1. Partage de fichiers open source avec cet outil Linux

  2. Pixel art 3D open source avec Goxel

  3. Effectuez des analyses de mémoire Linux avec cet outil open source

  4. Mon histoire Linux :briser les barrières linguistiques avec l'open source

  5. Les employeurs vont augmenter l'embauche de professionnels de l'informatique avec des compétences open source

Créer une application de bureau Linux avec Ruby

Commande source Linux avec exemples

Comment créer une sauvegarde avec la commande tar sous Linux

Top 6 des shells open source pour Linux

Créer une clé USB amorçable avec USBImager sous Linux

Comment créer un groupe de volumes sous Linux avec LVM