Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il client e il server di una connessione di rete spesso non hanno un percorso diretto e aperto per la comunicazione. I pacchetti vengono filtrati, instradati, analizzati e trasformati sia nei computer endpoint che in computer intermedi nella rete. Le traduzioni di indirizzi di rete e i firewall sono esempi comuni di applicazioni intermedie che possono partecipare alla comunicazione di rete.
I trasporti di Windows Communication Foundation (WCF) e i modelli di scambio di messaggi (MEP) reagiscono in modo diverso alla presenza di NAT e firewall. In questo argomento viene descritto il funzionamento di NAT e firewall nelle topologie di rete comuni. Vengono fornite raccomandazioni per combinazioni specifiche di trasporti WCF e MEP che consentono di rendere le applicazioni più affidabili per le connessioni NAT e i firewall nella rete.
In che modo le nat influiscono sulla comunicazione
NAT è stato creato per consentire a più computer di condividere un singolo indirizzo IP esterno. Un NAT con rimappatura delle porte associa un indirizzo IP interno e una porta di connessione a un indirizzo IP esterno con un nuovo numero di porta. Il nuovo numero di porta consente al NAT di correlare il traffico restituito con la comunicazione originale. Molti utenti privati hanno ora un indirizzo IP che è solo instradabile privatamente e si basano su un NAT per fornire il routing globale dei pacchetti.
Un NAT non fornisce un limite di sicurezza. Tuttavia, le configurazioni NAT comuni impediscono che i computer interni vengano indirizzati direttamente. Questo protegge entrambi i computer interni da alcune connessioni indesiderate e rende difficile scrivere applicazioni server che devono inviare dati in modo asincrono al client. NAT riscrive gli indirizzi nei pacchetti per far sembrare che le connessioni originino dalla macchina NAT. Questo provoca il fallimento del server quando tenta di aprire una connessione di ritorno al client. Se il server utilizza l'indirizzo percepito dal client, fallisce perché l'indirizzo del client non può essere instradato pubblicamente. Se il server usa l'indirizzo NAT, non riesce a connettersi perché nessuna applicazione è in ascolto su tale computer.
Alcune reti NAT supportano la configurazione delle regole di inoltro per consentire ai computer esterni di connettersi a un determinato computer interno. Le istruzioni per la configurazione delle regole di inoltro variano tra diverse reti NAT e la richiesta agli utenti finali di modificare la configurazione NAT non è consigliata per la maggior parte delle applicazioni. Molti utenti finali non possono o non vogliono modificare la configurazione NAT per una determinata applicazione.
Impatto dei firewall sulle comunicazioni
Un firewall è un dispositivo software o hardware che applica le regole al traffico che passa per decidere se consentire o negare il passaggio. È possibile configurare i firewall per esaminare i flussi di traffico in ingresso e/o in uscita. Il firewall fornisce un limite di sicurezza per la rete, alla periferia della rete o sull'host dell'endpoint. Gli utenti aziendali hanno tradizionalmente mantenuto i server dietro un firewall per prevenire attacchi dannosi. Dall'introduzione del firewall personale in Windows XP, il numero di utenti domestici dietro un firewall è aumentato notevolmente. In questo modo è probabile che una o entrambe le estremità di una connessione abbiano un firewall che esamina i pacchetti.
I firewall variano notevolmente in termini di complessità e funzionalità per l'analisi dei pacchetti. I firewall semplici applicano regole in base agli indirizzi di origine e di destinazione e alle porte nei pacchetti. I firewall intelligenti possono anche esaminare il contenuto dei pacchetti per prendere decisioni. Questi firewall sono disponibili in molte configurazioni diverse e vengono spesso usate per applicazioni specializzate.
Una configurazione comune per un firewall utente principale consiste nel impedire le connessioni in ingresso a meno che non sia stata stabilita una connessione in uscita a tale computer in precedenza. Una configurazione comune per un firewall utente aziendale consiste nel impedire le connessioni in ingresso su tutte le porte, ad eccezione di un gruppo identificato in modo specifico. Un esempio è un firewall che impedisce le connessioni su tutte le porte ad eccezione delle porte 80 e 443 per fornire il servizio HTTP e HTTPS. I firewall gestiti esistono sia per gli utenti domestici che per gli utenti aziendali che consentono a un utente o a un processo attendibile nel computer di modificare la configurazione del firewall. I firewall gestiti sono più comuni per gli utenti privati in cui non sono presenti criteri aziendali che controllano l'utilizzo della rete.
Uso di Teredo
Teredo è una tecnologia di transizione IPv6 che consente la indirizzabilità diretta dei computer dietro un NAT. Teredo si basa sull'uso di un server che può essere indirizzato pubblicamente e a livello globale per annunciare potenziali connessioni. Il server Teredo fornisce al client dell'applicazione e al server un punto di riunione comune in cui è possibile scambiare informazioni di connessione. I computer richiedono quindi un indirizzo Teredo temporaneo e i pacchetti vengono sottoposti a tunneling attraverso la rete esistente. Il supporto di Teredo in WCF richiede l'abilitazione del supporto IPv6 e Teredo nel sistema operativo. Windows XP e sistemi operativi successivi supportano Teredo. Windows Vista e sistemi operativi successivi supportano IPv6 per impostazione predefinita e richiedono solo all'utente di abilitare Teredo. Windows XP SP2 e Windows Server 2003 richiedono all'utente di abilitare sia IPv6 che Teredo. Per altre informazioni, vedere Panoramica di Teredo.
Scelta di un modello di trasporto e scambio di messaggi
La selezione di un trasporto e di un MEP è un processo in tre passaggi:
Analizzare l'indirizzabilità dei computer endpoint. I server aziendali hanno in genere indirizzabilità diretta, mentre gli utenti finali hanno in genere la loro indirizzabilità bloccata dalle reti NAT. Se entrambi gli endpoint si trovano dietro un NAT, ad esempio in scenari peer-to-peer tra gli utenti finali, potrebbe essere necessaria una tecnologia come Teredo per garantire la indirizzabilità.
Analizzare il protocollo e le restrizioni relative alle porte dei computer endpoint. I server aziendali sono in genere protetti da firewall sicuri che bloccano molte porte. Tuttavia, la porta 80 è spesso aperta per consentire il traffico HTTP e la porta 443 è aperta per consentire il traffico HTTPS. Gli utenti finali hanno meno probabilità di avere restrizioni sulle porte, ma potrebbero essere dietro un firewall che consente solo le connessioni in uscita. Alcuni firewall consentono la gestione da parte delle applicazioni nell'endpoint per aprire in modo selettivo le connessioni.
Calcolare i trasporti e i deputati che consentono l'indirizzabilità e le restrizioni relative alle porte della rete.
Una topologia comune per le applicazioni client-server consiste nell'avere client che si trovano dietro un NAT senza Teredo con un firewall solo in uscita e un server indirizzabile direttamente con un firewall sicuro. In questo scenario, il trasporto TCP con un MEP duplex e un trasporto HTTP con un MEP request-reply funziona bene. Una topologia comune per le applicazioni peer-to-peer consiste nell'avere entrambi gli endpoint dietro le reti NAT e i firewall. In questo scenario e in scenari in cui la topologia di rete è sconosciuta, prendere in considerazione le raccomandazioni seguenti:
Non utilizzare trasporti duali. Un trasporto doppio apre più connessioni, riducendo così la possibilità di connettersi correttamente.
Supporto per stabilire canali secondari sulla connessione di origine. L'uso di canali back, ad esempio in TCP duplex, apre un minor numero di connessioni, aumentando così la possibilità di connettersi correttamente.
Usare un servizio raggiungibile per registrare gli endpoint o inoltrare il traffico. L'uso di un servizio di connessione raggiungibile a livello globale, ad esempio un server Teredo, aumenta notevolmente la possibilità di connettersi correttamente quando la topologia di rete è restrittiva o sconosciuta.
Le tabelle seguenti esaminano i modelli di scambio di messaggi (MEP) unidirezionale, request-reply e duplex e il protocollo TCP standard, TCP con Teredo e il trasporto HTTP standard e duale in WCF.
Indirizzabilità | Server Direct | Connessione diretta al server con attraversamento NAT | Server NAT (Network Address Translation) | Server NAT con tecniche di attraversamento NAT |
---|---|---|---|---|
Cliente diretto | Qualsiasi trasporto e MEP | Qualsiasi trasporto e MEP | Non supportato. | Non supportato. |
Client diretto con attraversamento NAT | Qualsiasi trasporto e MEP. | Qualsiasi trasporto e MEP. | Non supportato. | TCP con Teredo e qualsiasi MEP. Windows Vista include un'opzione di configurazione a livello di computer per supportare HTTP con Teredo. |
Cliente NAT | Qualsiasi trasporto non doppio e MEP. Mep duplex richiede il trasporto TCP. | Qualsiasi trasporto non doppio e MEP. Mep duplex richiede il trasporto TCP. | Non supportato. | Non supportato. |
Client NAT con attraversamento NAT | Qualsiasi trasporto non doppio e MEP. Mep duplex richiede il trasporto TCP. | Tutto tranne dual HTTP e qualsiasi MEP. Mep duplex richiede il trasporto TCP. Il trasporto TCP doppio richiede Teredo. Windows Vista include un'opzione di configurazione a livello di computer per supportare HTTP con Teredo. | Non supportato. | TCP con Teredo e qualsiasi MEP. Windows Vista include un'opzione di configurazione a livello di computer per supportare HTTP con Teredo. |
Restrizioni del firewall | Server aperto | Server con firewall gestito | Server con firewall solo HTTP | Server con firewall solo in uscita |
---|---|---|---|---|
Client Aperto | Qualsiasi trasporto e MEP. | Qualsiasi trasporto e MEP. | Qualsiasi trasporto HTTP e MEP. | Non supportato. |
Client con firewall gestito | Qualsiasi trasporto non doppio e MEP. Mep duplex richiede il trasporto TCP. | Qualsiasi trasporto non doppio e MEP. Mep duplex richiede il trasporto TCP. | Qualsiasi trasporto HTTP e MEP. | Non supportato. |
Client con firewall solo HTTP | Qualsiasi trasporto HTTP e MEP. | Qualsiasi trasporto HTTP e MEP. | Qualsiasi trasporto HTTP e MEP. | Non supportato. |
Client con firewall solo in uscita | Qualsiasi trasporto non doppio e MEP. Mep duplex richiede il trasporto TCP. | Qualsiasi trasporto non doppio e MEP. Mep duplex richiede il trasporto TCP. | Qualsiasi trasporto HTTP e qualsiasi MEP non duplex. | Non supportato. |