6. Considerazioni su ECMP
Questa sezione tratta la funzionalità Equal Cost Multipath (ECMP) per la topologia Clos e discute alcuni requisiti particolari.
6.1. ECMP di base
L'ECMP è il meccanismo fondamentale di condivisione del carico usato da una topologia Clos. In pratica, ogni dispositivo di tier inferiore usa tutti i dispositivi di tier superiore direttamente collegati per ripartire il traffico verso lo stesso prefisso IP. Il numero di percorsi ECMP tra due dispositivi Tier 3 in una topologia Clos è uguale al numero di dispositivi nello stadio intermedio (Tier 1). Ad esempio, la Figura 5 illustra una topologia in cui il dispositivo Tier 3 A ha quattro percorsi per raggiungere i server X e Y, tramite i dispositivi Tier 2 B e C e poi i dispositivi Tier 1 1, 2, 3 e 4 rispettivamente.
Tier 1
+-----+
| DEV |
+->| 1 |--+
| +-----+ |
Tier 2 | | Tier 2
+-----+ | +-----+ | +-----+
+----------->| DEV |--+->| DEV |--+--| |-------------+
| +----| B |--+ | 2 | +--| |-----+ |
| | +-----+ +-----+ +-----+ | |
| | | |
| | +-----+ +-----+ +-----+ | |
| +-----+--->| DEV |--+ | DEV | +--| |-----+-----+ |
| | | +--| C |--+->| 3 |--+--| |---+ | | |
| | | | +-----+ | +-----+ | +-----+ | | | |
| | | | | | | | | |
+-----+ +-----+ | +-----+ | +-----+ +-----+
| DEV | | | Tier 3+->| DEV |--+ Tier 3 | | | |
| A | | | | 4 | | | | |
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | |
O O O O <- Servers -> X Y O O
Figure 5: ECMP Fan-Out Tree from A to X and Y
Il requisito ECMP implica che l'implementazione BGP deve supportare fan-out multipath fino al numero massimo di dispositivi direttamente collegati in qualsiasi punto della topologia, a monte o a valle. Normalmente tale numero non supera metà delle porte presenti su un dispositivo nella topologia. Ad esempio, sarebbe richiesto un fan-out ECMP di 32 per costruire una rete Clos con dispositivi a 64 porte. I Border Router possono necessitare di fan-out più ampio per collegarsi a molti dispositivi Tier 1 se la summarizzazione delle route a livello di Border Router è implementata come descritto nella Sezione 5.2.5. Se l'hardware di un dispositivo non supporta ECMP più ampio, il raggruppamento logico di collegamenti (aggregazione di collegamenti a Layer 2) può fornire ECMP « gerarchico » (ECMP Layer 3 accoppiato a ECMP Layer 2) per compensare i limiti di fan-out. Tuttavia questo approccio aumenta il rischio di polarizzazione dei flussi, poiché alla seconda fase di ECMP sarà disponibile minore entropia.
La maggior parte delle implementazioni BGP dichiara i percorsi equali dal punto di vista ECMP se coincidono fino allo step (e) incluso nella Sezione 9.1.2.2 di [RFC4271]. Nella progettazione di rete proposta non c'è IGP sottostante, quindi tutti i costi IGP si assumono zero o comunque uguali su tutti i percorsi e si possono applicare policy per uniformare attributi BGP che variano nei default del vendor, come l'attributo MULTI_EXIT_DISC (MED) e il codice di origine. Per ragioni storiche è utile non usare 0 come valore MED uniformato; altre informazioni utili sono in [RFC4277]. I loop di routing sono improbabili grazie al processo di best-path BGP (che preferisce AS_PATH più corti), e percorsi più lunghi attraverso dispositivi Tier 1 (che non consentono il proprio ASN nel percorso) non sono possibili.
6.2. ECMP BGP su più ASN
Per il bilanciamento del carico applicativo è desiderabile che lo stesso prefisso sia annunciato da più dispositivi Tier 3. Dalla prospettiva degli altri dispositivi, tale prefisso avrebbe percorsi BGP con valori AS_PATH diversi ma lunghezze AS_PATH uguali. Pertanto le implementazioni BGP devono supportare la condivisione del carico sui percorsi sopra citati. Questa funzione è talvolta detta « multipath relax » o « multipath multiple-AS » e consente effettivamente ECMP tra ASN vicini diversi se tutti gli altri attributi sono equali come già descritto nella sezione precedente.
6.3. ECMP ponderato
Può essere desiderabile che i dispositivi di rete implementino ECMP « ponderato » per inviare più traffico su alcuni percorsi nel fan-out ECMP. Ciò può aiutare a compensare guasti nella rete e a indirizzare più traffico su percorsi con maggiore capacità. I prefissi che richiedono ECMP ponderato dovrebbero essere iniettati tramite un parlante BGP remoto (agente centrale) su una sessione multi-hop come ulteriormente descritto nella Sezione 8.1. Se le implementazioni lo supportano, la distribuzione dei pesi per più percorsi BGP può essere segnalata con la tecnica descritta in [LINK].
6.4. Hashing consistente
Spesso è desiderabile che la funzione di hash usata per ECMP sia consistente (vedere [CONS-HASH]), per minimizzare l'impatto sull'affinità flusso-next-hop quando un next hop viene aggiunto o rimosso da un gruppo ECMP. Ciò può servire se il dispositivo di rete funge da bilanciatore di carico, mappando flussi verso più destinazioni: in tal caso perdere o aggiungere una destinazione non ha effetto dannoso sui flussi già stabiliti. Una raccomandazione specifica sull'implementazione dell'hashing consistente è fornita in [RFC2992], sebbene siano possibili altre implementazioni. Questa funzionalità può essere combinata naturalmente con ECMP ponderato, con impatto delle variazioni di next hop proporzionale al peso del next hop interessato. Lo svantaggio dell'hashing consistente è un maggior carico sulle risorse hardware, poiché in genere servono più risorse (ad es. spazio TCAM, Ternary Content-Addressable Memory) per implementare una funzione di hash consistente.