Strumenti Utente

Strumenti Sito


collegamenti_p2p

Quando si usano collegamenti peer to peer in una rete OSPF salta fuori un problema: gli indirizzi dei collegamenti P2P non vengono annunciati agli altri router. Questo causa un problema: un nodo che invia un pacchetto con un indirizzo P2P come indirizzo sorgente, con buona probabilità, non vedrà niente tornare indietro. Ci sono varie ragioni perché questo accada e non mi metterò a discuterle: basti dire che in linea di principio OSPF si aspetta che un computer sia o un router oppure un server, dunque il problema non si dovrebbe neanche porre (perché gli indirizzi P2P sono automaticamente usati sempre e solo per la comunicazione tra due router adiacenti e mai per traffico reale). Però se dei nodi fanno sia da router il problema si pone, oh se si pone.

Una discussione in proposito è questa: http://www.mail-archive.com/bird-users@atrey.karlin.mff.cuni.cz/msg01371.html.

Ci sono vari modi per sistemare questo problema: uno rapido e veloce è quello di forzare brutalmente gli indirizzi P2P come rotte esterne nella sessione OSPF. È una soluzione sporca, inefficiente (perché porta, in alcuni casi, alla scelta di rotte subottimali) e dispendiosa (perché aumenta enormemente il numero di rotte annunciate). Conviene usare la soluzione giusta, ossia non usare gli indirizzi P2P per il traffico reale.

Questo si può fare perché il kernel supporta un modo per dichiarare l'indirizzo sorgente preferito per i pacchetti che escono con una certa rotta. Lo si può specificare a mano passando il parametro src al comando ip; le versioni di ''bird'' a partire dalla 1.3.1 supportano anche la dichiarazione di questo parametro da parte del demone di routing.

Per avvalersi di questa possibilità bisogna usare un filtro di questo tipo come filtro di importazione di OSPF:

filter gnet_filter {
        if net ~ 6.0.0.0/8 then {
                krt_prefsrc = 6.22.22.122;
                accept;
        }
        else reject;
}

Ovviamente 6.22.22.122 va sostituito con l'indirizzo giusto da cui bisogna uscire su quella macchina. Probabilmente corrisponde con il router ID. A questo punto si può disabilitare l'esportazione delle rotte per gli indirizzi P2P (in genere per fare questo basta semplicemente rimuovere il filtro di esportazione).

Come mai IPv6 ci piace di più: perché questo problema non si pone. OSPF su IPv6 usa da solo indirizzi link-local, quindi questi non vengono mai usati per traffico reale. :-)

collegamenti_p2p.txt · Ultima modifica: 2014/02/25 15:45 (modifica esterna)