

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Flussi multipli dei dati multiplex in un tunnel sicuro
<a name="multiplexing-multiple-streams"></a>

È possibile utilizzare la funzionalità di multiplexing per dispositivi che utilizzano più connessioni o porte. Il multiplexing può essere utilizzato anche quando sono necessarie più connessioni a un dispositivo remoto per risolvere eventuali problemi. Ad esempio, può essere utilizzato nel caso di un browser web che richiede l'invio di più flussi di dati HTTP e SSH. I dati delle applicazioni da entrambi gli stream vengono inviati contemporaneamente al dispositivo attraverso il tunnel multiplex.

## Esempio di caso d’uso
<a name="multiplexing-use-case"></a>

Ad esempio, potrebbe essere necessario connettersi a un'applicazione web sul dispositivo per modificare alcuni parametri di rete, mentre contemporaneamente emettono comandi shell attraverso il terminale per verificare che il dispositivo funzioni correttamente con i nuovi parametri di rete. In questo scenario, potrebbe essere necessario connettersi al dispositivo tramite HTTP e SSH e trasferire due flussi di dati paralleli per accedere contemporaneamente all'applicazione Web e al terminale. Con la funzione multiplexing, questi due flussi indipendenti possono essere trasferiti contemporaneamente sullo stesso tunnel.

![\[Un diagramma che mostra l'architettura cloud IoT con dispositivi di origine, server proxy e dispositivi di destinazione per lo streaming di dati su protocolli diversi.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/tunnel-multiplexing.png)


## Come impostare un tunnel multiplex
<a name="multiplexing-tutorial"></a>

La procedura seguente illustra come configurare un tunnel multiplex per la risoluzione dei problemi relativi ai dispositivi che utilizzano applicazioni che richiedono connessioni a più porte. Imposterai un tunnel con due flussi multiplex: un flusso HTTP e uno SSH.

1. 

**(Facoltativo) Crea file di configurazione**

   Facoltativamente è possibile configurare il dispositivo di origine e di destinazione con i file di configurazione. Usa i file di configurazione se è probabile che le mappature delle porte cambino frequentemente. È possibile saltare questo passaggio se si preferisce specificare la mappatura delle porte tramite CLI o non è necessario avviare il proxy locale su porte di ascolto designate. Per ulteriori informazioni su come utilizzare i file di configurazione, vedi [Opzioni impostate tramite --config](https://github.com/aws-samples/aws-iot-securetunneling-localproxy#options-set-via---config) in. GitHub

   1. Sul tuo dispositivo di origine, nella cartella in cui verrà eseguito il proxy locale, crea una cartella di configurazione chiamata `Config`. All'interno di questa cartella, crea un file chiamato `SSHSource.ini` con il seguente contenuto:

      ```
      HTTP1 = 5555
      SSH1 = 3333
      ```

   1. Sul dispositivo di destinazione, nella cartella in cui verrà eseguito il proxy locale, crea una cartella di configurazione chiamata `Config`. All'interno di questa cartella, crea un file chiamato `SSHDestination.ini` con il seguente contenuto:

      ```
      HTTP1 = 80
      SSH1 = 22
      ```

1. 

**Apertura di un tunnel**

   Aprire un tunnel utilizzando l'operazione `OpenTunnel` API o il comando `open-tunnel` CLI. Configura la destinazione specificando `SSH1` e `HTTP1` come servizi e il nome dell' AWS IoT elemento che corrisponde al tuo dispositivo remoto. Le applicazioni SSH e HTTP sono in esecuzione su questo dispositivo remoto. È necessario aver già creato l'oggetto IoT nel AWS IoT registro. Per ulteriori informazioni, consulta [Gestire gli elementi con il registro](thing-registry.md).

   ```
   aws iotsecuretunneling open-tunnel \
   	--destination-config thingName=RemoteDevice1,services=HTTP1,SSH1
   ```

   L'esecuzione di questo comando genera i token di accesso di origine e destinazione che utilizzerai per eseguire il proxy locale.

   ```
   {
   	"tunnelId": "b2de92a3-b8ff-46c0-b0f2-afa28b00cecd",
   	"tunnelArn": "arn:aws:iot:us-west-2:431600097591:tunnel/b2de92a3-b8ff-46c0-b0f2-afa28b00cecd",
   	"sourceAccessToken": source_client_access_token,
   	"destinationAccessToken": destination_client_access_token
   }
   ```

1. 

**Configurazione e avvio del proxy locale**

   Prima di poter eseguire il proxy locale, configura il AWS IoT Device Client o scarica il codice sorgente del proxy locale da [GitHub](https://github.com/aws-samples/aws-iot-securetunneling-localproxy)e crealo per la piattaforma che preferisci. È quindi possibile avviare il proxy locale di destinazione e di origine per connettersi al tunnel sicuro. Per ulteriori informazioni sulla configurazione e l'utilizzo del proxy locale, consulta [Come utilizzare il proxy locale](how-use-local-proxy.md).
**Nota**  
Sul dispositivo di origine, se non si utilizzano file di configurazione o non si specifica la mappatura delle porte utilizzando l'interfaccia a riga di comando, è comunque possibile utilizzare lo stesso comando per eseguire il proxy locale. Il proxy locale raccoglierà le porte disponibili per utilizzare e gestire le mappature al tuo posto.

------
#### [ Start local proxy using configuration files ]

   Esegui i seguenti comandi per eseguire il proxy locale nelle modalità di origine e destinazione utilizzando i file di configurazione.

   ```
   // ----------------- Start the destination local proxy -----------------------
   ./localproxy -r us-east-1 -m dst -t destination_client_access_token
   
   // ----------------- Start the source local proxy ----------------------------
   // You also run the same command below if you want the local proxy to
   // choose the mappings for you instead of using configuration files.
   ./localproxy -r us-east-1 -m src -t source_client_access_token
   ```

------
#### [ Start local proxy using CLI port mapping ]

   Esegui i seguenti comandi per eseguire il proxy locale nelle modalità di origine e destinazione specificando esplicitamente le mappature delle porte utilizzando l'interfaccia a riga di comando.

   ```
   // ----------------- Start the destination local proxy -----------------------------------
   ./localproxy -r us-east-1 -d HTTP1=80,SSH1=22 -t destination_client_access_token
   
   // ----------------- Start the source local proxy ----------------------------------------
   ./localproxy -r us-east-1 -s HTTP1=5555,SSH1=33 -t source_client_access_token
   ```

------

I dati delle applicazioni dalla connessione SSH e HTTP possono ora essere trasferiti contemporaneamente attraverso il tunnel multiplex. Come si può vedere dalla mappa sottostante, l'identificatore del servizio funge da formato leggibile per tradurre la mappatura delle porte tra il dispositivo di origine e quello di destinazione. Con questa configurazione, il tunneling sicuro inoltra tutto il traffico HTTP in entrata dalla porta *5555* del dispositivo di origine alla porta del dispositivo di destinazione e tutto il traffico SSH in entrata da una porta *3333* all'altra *80* sul dispositivo di destinazione. *22*

![\[Un processo di traduzione per mappare gli identificatori di servizio dai proxy locali di origine e destinazione alle mappature delle porte tradotte dopo l'elaborazione.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/multiplexing-post-mapping-translation.png)
