Invio UPDATE
Questo algoritmo non ha nessuna garanzia di convergenza, quindi risulta necessario garantire la presenza di un amministratore 24/7 per sistemare eventuali problemi.
Massima LOCAL-PREF
Scegli percorsi originati localmente
AS_PATH piú corto
minima ORIGIN (IGP < EGP < INCOMPLETE)
minimo MED
Preferisci eBGP su iBGP
Minimo costo verso il NEXT-HOP
Se i percorsi sono tutti esterni, tieni il piú vecchio
Scelgo il percorso annunciato dal router con ID minimo (potrei scegliere a caso, scelta deterministica per evitare route-flapping) (ID ROUTER = Indirizzo IP piú grande)
Fino a qualche anno fa le relazioni tra A.S. erano del tipo
I seguenti non sono standard ma best practice Tipo di A.S. | Preferenza | Export Filter --- | --- | --- Customer | Massima prioritá | Inviato a tutti gli A.S. vicini Peer | Media | Inviato a tutti gli A.S. customer Provider | Minima | Inviato a tutti gli A.S. customer
Teorema
Se tutte le regole di filtraggio sono in accordo con le regole della tabella, allora il routing é stabile (non succede route flapping)
Da qualche anno a questa parte il classico schema gerarchico (Tier 1/2/3) é stato cambiato dall'introduzione di Content Provider che generano una grande quantitá di traffico, ed effettuano accordi di peering a vari livelli permettendo ai provider di avere latenze piú basse e bandwidth maggiori.
Un esempio di Content provider sono Netflix, Google, YouTube... perché generano traffico, ad esempio Netflix negli stati uniti genera il 45% di traffico usato.
Akamai invece é un Content Delivery service, cioé non genera contenuto ma si occupa di fare accordi per distribuirlo.
Questo si inserisce nel discorso sulla net neutrality per cui ci si chiede se i contenuti dei content provider vengono trattati alla pari del traffico generato da altri customer.
MAC h1=00:00...:01 IP h1=10.0.0.1
Funzione che gestisce event switch features:
...
match = parser.OFPMatch()
actions = [ parser.OFPActionOutput(ofproto.OFPP_CONTROLLER,ofproto.OFPCML_NO_BUFFER)]
...
invia flowmod a s1 con prioritá 0
match = parser.OFPmatch(eth_dst="00...3")
actions = [parser.OFPAction Output(3)]
invia flowmod con prioritá 1
...
match = parser.OFPmatch(eth_type=0x800,ip_dst="10.0.0.3")
actions = [output 3]
invia flowmod con prioritá 2
Il gestore della packet-in da un comando packet-out in flooding.
Domande:
Switch
Prioritá | Match | Azione | Pkt counter |
---|---|---|---|
0 | * | output controller | 0 |
1 | eth_dst=0...3 | output 3 | 0 |
2 | eth_type=0x080 IP_dst=IP3 | - | - |
h1 ping h2