Ogni pacchetto viene elaborato da un core diverso? O è un processo a thread singolo?
Ogni pacchetto viene elaborato da un core diverso? O è un processo a thread singolo?
Risposte:
Iptables è davvero solo il front-end dello spazio utenti per il firewall linux che è netfilter. Netfilter è in realtà un sistema di hook nel kernel per l'elaborazione dei pacchetti. Ogni pacchetto viene elaborato dal kernel innescando un interrupt. Il fatto che i saldi del kernel si interrompano su più CPU dipende da quanti anni ha. Vedi questa discussione su StackOverflow al riguardo. /programming/7467688/netfilter-hooks-on-multi-core-system
Come menzionato da Nils, questi interrupt non sarebbero bilanciati in base al pacchetto. Sarebbero bilanciati per IRQ (per interfaccia) o eventualmente spostati del tutto su CPU diverse se uno diventasse troppo occupato.