Molti di noi stanno lavorando con i firewall virtuali. Ho fatto un precedente messaggio sulla forza e di debolezza di sicurezza all'interno del mondo virtuale , ma oggi voglio parlare della possibilità di firewalling con VMware. C'è stato un sacco di entusiasmo riguardo relativamente nuovo VMware API VMsafe . In particolare, tutti sono rimescolando per creare / implementare firewall percorso veloce. Ma sono tutte le implementazioni percorso veloce creati uguali? Ci sono problemi di sicurezza con l'andare con una soluzione percorso veloce? Tuffiamoci dentro e vedere.
Ripartizione dei VMsafe
Con il rilascio della sicurezza VMsafe API, VMware ha migliorato le opzioni disponibili per l'attuazione della sicurezza all'interno di un ambiente vSphere, consentendo ai vendor di collegare direttamente l'hypervisor a ring 0. VMsafe costituito da tre componenti:
- VDDK - ispezione blocco del disco. API è stata rilasciata pubblicamente.
- vCompute - CPU e memoria API. Non è stato rilasciato pubblicamente. Sconosciuto partiti che terzi hanno accesso, se esiste.
- vNetwork - API di controllo / filtro tra la vNIC e switch virtuale. Non è stato rilasciato pubblicamente. Per quanto a mia conoscenza, solo Altor Networks & Sistemi di Reflex hanno accesso (due fornitori che hanno collaborato nello sviluppo delle API).
In particolare, voglio parlare con l'API vNetwork. Quando si controlla il flusso del traffico di rete all'interno di un host ESX, ci sono due possibile implementazione, "percorso lento" e "percorso veloce".
Percorso lento
Percorso lento è il più semplice attuazione e quella che abbiamo usato per anni. Effettivamente questo è solo un ospite VM, simile a qualsiasi altra VM guest, in esecuzione sul host ESX. Tipicamente ogni ospite è collegato a un unico switch virtuale, e ciascuno di questi switch virtuali è collegato ad un unico vNIC sul firewall. Questo è simile a una configurazione di firewall legacy, ma implementato in modo virtuale. Il vantaggio di eseguire in cammino lento è che si può eseguire un sistema operativo pieno colpo con tutte le librerie o servizi necessari per supportare il firewall.
Percorso veloce
Percorso veloce è effettivamente un driver 0 anello che si collega direttamente alla hypervisor kernel. Questo permette un fornitore di terze parti di sfruttare l'hypervisor per l'inserimento tra ogni vNIC / switch virtuale connessione. Perché un driver percorso veloce è in esecuzione nel contesto del kernel, aggiunge overhead minimo per il sistema. Il risultato è l'esecuzione di codice all'interno di percorso veloce è sostanzialmente più veloce lo stesso codice viene eseguito all'interno di percorso lento (e quindi la convenzione di denominazione per VMware ogni contesto). Carico sul host ESX è ridotto al minimo, quindi il risultato finale è possibile eseguire gli ospiti molto più virtuale.
Veloce Vs Lento
Così suona come si vorrebbe fare tutto quanto in via veloce, ma ci sono una serie di questioni. Percorso veloce è un driver del kernel di collegare in un hypervisor non minimizzata, un sistema operativo completo colpo. Questo limita le librerie e dei servizi il firewall ha a disposizione per controllare il flusso del traffico. Inoltre, stiamo inserendo in un driver kernel così c'è bisogno di rassicurazioni che non gonfiare l'hypervisor, aumentare la superficie di attacco o di interferire con altre funzioni hypervisor. VMware esegue una revisione del codice su tutti i driver percorso veloce prima del rilascio. Quindi, se ho potuto teoricamente implementare tutto il codice in cammino veloce, avrei bisogno di approvazione VMware prima di ogni patch o funzione di rilascio.
Con questo in mente, un fornitore sostenendo "fast path" Il supporto è in realtà sta per finire l'attuazione di una parte del loro codice come percorso veloce, una parte come percorso lento, e quindi creare un connettore tra i due. Quanto carico è posto sul sistema dipenderà da quanto di questo codice è implementato nel percorso veloce e quanto di esso viene eseguito nel percorso lento.
Possibili implementazioni Fast Path
Per esempio, un fornitore potrebbe scegliere di scrivere un pilota veloce percorso che semplicemente tunnel tutti i pacchetti di nuovo ad un percorso lento firewall implementato. Il codice percorso lento quindi determina se il traffico dovrebbe essere passato o cadere, con i pacchetti passato essere rimandato il codice percorso veloce per l'inserimento nel hypervisor canale di controllo. Anche se questo sarebbe il metodo più semplice di distribuzione via veloce, e senza dubbio il più sicuro, avrebbe fornito i benefici meno prestazioni. Carico di sistema probabilmente non sarebbe molto meglio di una piena attuazione percorso lento. Io vedo questa opzione come molto interessante per fornitori di firewall legacy, in quanto richiederebbe la quantità minima di modifiche al codice esistente pur essendo in grado di rivendicare "favorire un rapido percorso".
Un'altra opzione sarebbe quella di utilizzare lo spazio lento percorso per le funzioni amministrative con il driver percorso veloce che funge da motore di firewall. Così per esempio l'amministratore del firewall potrebbe creare il criterio utilizzando un'interfaccia in esecuzione su una macchina virtuale percorso lento, che sarebbe quindi spingere la politica verso il basso per un pilota percorso veloce. In questa configurazione il driver percorso veloce ha una copia della polizza così il controllo del traffico possono essere attuate immediatamente. Il risultato è la gestione del traffico più veloce con il carico di sistema minimi. Fuori commercio è più ingombrante codice a ring 0.
E 'anche possibile implementare una miscela dei due. Per esempio potrei usare il driver rapido percorso per attuare la politica del firewall, ma poi passa tutto "accettato" i pacchetti di ritorno al sistema percorso lento per il controllo delle intrusioni, antivirus, o qualunque cosa sia necessaria. Pacchetti accettabili sono poi passato al conducente percorso veloce per l'inserimento. Quindi, in questa configurazione tutto "abbandonato" i pacchetti vengono gestiti via via più veloce, mentre i pacchetti accettato di interagire con un componente di tracciato lento.
Come nota a margine, è necessario mantenere le informazioni di cui sopra a mente quando si considerano tutte le implementazioni vNetwork, non solo firewall. L'API vNetwork può essere utilizzato anche per l'applicazione delle policy, QoS, raccolta di statistiche di rete, ecc Per esempio l'applicazione prima vNetwork era in realtà Lab Manager di VMware. Questo strumento è utilizzato per il provisioning self-service e non contiene un componente firewall (questo è implementata tramite vShield).
Riassunto
Mentre un prodotto che si integra con VMware VMsafe può assolutamente essere un "cammino lento" attuazione, è altamente improbabile che qualsiasi prodotto può essere considerato unicamente un "percorso veloce" attuazione. Qualsiasi prodotto percorso veloce è più probabile sarà un ibrido. E 'solo una questione di quantità di codice esiste nel "fast path" spazio rispetto al "lento percorso" spazio. Quando un prodotto rivendicazioni supporto veloce percorso, è necessario scavare un po 'più a fondo per analizzare l'attuazione al fine di individuare eventuali benefici di prestazioni reali.

