Arrivati a questo punto, e visti i post precedenti (1) e (2) vediamo in che modo viene elaborato un pacchetto per determinarne l’indirizzamento:
Determinazione percorso di uscita (Egress interface)
Se esiste una xlate, vale a dire se l’indirizzo di destinazione è nattato, innanzi tutto l’indirizzo viene tradotto nel suo corrispettivo (chiamiamolo indirizzo reale) e poi il pacchetto viene inviato all’indirizzo reale.
L’interfaccia di uscita (egress) viene determinata così:
se nel nat è indicata l’interfaccia di uscita, quella diventa quella di egress (a meno che non venga comunque richiesto un route lookup)
se nel nat non è configurata l’interfaccia di uscita, viene effettuata una route lookup, vale a dire l’ASA consulta la tabella di routing per vedere dove inviare il pacchetto.
Scelta del gateway
Stabilita l’interfaccia di uscita, definiamo ora quale sarà il next hop (il pacchettto va inviato ad un gateway o ad un altro? è sulla subnet? )
Se per l’IP di destinazione, su quella interfaccia, esiste una rotta, il pacchetto viene inviato al gateway presente sulla rotta. Altrimenti viene scartato e viene loggato un errore syslog (no route to host) (banalmente, se il firewall conosce la rotta da routing table, la usa, altrimenti butta via il pacchetto).
Load sharing: si può configurare solo per rotte multiple (fino a 3) sulla stessa interfaccia (vedi ECMP). Nel caso si usino zone di traffico potremo effettuare bilanciamento anche tra interfacce diverse (come si configuri una zona sarà forse oggetto di un post futuro).
Se due rotte hanno diverse prefix length vengono inserite nella tabella di routing tutte e due, ed il pacchetto viene instradato sulla base della logica di inoltro.
Decisioni effettuate esaminando la routing table:
Considerato l’indirizzo di destinazione del pacchetto in transito possiamo in conclusione avere questi casi:
se non c’e nessuna entry sulla routing table, viene usata la rotta di default (se questa non è configurata, ilpacchetto viene scartato).
se c’è una sola entry sula routing table viene usata
se ce ne sono diverse, si prende quella con il prefisso di rete più lungo, vale a dire la più specifica.