I protocolli di instradamento di rete si dividono in due categorie principali:protocolli gateway interni e protocolli gateway esterni. I protocolli dei gateway interni vengono utilizzati dai router per condividere le informazioni all'interno di un unico sistema autonomo. Se stai utilizzando Linux, puoi fare in modo che il tuo sistema si comporti come un router tramite lo stack di routing open source (GPLv2) Quagga.
Cos'è Quagga?
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Quagga è una suite di software di routing e un fork di GNU Zebra. Fornisce implementazioni di tutti i principali protocolli di routing come Open Shortest Path First (OSPF), Routing Information Protocol (RIP), Border Gateway Protocol (BGP) e Intermediate System to Intermediate System (IS-IS) per piattaforme simili a Unix.
Sebbene Quagga implementi i protocolli di routing sia per IPv4 che per IPv6, non funge da router completo. Un vero router non solo implementa tutti i protocolli di routing, ma ha anche la capacità di inoltrare il traffico di rete. Quagga implementa solo lo stack di routing e il lavoro di inoltro del traffico di rete è gestito dal kernel Linux.
Architettura
Quagga implementa i diversi protocolli di routing tramite demoni specifici del protocollo. Il nome del demone è lo stesso del protocollo di routing seguito dalla lettera "d". Zebra è il core e un demone indipendente dal protocollo che fornisce un livello di astrazione al kernel e presenta l'API Zserv su socket TCP ai client Quagga. Ogni demone specifico del protocollo è responsabile dell'esecuzione del protocollo pertinente e della creazione della tabella di instradamento in base alle informazioni scambiate.
Configurazione
Questo tutorial implementa il protocollo OSPF per configurare il routing dinamico utilizzando Quagga. La configurazione include due host CentOS 7.7, denominati Alpha e Beta. Entrambi gli host condividono l'accesso a 192.168.122.0/24 rete.
Alfa ospitante:
IP:192.168.122.100/24
Gateway:192.168.122.1
Host Beta:
IP:192.168.122.50/24
Gateway:192.168.122.1
Installa il pacchetto
Innanzitutto, installa il pacchetto Quagga su entrambi gli host. È disponibile nel repository di base CentOS:
yum install quagga -y
Abilita l'inoltro IP
Quindi, abilita l'inoltro IP su entrambi gli host poiché ciò verrà eseguito dal kernel Linux:
sysctl -w net.ipv4.ip_forward = 1
sysctl -p
Configurazione
Ora vai in /etc/quagga directory e creare i file di configurazione per la configurazione. Hai bisogno di tre file:
- zebra.conf :il file di configurazione del demone di Quagga, dove definirai le interfacce, i loro indirizzi IP e l'inoltro IP
- ospfd.conf :Il file di configurazione del protocollo, in cui definirai le reti che verranno offerte tramite il protocollo OSPF
- demoni :dove specificherai i daemon di protocollo rilevanti che devono essere eseguiti
Sull'host 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
Nella versione beta host,
[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
Configura il firewall
Per utilizzare il protocollo OSPF, devi abilitarlo nel firewall:
firewall-cmd --add-protocol=ospf –permanent
firewall-cmd –reload
Ora avvia i demoni zebra e ospfd.
# systemctl start zebra
# systemctl start ospfd
Guarda la tabella dei percorsi su entrambi gli host usando:
[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
Puoi vedere che la tabella di routing su Alpha contiene una voce di 10.10.10.0/24 tramite 192.168.122.50 offerto attraverso il protocollo zebra . Allo stesso modo, sull'host Beta, la tabella contiene una voce di rete 10.12.13.0/24 tramite 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
Conclusione
Come puoi vedere, l'installazione e la configurazione sono relativamente semplici. Per aggiungere complessità, puoi aggiungere più interfacce di rete al router per fornire il routing per più reti. Puoi anche implementare i protocolli BGP e RIP usando lo stesso metodo.