Guida Completa: Segment Routing su GNS3 (Teoria e
Pratica)
Parte 1: La Teoria Dietro l'Esperimento 🧠
Obiettivo: L'esperimento dimostra come funziona il Segment Routing (SR). Invece di lasciare che
ogni router decida da solo il percorso migliore, il router di partenza può imporre una "rotta" precisa
che i pacchetti devono seguire, proprio come imposteresti delle tappe intermedie su un navigatore.
Concetti Chiave
Segmento: Un'istruzione di percorso, "vai a un router specifico".
Segment ID (SID): Un numero (un'etichetta MPLS) che rappresenta un segmento.
Assegneremo un SID univoco a ogni router (101 per R1, 102 per R2, 103 per R3). Questo
SID è come l'indirizzo civico del router all'interno della rete SR.
Source Routing: Significa che è la "sorgente" (il primo router) a decidere l'intero percorso.
Lo fa inserendo nel pacchetto una lista di SID (etichette) che rappresentano le tappe da
seguire.
OSPF: È il protocollo di routing che usiamo. Il suo compito è duplice: permette ai router di
scoprire i vicini e costruire una mappa della rete, e soprattutto, distribuisce i SID di ogni
router a tutti gli altri. È grazie a OSPF che R1 sa che il SID 103 appartiene a R3.
MPLS: È la tecnologia che fa funzionare tutto. I SID sono etichette MPLS. Ogni router
lungo il percorso legge l'etichetta in cima alla lista, la esegue (inoltrando il pacchetto verso
la tappa successiva) e la rimuove, rivelando l'istruzione per il router seguente.
In sintesi, anche se con 3 router il percorso più breve è ovvio, useremo OSPF per distribuire le
etichette (SID) e dimostreremo che la rete è pronta per imporre percorsi personalizzati, il che è il
vero potere del Segment Routing.
Parte 2: Configurazione dei Router (Teoria e Pratica)
Ora applichiamo questi concetti. Esegui la seguente procedura per ogni router, usando i rispettivi
blocchi di codice.
⚙️Procedura per frrouting-frr-1 (R1)
Passo 1: Abilitare il Demone OSPF
Azione:
1. Dalla console (root@...#), apri il file: vi /etc/frr/daemons.
2. Modifica la riga ospfd=no in ospfd=yes.
3. Salva e chiudi (premi Esc, digita :wq e Invio).
Spiegazione (Perché?): FRR è un software modulare. Anche se scriviamo una
configurazione OSPF, il servizio che la esegue (ospfd) non parte di default. Questa
modifica gli dice di avviarsi, permettendo così ai router di scambiarsi le informazioni sulla
mappa di rete e sui SID.
Passo 2: Applicare la Configurazione di Rete
Azione:
1. Entra nella shell di FRR con vtysh.
2. Entra in modalità configurazione con configure terminal.
3. Copia e incolla l'intero blocco di comandi per R1.
Spiegazione (Perché?): Questo blocco di comandi è il "cervello" del router e applica
direttamente la teoria:
Snippet di codice
hostname R1
! ----- Configurazione di Base (Indirizzi IP) -----
! Diamo un indirizzo a ogni "porta" del router per permettere la
comunicazione diretta con i vicini.
interface eth0
ip address [Link]/24
no shutdown
exit
interface eth2
ip address [Link]/24
no shutdown
exit
! La loopback è l'indirizzo STABILE del router, il suo vero
identificativo.
interface lo
ip address [Link]/32
exit
! ----- Abilitazione della Tecnologia MPLS -----
! Questo comando "accende" la capacità del router di gestire etichette
MPLS.
segment-routing
mpls-enable
exit
! ----- Configurazione OSPF e Segment Routing -----
! Avviamo il processo di routing OSPF.
router ospf
! Diciamo a OSPF di usare le estensioni per Segment Routing.
ospf-segment-routing mpls
! OSPF pubblicizzerà queste reti, dicendo agli altri router "potete
raggiungermi tramite queste porte".
network [Link]/24 area 0
network [Link]/24 area 0
network [Link]/32 area 0
! IL CUORE DI SR: Associamo il nostro indirizzo stabile ([Link]) al
nostro SID univoco (101).
! OSPF ora dirà a tutti: "Per raggiungere [Link], usate l'etichetta
101".
segment-routing prefix [Link]/32 index 101
exit
Passo 3: Salvare la Configurazione
Azione: Dalla modalità di configurazione, esegui:
Snippet di codice
end
write memory
Spiegazione (Perché?): Questo salva la configurazione nel file di avvio del router. Senza
questo, al riavvio, il router si dimenticherebbe tutto.
⚙️Procedura e Codice per frrouting-frr-2 (R2)
Azione: Ripeti i 3 passaggi (Abilita OSPF, Applica Configurazione, Salva) usando questo
blocco di codice:
Snippet di codice
hostname R2
interface eth0
ip address [Link]/24
no shutdown
exit
interface eth1
ip address [Link]/24
no shutdown
exit
interface lo
ip address [Link]/32
exit
segment-routing
mpls-enable
exit
router ospf
ospf-segment-routing mpls
network [Link]/24 area 0
network [Link]/24 area 0
network [Link]/32 area 0
! Associamo l'indirizzo stabile di R2 ([Link]) al suo SID (102).
segment-routing prefix [Link]/32 index 102
exit
⚙️Procedura e Codice per frrouting-frr-3 (R3)
Azione: Ripeti i 3 passaggi (Abilita OSPF, Applica Configurazione, Salva) usando questo
blocco di codice:
Snippet di codice
hostname R3
interface eth1
ip address [Link]/24
no shutdown
exit
interface eth2
ip address [Link]/24
no shutdown
exit
interface lo
ip address [Link]/32
exit
segment-routing
mpls-enable
exit
router ospf
ospf-segment-routing mpls
network [Link]/24 area 0
network [Link]/24 area 0
network [Link]/32 area 0
! Associamo l'indirizzo stabile di R3 ([Link]) al suo SID (103).
segment-routing prefix [Link]/32 index 103
exit
Parte 3: Salvare e Verificare il Laboratorio
Passo 1: Salvare il Progetto GNS3 (FONDAMENTALE)
Azione: Dopo aver configurato e salvato internamente tutti e tre i router, torna a GNS3 e
vai su File -> Save project.
Spiegazione (Perché?): I container Docker sono "senza stato". Questo salvataggio dice a
GNS3 di creare una "istantanea" permanente delle tue modifiche (incluso il file daemons e la
configurazione di FRR). Senza questo passo, al prossimo riavvio del progetto, i router
tornerebbero vergini.
Passo 2: La Verifica Finale
Azione: Riavvia il progetto. Apri la console di R1, entra in vtysh e usa questi comandi.
Spiegazione (Cosa stiamo verificando?):
1. show ip ospf neighbor
Cosa fa: Mostra i router vicini con cui OSPF ha stabilito una comunicazione.
Verifica teorica: Se vedi R2 e R3 in stato Full, significa che la mappa di
base della rete è stata costruita. I router si conoscono e si sono scambiati le
informazioni, inclusi i SID.
2. show mpls table
Cosa fa: Mostra la tabella di inoltro MPLS.
Verifica teorica: Questo è il risultato finale del Segment Routing. Vedrai che
R1 ha imparato i SID degli altri router. Ad esempio, vedrai una riga che dice:
"Per raggiungere il SID 103 (R3), invia il pacchetto attraverso l'interfaccia
eth2". Questo dimostra che la rete è pronta a inoltrare traffico basandosi
sulle etichette SR, completando l'obiettivo del laboratorio.