MPP home

Streaming video through proxy and firewall

Last update: February 1999.

One important issue when watching streaming video regards the use of a proxy or a firewall for accessing the Internet on the player side.

Almost all available products allow now the HTTP mode through any proxy and/or firewall, but this means a loss of performance compared to the TCP/IP direct connnection, and the faster UDP one.

When you are using a firewall without proxy functions, you can open a specific port for allowing the streaming video to come in. But if the internal network has no valid IP numbers (e.g. it's an Intranet with a 10.x.x.x numbering scheme) you will not always be able to do it and you'll be compelled to use the HTTP only delivery. According to the specific player/server you'll find different instructions in the FAQ or in the technical issues, to address this problem. Go to the Get the software page to find the proper links.

Here you find a more technical description in Italian.

Packet Filtering Firewall - Short technical Guide

Un firewall è un host destinato alla protezione di una rete interna disaccoppiandola da Internet. Esistono varie configurazioni di firewall, tra le quali si vuole analizzare quella detta packet filtering firewall (in seguito pff). Un pff si configura come un host su cui è presente un software di filtro dei pacchetti in base alle regole stabilite dall'amministratore del sistema. Ogni regola è composta da: politica, indirizzo IP del mittente e del destinatario, numeri di porta da cui provengono e a cui dono diretti i pacchetti, protocollo utilizzato nel pacchetto.

La politica rappresenta il tipo di azione da intraprendere su un pacchetto che presenti le caratteristiche descritte nella regola. Tra le varie politiche si trovano: accept, ossia il processamento del pacchetto; deny, ossia l'abbandono del pacchetto; masquerading (o mascheramento), ossia la sostituzione dell'indirizzo del mittente con quello del firewall. L'indirizzo IP di un host è un codice di quattro byte che identifica univocamente la macchina in Internet. I numeri di porta sono gli identificativi di un processo in esecuzione su un host. TCP, UDP, ICMP sono alcuni protocolli utilizzati per la comunicazione (al livello di trasporto dello stack ISO/OSI) in reti Internet/Intranet. TCP è un protocollo connesso, ossia per ogni pacchetto esiste un acknowledgment di ricezione e inoltre ogni pacchetto TCP è legato ai precedenti e ai successivi da un numero che lo identifica in una sequenza: se un host non riceve un pacchetto, o lo riceve corrotto, ne richiede una copia. UDP è un protocollo non connesso: mancano i concetti di acknowledgment e di identificazione nella sequenza. ICMP è un protocollo utilizzato per task di controllo.

Quando gli indirizzi delle macchine nella rete locale non sono veri indirizzi Internet (tipicamente gli indirizzi IP che abbiano il primo byte pari a 10), è necessario utilizzare la politica di masquerading per poter inviare dei pacchetti in Internet. La politica di masquerading funziona come segue:

  1. quando si riceve un pacchetto dalla rete interna che si conforme ad una regola di mascheramento, si cambia l'indirizzo del mittente con quello del firewall;
  2. si inoltra il pacchetto all'host destinatario;
  3. quando si riceve una risposta si sostituisce all'indirizzo del destinatario (che in questo caso è il firewall) quello dell'host della rete interna che ha instaurato la connessione;
  4. si inoltra in pacchetto nella rete interna.

Streaming attraverso un packet filtering masquerading firewall

Per lo streaming audio/video è preferibile usare il protocollo UDP (per le sue caratteristiche di non connessione) per vari motivi:

Ogni prodotto usa una o più porte per la comunicazione, quindi bisogna conoscerne le caratteristiche tecniche per poter definire nel firewall le regole necessarie al passaggio dei pacchetti. Ad esempio Real Audio & Video usa la porta 7070 con protocolli TCP e UDP, quindi nel firewall bisognerà definire due regole del tipo:

accept UDP from intranet to anyhost port 7070
accept TCP from intranet to anyhost port 7070

Nel caso di un masquerading firewall al posto di accept ci sarà masquerade.

Spesso lo streaming comporta l'instaurazione di due connessioni: la prima, uscente, instaurata dal client e l'altra, entrante, iniziata dal server. Se la rete interna ha indirizzi Internet validi, e il firewall non maschera gli indirizzi interni, non sorgono particolari problemi perché basta definire regole adatte a permettere il traffico richiesto. Nascono problemi quando la rete interna ha indirizzi fittizi e quindi necessita di un masquerading firewall: per la connessione uscente continuano a non esserci problemi (a patto di definire regole di mascheramento adatte), ma ogni pacchetto di quella entrante porterà come indirizzo del destinatario quello del firewall, il quale non sa come demascherarlo perché non è un pacchetto di risposta ad una connessione iniziata dall'interno.

Torna all'inizio

Autore: Pierluca De Maria