Flussi multipli dei dati multiplex in un tunnel sicuro - AWS IoT Core

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

È 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 flussi multipli HTTP e di dati. SSH I dati delle applicazioni da entrambi gli stream vengono inviati contemporaneamente al dispositivo attraverso il tunnel multiplex.

Esempio di caso d'uso

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 entrambi HTTP 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.

Come impostare un tunnel multiplex

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. Configurerai un tunnel con due flussi multiplex: uno stream e uno HTTP stream. 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. Puoi saltare questo passaggio se preferisci specificare la mappatura delle porte in modo esplicito utilizzando o se non è necessario avviare il CLI proxy locale su porte di ascolto designate. Per ulteriori informazioni su come utilizzare i file di configurazione, vedi Opzioni impostate tramite --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
    2. 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
  2. Apertura di un tunnel

    Aprire un tunnel utilizzando l'OpenTunnelAPIoperazione o il open-tunnel CLI comando. Configura la destinazione specificando SSH1 e HTTP1 come servizi e il nome dell' AWS IoT oggetto che corrisponde al tuo dispositivo remoto. Il tuo SSH computer e HTTP le tue applicazioni 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.

    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 }
  3. 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 GitHube 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.

    Nota

    Sul dispositivo di origine, se non utilizzi alcun file di configurazione o non specifichi la mappatura delle porte utilizzando ilCLI, puoi comunque 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. CLI

    // ----------------- 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 dell'applicazione SSH e la HTTP connessione possono ora essere trasferiti contemporaneamente sul 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 qualsiasi traffico in entrata dalla porta HTTP 5555 dal dispositivo di origine alla porta 80 sul dispositivo di destinazione e qualsiasi SSH traffico in entrata dalla porta 3333 al porto 22 sul dispositivo di destinazione.

Un processo di traduzione per mappare gli identificatori dei servizi dai proxy locali di origine e destinazione alle mappature delle porte tradotte dopo l'elaborazione.