GateKeepers et GnuGK
Transcription
GateKeepers et GnuGK
CiRen 38 – Visio-Réunion, 23-25 Juin 2008 GateKeepers et GnuGK [email protected] 1 Au programme • Généralités sur la visioconférence H.323 • Principe p de fonctionnement d’un appel pp H.323 – Appel sans GateKeeper – Appel avec GateKeeper (intra-zone) – Appel avec GateKeeper (inter-zone) • Sécurité Sé ité d des réseaux é ett fl flux à autoriser t i (avec ( ou sans GK) • GnuGK 2 Au programme • Généralités sur la visioconférence H.323 • Principe p de fonctionnement d’un appel pp H.323 – Appel sans GateKeeper – Appel avec GateKeeper (intra-zone) – Appel avec GateKeeper (inter-zone) • Sécurité Sé ité d des réseaux é ett fl flux à autoriser t i (avec ( ou sans GK) • GnuGK 3 Ce qu’est la visioconférence et pourquoi l’utiliser ? • La visioconférence, c’est comme la téléphonie avec la vidéo en plus • Une meilleure définition : Une visioconférence est une réunion virtuelle d’au moins 2 participants (personne seule ou groupe de personnes) situés à différents endroits qui communiquent en temps réel par des liens audio/vidéo bidirectionnels. Le son,, la vidéo et le texte peuvent p être partagés p g entrent les participants. p p • Avantages : – Économies en déplacement, p en temps p et en coût de télécommunication. • Applications : – – – – – Travail collaboratif et réunion de g groupe p de travail à distance Éducation : les conférenciers présentent leurs exposés sans se déplacer Expérience interculturelle entre étudiants utilisant une technologie moderne Soutenances de thèse à distance … 4 La norme H.323 • Plusieurs protocoles sont disponibles pour la visioconférence : – – – – • H.323 H 323 (sur IP) – le plus utilisé H.320 (sur RNIS) – surtout recommandé en tant qu’option de secours SIP (sur IP) – davantage utilisé pour la téléphonie sur IP Access Grid (sur IP multicast) – applications à bande passante élevée Ce dont nous traitons ici : H.323 – La recommandation H H.323 323 (ITU-T (ITU T, v.1 v 1 en 1996 1996, v.6 v 6 en 2006) décrit les composants et les services requis pour une communication multimédia à travers un réseau IP – Elle fournit un protocole commun pour que les outils puissent fonctionner ensemble – Elle traite de plusieurs informations : • • • • • • • • G.7xx /RTP : audio H.26x /RTP : vidéo (RTP,RTCP) /UDP: transport et contrôle des données audio et vidéo (IETF) T.12x /TCP : partage d’application d application H.225-RAS /UDP : signalisation d’enregistrement H.225-Q.931 /TCP : signalisation d’appel H.245 /TCP : contrôle d’appel et bien d’autres : H H.450 450 (services téléphoniques tels que le transfert d’appel d’appel, la mise en attente) attente), H.235 (sécurité telle que l’authentification, le contrôle d’intégrité, le chiffrement), H.239 (double flux), H.243 et H.231 (multipoint), H.281 (pilotage des caméras à distance), H.350 (extension LDAP), H.460 (NAT/Firewall Traversal), … 5 Les canaux d’échange H.323 • Le canal de signalisation est utilisé pour envoyer des messages de demande de mise en relation avec une autre personne. Ces messages indiquent que la ligne est occupée, que le télé h téléphone sonne, … Le L canall estt aussii utilisé tili é pour envoyer des d message quii signalent i l t que tel téléphone est connecté au réseau et peut être joint de telle manière. – La signalisation s’appuie sur le protocole H.225 : • H.225-RAS (Registration Admission Status) pour la signalisation d’enregistrement • H.225-Q.931 pour la signalisation d’appel • Le canal de contrôle d’appel est utilisé pour envoyer des messages de négociation pour se mettre d d’accord accord sur la façon de communiquer et de coder les informations qu qu’on on va s’échanger. – Le contrôle d’appel s’appuie sur le protocole H.245 • Les canaux de transport des données sont utilisés pour transporter ll’audio audio, la vidéo et les données du partage d’application. – Le transport audio et vidéo s’appuie sur le protocole RTP (Real-time Transport Protocol) – Le transport des données du partage d’application s’appuie sur le protocole T.120 • Les canaux de contrôle du transport des données audio et vidéo sont utilisés pour échanger des messages qui permettent de s’assurer que les données audio et vidéo sont bien échangées. Ces messages sont nécessaires pour contrôler l’arrivée des paquets à d ti ti parce que RTP fonctionne destination f ti sur UDP (protocole ( t l de d transport t t non fiable). fi bl ) – Le contrôle du transport audio et vidéo s’appuie sur le protocole RTCP (Real Time Transport Control Protocol) 6 Les composantes d’une zone H.323 Zone H.323 FW RNIS GW EP EP EP MCU GK EP EP Une zone H.323 est constituée de : – – – – – Terminaux (EP / EndPoint) pour entrer en visioconférence Ponts Multipoint (MCU / Multipoint Control Unit) pour gérer le multipoint Passerelles (GW / GateWay) pour se connecter aux réseaux non IP (RNIS) Pare-feu (FW / FireWall) pour sécuriser le réseau Portiers (GK / GateKeeper) pour gérer la zone H.323 7 Le pont multipoint (MCU - Multipoint Control Unit) • Point à point ou multipoint ? – une connexion point à point inclut seulement deux participants, tandis que le multipoint peut connecter beaucoup plus de participants Point à point Multipoint 8 Le portier (GK – GateKeeper) • Logiciel ou matériel, dédié ou intégré dans un MCU ou dans un routeur IP • Point central pour réaliser : – l’enregistrement et la translation d’adresse : il assure la traduction entre les p ((ou les alias)) et les adresses IP en utilisant une table de numéros de téléphone traduction mise à jour lors de l’enregistrement des terminaux – le contrôle des admissions : il autorise les terminaux à appeler et à être appelés – la gestion de la bande passante : il régule la bande passante totale des conférences – la l gestion ti de d la l zone : il assure ces ffonctions ti pour lles tterminaux, i lles ponts t ett lles passerelles qui se sont enregistrés – et bien d’autres services : l’authentification, l’interface avec les systèmes de pour la gestion g des coûts,, la mise en place p de l’annuaire des facturation p utilisateurs, la gestion des appels (transfert d’appel, mise en attente, redirection), la fonction de Proxy, le support du NAT, le routage d’appel (entre GK), … • Le GK reste optionnel mais sans lui : – les correspondants ne sont joignables que par leur adresse IP – les terminaux doivent être en adressage publique (pas de NAT) – les appels pp ne sont p pas contrôlables – des difficultés pour traverser les Firewalls peuvent persister 9 Au programme • Généralités sur la visioconférence H.323 • Principe p de fonctionnement d’un appel pp H.323 – Appel sans GateKeeper – Appel avec GateKeeper (intra-zone) – Appel avec GateKeeper (inter-zone) • Sécurité Sé ité d des réseaux é ett fl flux à autoriser t i (avec ( ou sans GK) • GnuGK 10 Principe de fonctionnement (appel sans GK) • 4 phases : 1. Établissement de l’appel (déclenchement et initialisation) • H.225-Q.931 H 225 Q 931 (port TCP 1720) : ouverture du canal de signalisation 2. Préparation à la conversation (échange des capacités et établissement de la communication audiovisuelle) • H.245 (port TCP > 1024) : ouverture du canal de contrôle d’appel 3. Conversation (transport et contrôle des données) • RTP (ports UDP > 1024) : ouverture des canaux de transport de l’audio/vidéo • RTCP (ports UDP > 1024) : ouverture des canaux de contrôle de l’audio/vidéo 4. Terminaison de la communication • H.245 ((port TCP > 1024)) : fermeture des canaux de transport/contrôle des données et du canal de contrôle d’appel H.245 • H.225-Q.931 (port TCP 1720) : fermeture du canal de signalisation 11 Appel sans GK EPappelant EPappelé SETUP Canal de signalisation H.225-Q.931 ((TCP p port 1720)) CALL PROCEEDING ALERTING + CONNECT TERMINAL CAPABILITY SET + ACK Canal de contrôle d’appel H 245 H.245 (TCP port dynamique) Canaux des données RTP/RTCP (UDP ports dynamiques) Canal de contrôle d’appel H.245 (TCP port dynamique) Canal de signalisation H.225-Q.931 (TCP port 1720) MASTER SLAVE DETERMINATION + ACK OPEN LOGICAL CHANNEL + ACK Flux de données audio + vidéo (RTP) Flux de contrôle des données audio + vidéo (RTCP) END SESSION COMMAND RELEASE COMPLETE 1. Établissement de l’appel - déclenchement de l’appel - négociation d’un port TCP temporaire pour H.245 - sonnerie chez l’appelé, tonalité chez l’appelant - connexion 2. Préparation de la conversation - échange des capacités des EP: débit format et options des codecs sont échangés débit, - détermination du maître et de l’esclave - ouverture des canaux de données : @RTP/@RTCP (ports UDP) sont échangés 3. Conversation - transfert et contrôle temps réel des media sur des canaux unidirectionnels : deux ports UDP sont utilisés (RTP+RTCP) par média 4. Fin de la communication - fermeture des canaux de données - fermeture du canal de contrôle d’appel - fermeture du canal de signalisation 12 Appel sans GK • Capture d’un appel avec Wireshark Appel entre deux Ekiga Trace et analyse avec Wireshark Menu Statistics / VoIP Calls 13 Principe de fonctionnement (appel sans GK) • 4 phases : 1. Établissement de l’appel (déclenchement et initialisation) • H.225-Q.931 H 225 Q 931 (port TCP 1720) : ouverture du canal de signalisation 2. Préparation à la conversation (échange des capacités et établissement de la communication audiovisuelle) • H.245 (port TCP > 1024) : ouverture du canal de contrôle d’appel 3. Conversation (transport et contrôle des données) • RTP (ports UDP > 1024) : ouverture des canaux de transport de l’audio/vidéo • RTCP (ports UDP > 1024) : ouverture des canaux de contrôle de l’audio/vidéo 4. Terminaison de la communication • H.245 ((port TCP > 1024)) : fermeture des canaux de transport/contrôle des données et du canal de contrôle d’appel H.245 • H.225-Q.931 (port TCP 1720) : fermeture du canal de signalisation 14 Appel sans GK • Phase 1 : déclenchement et initialisation de l’appel EPappelant EPappelé (TCP >1024) (TCP=1720) SETUP déclenchement de l’appel CALL PROCEEDING traitement d’appel en cours ALERTING sonnerie Canal de signalisation H.225 – Q.931 (TCP port 1720) CONNECT connexion (@H245=30004) – L’appelant commence par envoyer à l’appelé un message Setup • C Ce message estt envoyé éàd destination ti ti d du portt TCP 1720 d de l’l’appelant l t • Ce message contient l’adresse de destination (@IP,port TCP>1024) que l’appelé devra utiliser pour envoyer les messages de signalisation d’appel H.225-Q.931 – L’appelé L appelé accuse réception du message par un Call Proceeding puis envoie un message Alerting. L’émission de ce message fait sonner le terminal de l’appelé et à la réception le terminal de l’appelant donne la tonalité d’appel. – L’appelé pp décroche son terminal,, un message g Connect est envoyé y • Ce message contient l’adresse de destination (@IP,port TCP>1024) que l’appelant devra utiliser pour établir le canal de contrôle d’appel H.245 (phase 2) 15 Appel sans GK • Capture d’un paquet H.225-Q.931 SETUP 16 Appel sans GK • Capture d’un paquet H.225-Q.931 CALL PROCEEDING 17 Appel sans GK • Capture d’un paquet H.225-Q.931 ALERTING 18 Appel sans GK • Capture d’un paquet H.225-Q.931 CONNECT 19 Principe de fonctionnement (appel sans GK) • 4 phases : 1. Établissement de l’appel (déclenchement et initialisation) • H.225-Q.931 H 225 Q 931 (port TCP 1720) : ouverture du canal de signalisation 2. Préparation à la conversation (échange des capacités et établissement de la communication audiovisuelle) • H.245 (port TCP > 1024) : ouverture du canal de contrôle d’appel 3. Conversation (transport et contrôle des données) • RTP (ports UDP > 1024) : ouverture des canaux de transport de l’audio/vidéo • RTCP (ports UDP > 1024) : ouverture des canaux de contrôle de l’audio/vidéo 4. Terminaison de la communication • H.245 ((port TCP > 1024)) : fermeture des canaux de transport/contrôle des données et du canal de contrôle d’appel H.245 • H.225-Q.931 (port TCP 1720) : fermeture du canal de signalisation 20 Appel sans GK • Phase 2 : préparation à la conversation – échange des capacités EPappelant EPappelé (TCP >1024) (TCP>1024) TERMINAL CAPABILITY SET TERMINAL CAPABILITY SET ACK TERMINAL CAPABILITY SET TCP 30004 Canal de contrôle d’appel H.245 (port TCP négocié > 1024) TERMINAL CAPABILITY SET ACK – Le canal de contrôle d’appel est ouvert • La connexion TCP est initiée par l’appelant l appelant en utilisant l’adresse l adresse contenue dans le message Connect (phase 1) – Les terminaux s’échangent leurs performances pour la communication • Chaque terminal envoie un message Terminal Capability Set qui contient les capacités de multiplexage de flux et la table de capacités : possibilité d’échange et de compression audio ou vidéo, types de codage audio et vidéo acceptés, paramètres de données T.120, … • Chaque terminal accuse réception de ce message par un Terminal Capability Set Ack À ce moment précis, les deux terminaux ont pleine conscience des capacités de leur correspondant 21 Appel sans GK • Phase 2 : préparation à la conversation – détermination du maître et de l’esclave l esclave EPappelant EPappelé (TCP >1024) (TCP>1024) MASTER SLAVE DETERMINATION MASTER SLAVE DETERMINATION ACK MASTER SLAVE DETERMINATION TCP 30004 Canal de contrôle d’appel H.245 (port TCP négocié > 1024) MASTER SLAVE DETERMINATION ACK – Les terminaux doivent décider qui sera le maître dans la conversation (cet arbitrage permet d’éviter certains conflits tels que l’ouverture l’un vers l’autre et simultanément d’un canal bidirectionnel) • Chaque terminal envoie un message Master Slave Determination qui contient un nombre généré aléatoirement aléatoirement. • Chaque terminal accuse réception de ce message par un Master Slave Determination Ack • Le terminal ayant le nombre le plus élevé devient le maître À ce moment précis, les deux terminaux ne sont plus vus comme deux entités équivalentes 22 Appel sans GK • Phase 2 : préparation à la conversation – établissement ét bli t de d la l communication i ti audiovisuelle di i ll EPappelant EPappelé (TCP >1024) (TCP>1024) OPEN LOGICAL CHANNEL TCP 30004 @RTCPaudio,video=5013,5015 OPEN LOGICAL CHANNEL ACK @RTPaudio,video=5016,5018 / @RTCPaudio,video=5017,5019 OPEN LOGICAL CHANNEL @RTCPaudio,video @ , audio video=5017,5019 Canal de contrôle d’appel H.245 (port TCP négocié > 1024) OPEN LOGICAL CHANNEL ACK @RTPaudio,video=5012,5014 / @RTCPaudio,video=5013,5015 – Les terminaux ouvrent les canaux de communication audio et vidéo • Chaque terminal envoie un message Open Logical Channel – ce message contient l’adresse (port UDP>1024) désirée pour la réception des rapports pp RTCP p pour le contrôle de l’audio et de la vidéo • Chaque terminal accuse réception du message par un Open Logical Channel Ack – ce message contient les adresses (ports UDP>1024) désirées pour la réception des données RTP ((audio et vidéo)) et pour p la réception p des rapports pp RTCP À ce moment précis, les deux terminaux sont prêts à dialoguer 23 Appel sans GK • Capture d’un paquet H.245 TERMINAL CAPABILITY SET 24 Appel sans GK • Capture d’un paquet H.245 MASTER SLAVE DETERMINATION 25 Appel sans GK • Capture d’un paquet H.245 OPEN LOGICAL CHANNEL ACK 26 Principe de fonctionnement (appel sans GK) • 4 phases : 1. Établissement de l’appel (déclenchement et initialisation) • H.225-Q.931 H 225 Q 931 (port TCP 1720) : ouverture du canal de signalisation 2. Préparation à la conversation (échange des capacités et établissement de la communication audiovisuelle) • H.245 (port TCP > 1024) : ouverture du canal de contrôle d’appel 3. Conversation (transport et contrôle des données) • RTP (ports UDP > 1024) : ouverture des canaux de transport de l’audio/vidéo • RTCP (ports UDP > 1024) : ouverture des canaux de contrôle de l’audio/vidéo 4. Terminaison de la communication • H.245 ((port TCP > 1024)) : fermeture des canaux de transport/contrôle des données et du canal de contrôle d’appel H.245 • H.225-Q.931 (port TCP 1720) : fermeture du canal de signalisation 27 Appel sans GK • Phase 3 : conversation (transport et contrôle des données) EPappelant EPappelé (UDP >1024) (UDP>1024) Flux RTP audio UDP 5016 UDP 5012 Flux RTCP audio UDP 5017 UDP 5013 UDP 5014 UDP 5015 Flux RTP vidéo Flux RTCP vidéo UDP 5018 Canaux de données RTP/RTCP (ports UDP négociés > 1024) UDP 5019 – Les paquets sont échangés dans les canaux établis précédemment • Un canal RTP et un canal RTCP par média (audio et vidéo) – RTP (Realtime Transport Protocole) pour l’acheminement des données audio/vidéo – RTCP (Realtime Transport Control Protocole) pour échanger des messages de contrôle des données audio/vidéo – deux numéros de ports UDP voisins : RTP port pair, RTCP port pair + 1 • Les p paquets q RTCP ((Sender Report) p ) émis p par le récepteur p de p paquets q RTP donnent une idée sur la qualité de transmission. Ces paquets contiennent les statistiques sur la transmission de l’émetteur des données audio/vidéo : taux de pertes, délais de transmission, RTT (temps aller-retour), gigue (variance des délais de transit) 28 Appel sans GK • Capture d’un paquet RTP format du paquet vidéo transporté numéro de séquence du paquet vidéo transporté identifiant de la source de synchronisation (nombre tiré aléatoirement) paquet vidéo transporté 29 Appel sans GK • Capture d’un paquet RTCP 30 Principe de fonctionnement (appel sans GK) • 4 phases : 1. Établissement de l’appel (déclenchement et initialisation) • H.225-Q.931 H 225 Q 931 (port TCP 1720) : ouverture du canal de signalisation 2. Préparation à la conversation (échange des capacités et établissement de la communication audiovisuelle) • H.245 (port TCP > 1024) : ouverture du canal de contrôle d’appel 3. Conversation (transport et contrôle des données) • RTP (ports UDP > 1024) : ouverture des canaux de transport de l’audio/vidéo • RTCP (ports UDP > 1024) : ouverture des canaux de contrôle de l’audio/vidéo 4. Terminaison de la communication • H.245 ((port TCP > 1024)) : fermeture des canaux de transport/contrôle des données et du canal de contrôle d’appel H.245 • H.225-Q.931 (port TCP 1720) : fermeture du canal de signalisation 31 Appel sans GK • Phase 4 : fin de la communication EPappelant EPappelé (TCP >1024) (TCP>1024) END SESSION COMMAND commande de fin de session RELEASE COMPLETE arrêt complet TCP 30004 Canal de contrôle d’appel H.245 (port TCP négocié > 1024) Canal de signalisation H.225-Q.931 (port TCP 1720)) (p – Celui q qui raccroche libère la connexion : il ferme les canaux de communication,, il envoie un message de fermeture de session End Session Command et il attend le même message de la part du correspondant avant de fermer le canal de contrôle • Des messages Close Logical Channel + ACK peuvent aussi être échangés pour fermer les canaux de données – Vient ensuite la fermeture du canal de signalisation par l’envoi réciproque d’un message Release Complete sur ce canal À ce moment précis, la communication est terminée 32 Appel sans GK • Capture d’un paquet H.245 END SESSION COMMAND 33 Appel sans GK • Capture d’un paquet H.225-Q.931 RELEASE COMPLETE 34 Appel sans GK • Améliorations de la norme et nouvelles fonctionnalités (H.323 v.2) – La procédure H.245 Tunneling • Un seul canal est utilisé au lieu des deux canaux (H.225-Q.931 et H.245) – tous les messages de contrôle H.245 sont encapsulés dans des messages H.225-Q.931 (ils utilisent la même connexion TCP initiée sur le port 1720) • Avantage : il n’y a plus de port TCP ouvert dynamiquement (à l’exception du port TCP Established H.225-Q.931 chez l’appelant) – La procédure Early H H.245 245 • Ouverture du canal de contrôle H.245 dès que possible et parallèlement à la signalisation d’appel (l’adresse de connexion TCP H.245 est fournie par l ’appelant dans le message SETUP et/ou par l’appelé dans le message CallProceeding et/ou Alerting) – la négociation des paramètres est anticipée – l’ouverture des canaux RTP se fait sans attendre le message Connect • Conséquence : l’appel est plus rapidement établi • Optimisation souvent disponible en complément de la procédure FastStart – La procédure FastStart • Nouvelle procédure d’établissement d’appel où les informations du canal de contrôle sont incluses dans l’invitation d’appel (SETUP) – ouverture du canal H.245 simplifié ou rendue optionnel : l’établissement de l’appel peut se f i en seulement faire l t 2 messages ! • Conséquence : l’appel est plus rapidement établi (quelques sec. contre 15-30 sec. en H.323 v.1) • Inconvénient : cette méthode ne permet pas la transmission d’informations DTMF (contrôle d’appel par des tiers) 35 Appel sans GK • La procédure FastStart EPappelant EPappelé (TCP >1024) (TCP=1720) SETUP (FastStart [Logical Channel Info]) déclenchement de l’appel CALL PROCEEDING traitement d’appel en cours ALERTING Canal de signalisation H.225 (port TCP 1720) sonnerie RTP audio et vidéo CONNECT (FastStart [Logical Channel Info]) connexion RTP/RTCP audio et vidéo Canaux de données RTP/RTCP (ports UDP négociés > 1024) – Les informations nécessaires pour commencer à ouvrir les canaux RTP sont g ((SETUP)) contenues dans le 1er message – L’appelant commence à recevoir le flux de données audio et vidéo avant même de recevoir le message qui indique que l’appelé a décroché (CONNECT) ! 36 Appel sans GK • Attention, tous les terminaux ne supportent pas ces nouvelles procédures – Il faut parfois désactiver ces fonctionnalités pour rendre compatible les terminaux entre eux Ekiga supporte les nouvelles fonctionnalités H.323 (Tunneling H.245,, Earlyy H.245,, FastStart) S ) mais ce n’est pas le cas du logiciel Polycom PVX 37 Au programme • Généralités sur la visioconférence H.323 • Principe p de fonctionnement d’un appel pp H.323 – Appel sans GateKeeper – Appel avec GateKeeper (intra-zone) – Appel avec GateKeeper (inter-zone) • Sécurité Sé ité d des réseaux é ett fl flux à autoriser t i (avec ( ou sans GK) • GnuGK 38 Principe de fonctionnement (appel avec GK) • 5 phases : 1. Découverte du GK, enregistrement des EP, autorisation d’appel • H.225-RAS (port UDP 1718 et 1719) : ouverture du canal RAS 2. Établissement de l’appel (déclenchement et initialisation) • H.225-Q.931 (port TCP 1720) : ouverture du canal de signalisation 3. Préparation à la conversation (échange des capacités et établissement de la communication audiovisuelle) • H.245 (port TCP > 1024) : ouverture du canal de contrôle d’appel 4. Conversation (transport et contrôle des données) • RTP (ports UDP > 1024) : ouverture des canaux de transport de l’audio/vidéo • RTCP (ports UDP > 1024) : ouverture des canaux de contrôle de l’audio/vidéo l audio/vidéo 5. Terminaison de la communication • H.245 (port TCP > 1024) : fermeture des canaux de transport/contrôle des données et fermeture du canal de contrôle d’appel H H.245 245 • H.225-Q.931 (port TCP 1720) : fermeture du canal de signalisation • H.225-RAS (port UDP 1718 et 1719) : enregistrement résilié, fermeture du canal RAS 39 RAS (Registration, Admission, Status) et la translation d’adresse • les EP s’enregistrent auprès de leur GK (ou du GK qu’il découvre automatiquement) avec un n°E.164 et/ou un nom d’alias H.323 unique n°E.164 : 0144271101 nom alias H.323 : Paul n°E.164 : 0144271102 nom alias H.323 : Jean EP (IP1) EP (IP2) • le GK connaît l’état de connexion des EP et se charge d’autoriser les EP à effectuer les appels. • les appels entre EP se font avec les n°E.164 et/ou les noms d’alias H.323 enregistrés sur le GK (cela n’empêche n empêche pas l’appel l appel avec l’adresse l adresse IP) • le GK s’occupe de localiser les EP et de faire la con ersion n°E conversion n°E.164 164 ↔ adresse IP et nom d’alias H.323 ↔ adresse IP • Le GK autorise l’appel et communique à l’appelant l’adresse IP du correspondant nécessaire pour un appel direct entre EP Canaux RAS ports UDP 1718-1719 GK Enregistrement des terminaux Table de correspondance : ((0144271101,, Paul)) ↔ IP1 (0144271102, Jean) ↔ IP2 RAS : Registration, Admission, Status 1. découverte du GK 2. enregistrement et localisation du terminal : n°E.164, alias H.323, adresse IP, … 3. contrôle d’appel et état de la connexion 40 Les messages RAS • RAS (Registration, Admission, Status) est utilisé par les EP pour envoyer des requêtes equê es (xRQ) ( Q) au GK G qu’il qu accepte accep e ((xCF) C ) ou qu qu’il rejette eje e ((xRJ) J) Fonction découvrir le GK s’enregistrer s enregistrer sur le GK autoriser d’appeler pp modifier la bande passante arrêter de communication résilier l’enregistrement Requête ((xRQ=xRequest) q ) Requête acceptée ((xCF=xConfirm)) Requête rejetée ((xRJ=xReject) j ) GRQ GCF GRJ Gatekeeper Request Gatekeeper Confirm Gatekeeper Reject RRQ RCF RRJ Registration Request Registration Confirm Regitration Reject ARQ ACF ARJ Ad i i R Admission Requestt Ad i i C Admission Confirm fi Ad i i R Admission Reject j t BCQ BCF BRJ Bandwidth Request Bandwidth Confirm Bandwidth Reject DRQ DCF DRJ Disengage Request Disengage Confirm Disengage Reject URQ UCF URJ Unregistration Request Unregistration Confirm Unregistration Reject 41 Les messages RAS • D’autres messages RAS peuvent être envoyés par l’EP (ou le GK) : – – – – – – – – – – – – – Location Request Location Confirm Location Reject Info Request I f Request Info R Response R Info Request Ack Info Request q Nak Unknown Message Response Non Standard Message R Request t in i P Progress Ressources Available Indicate Ressources Avalable Confirm … 42 Principe de fonctionnement (appel avec GK) • 5 phases : 1. Découverte du GK, enregistrement des EP, autorisation d’appel • H.225-RAS (port UDP 1718 et 1719) : ouverture du canal RAS 2. Établissement de l’appel (déclenchement et initialisation) • H.225-Q.931 (port TCP 1720) : ouverture du canal de signalisation 3. Préparation à la conversation (échange des capacités et établissement de la communication audiovisuelle) • H.245 (port TCP > 1024) : ouverture du canal de contrôle d’appel 4. Conversation (transport et contrôle des données) • RTP (ports UDP > 1024) : ouverture des canaux de transport de l’audio/vidéo • RTCP (ports UDP > 1024) : ouverture des canaux de contrôle de l’audio/vidéo l audio/vidéo 5. Terminaison de la communication • H.245 (port TCP > 1024) : fermeture des canaux de transport/contrôle des données et fermeture du canal de contrôle d’appel H H.245 245 • H.225-Q.931 (port TCP 1720) : fermeture du canal de signalisation • H.225-RAS (port UDP 1718 et 1719) : enregistrement résilié, fermeture du canal RAS 43 Appel avec GK • Phase 1 – étape 1 (facultative) : découverte automatique du GK – L’EP envoie une requête GRQ sur le port UDP 1718 du groupe multicast pour le canal RAS (224.0.1.41). Cette requête comprend : • l’adresse et le port RAS utilisés par l’EP (sur lesquels doivent parvenir les réponses) • le type de terminal – Un ou plusieurs GK répondent par un message GCF vers le port RAS spécifié par l’EP. Ce message comprend : • le nom du GK • l’adresse et le port RAS utilisés par le GK (en général le port UDP 1719) – L’EP choisit son GK et lance le processus d’enregistrement auprès de lui (étape 2) – Remarque q : L’EP p peut aussi choisir un GK p particulier • dans ce cas, l’étape 1 n’existe pas et l’adresse (avec le port RAS) du GK désiré est déclarée dans la configuration de l’EP Déclaration du GK dans les paramètres du logiciel Ekiga et PVX 44 Appel avec GK Capture d’une requête GRQ Capture des réponses GCF 45 Appel avec GK • Phase 1 – étape 2 : processus d’enregistrement EP GK EP GK RRQ RRQ RCF RRJ Le GK accepte la requête d’enregistrement de l’EP L’EP est enregistré Le GK rejette la requête d’admission de l’EP L’EP n’est pas enregistré – L’EP L EP envoie une requête d’enregistrement d enregistrement (RRQ) vers le port RAS du GK choisi (le port UDP 1719). Cette requête comprend : • l’adresse et le port H.225-Q.931 utilisés par l’EP pour la signalisation d’appel (le port TCP 1720) • l’adresse et le port H.225-RAS utilisés par l’EP (sur lesquels doivent parvenir les réponses RAS) • ll’alias alias et le n°E164 n E164 de ll’EP EP Ces informations permettent au GK de mettre à jour ces tables de correspondance – Le GK répond par un message d’acceptation (RCF) ou de rejet (RRJ) vers le port RAS spécifié par l’EP. Cette réponse comprend : • (si RCF) l’adresse l adresse et le port H H.225-Q.931 225-Q 931 utilisés par le GK pour la signalisation d’appel d appel (en général le port TCP 1720) • (si RCF) un numéro d’identification unique au terminal assigné par le GK qu’il utilisera dans chacune des transactions entre lui même et le terminal ( ) de l’enregistrement g • ((si RCF)) la durée de vie (TimeToLive) • (si RRJ) le motif du rejet : n°E.164 invalide ou déjà enregistré avec une autre IP, … – Remarque : le processus de résiliation de l’enregistrement est similaire à celui de l’enregistrement (requête URQ suivie d’un message d’acceptation UCF ou de rejet URJ) 46 Appel avec GK Capture d’une requête RRQ Capture de la réponse RCF 47 Appel avec GK Capture d’une requête RRQ Capture de la réponse RRJ 48 Appel avec GK • Phase 1 – étape 3 : permission d’appeler un correspondant EP GK EP GK ARQ ARQ ACF ARJ Le GK accepte la requête de permission d’appeler Le GK rejette la requête de permission d’appeler – L’EP envoie une requête de permission d’appeler (ARQ) vers le port RAS du GK où il est enregistré i t é (l (le portt UDP 1719) 1719). C Cette tt requête êt comprend d: • • • • • • le type d’appel (point à point ou multipoint) l’identifiant unique de l’appelant (qui a été assigné par le GK dans le message RCF) le n°E.164 ou l’alias du correspondant à appeler l n°E.164 le °E 164 ett l’l’alias li d de lla source un numéro unique qui permettra d’identifier la connexion établie entre l’appelant et l’appelé la bande passante bidirectionnelle en multiples de 100 bit/s que l’EP souhaite disposer Avec ces informations, le GK décide ou non d’accepter l’appel – Le GK répond par un message d’acceptation (ACF) ou de rejet (ARJ) vers le port RAS de l’EP. Cette réponse comprend : • (si ACF) la bande passante maximum allouée pour cet appel • (si ACF) le mode d’appel (appel direct ou routé par le GK) • (si ACF) l’adresse et le port H.225-Q.931 (le port TCP 1720) où envoyer l’invitation d’appel – selon le mode d’appel, c’est l’adresse du GK ou celle du correspondant • (si ACF) la fréquence des messages d’information (IRR) à envoyer au GK • (si ARJ) le motif du refus (correspondant non enregistré, …) 49 Appel avec GK Capture d’une requête ARQ Capture de la réponse ACF 50 Appel avec GK Capture d’une requête ARQ Capture de la réponse ARJ 51 Appel avec GK • Durant un appel d’autres messages RAS peuvent être échangés p g : – IRQ : Info Request Requête du GK à l’EP d’information d information concernant son statut – IRR : Info Request Response Réponse à la requête IRQ ( (peut t être êt aussii envoyé é périodiquement é i di t sans sollicitation du GK) – BRQ : Bandwith Request Requête de l’EP au GK pour changer l’allocation de bande passante. Le GK confirme (BCF) ou rejette (BRJ). La bande passante de l’appel est i iti l initialement t négociée é ié ett ffournie i par lle GK pendant la phase d’initialisation de l’appel mais à tout moment pendant un appel, l’EP ou le GK peut en demander une augmentation ou une diminution Capture d’une requête IRR 52 Appel avec GK • 5 phases : 1. Découverte du GK, enregistrement des EP, autorisation d’appel • H.225-RAS (port UDP 1718 et 1719) : ouverture du canal RAS 2. Établissement de l’appel (déclenchement et initialisation) • H.225-Q.931 (port TCP 1720) : ouverture du canal de signalisation 3. Préparation à la conversation (échange des capacités et établissement de la communication audiovisuelle) • H.245 (port TCP > 1024) : ouverture du canal de contrôle d’appel 4. Conversation (transport et contrôle des données) • RTP (ports UDP > 1024) : ouverture des canaux de transport de l’audio/vidéo • RTCP (ports UDP > 1024) : ouverture des canaux de contrôle de l’audio/vidéo l audio/vidéo 5. Terminaison de la communication • H.245 (port TCP > 1024) : fermeture des canaux de transport/contrôle des données et fermeture du canal de contrôle d’appel H H.245 245 • H.225-Q.931 (port TCP 1720) : fermeture du canal de signalisation • H.225-RAS (port UDP 1718 et 1719) : enregistrement résilié, fermeture du canal RAS 53 Appel avec GK • Pour les phases 2 à 5, on a les mêmes mécanismes qu’en l’absence de GK, mais le GK peut ou non être impliqué dans les échanges. Trois cas sont à envisager : – GKdirect di t : GK en mode Direct • la signalisation d’appel est établie directement entre les EP – le GK ne fait que mettre en communication les EP, l’appel se fait directement entre les EP – GKrouted : GK en mode Routé • la signalisation d’appel (et le contrôle d’appel) passe par l’intermédiaire du GK – le GK route les p paquets q H.225-Q.931 et H.245 entre les EP – seuls les flux de données (RTP/RTCP et T.120) passent directement d’un EP à l’autre – GKproxy : GK en mode Proxy • tout le trafic H.323 (H.225-Q.931, H.245, RTP/RTCP et T.120) transite par le GK – aucune connexion directe n’est établie entre les EP – Remarque : le GK informe l’EP de son mode de fonctionnement dans sa réponse de permission d’appeler (ACF), lors de la phase 1 - étape 3 54 Appel avec GK • Avantages du GK{routed|proxy} : – L Le GK{routed|proxy} garde d lla supervision i i d de lla communication i ti : • il peut intervenir dans la négociation et interdire certains flux audio ou vidéo • il peut sauvegarder les paramètres négociés lors d’un appel (données utiles pour de d la l ffacturation) t ti ) – Le GKproxy avec le support du NAT permet aux terminaux qui sont en adressage privé d’appeler et de pouvoir être appelés depuis les réseaux publics/privés – Le L GKproxy avec une restriction t i ti sur la l gamme d des ports t ouverts t dynamiquement d i t permet une meilleure sécurité et les terminaux peuvent mieux traverser les Firewalls • Inconvénients du GK{routed|proxy} : – Le GK{routed|proxy} est fortement sollicité puisqu’il fait transiter l’ensemble des messages de signalisation – Le GKproxy est encore plus fortement sollicité puisqu’il fait transiter en plus les données sur les canaux RTP/RTCP (au nombre de 4 par appel) – Le mode Proxy n’est n est pas spécifié dans la norme H H.323 323 : • tous les GK n’intègrent pas la fonctionnalité de Proxy 55 Appel avec GK GK en mode Direct EP H.323 H.225 Q.931 H.225-Q.931 H.245 RTP/RTCP EP H.323 GK en mode Routé EP H.323 RTP/RTCP EP H.323 GK en mode Proxy EP H.323 EP H.323 RAS H.225-Q.931 H.245 RAS H.225-Q.931 H.245 RTP/RTCP GKdirect GKrouted GKproxy GK non impliqué dans la signalisation (pas de supervision sur l’appel) GK impliqué dans la signalisation (accounting et contrôle des négociations) RAS GK impliqué dans tous les flux (contrôle total et sécurité) Protocole Usage H.225-RAS Signalisation d’enregistrement : enregistrement et localisation de l’EP, contrôle et état de la connexion H 225 Q 931 H.225-Q.931 Si Signalisation li ti d’appel d’ l : initialisation i iti li ti de d l’appel l’ l H.245 Contrôle d’appel : préparation au dialogue RTP/RTCP Transport des données audio et vidéo : dialogue 56 Appel avec GK GK en mode Routé GK en mode Direct EPappellant ARQ ACF EPappelé GKdirect S CP EPappellant ARQ ACF EPappelé GKrouted S CP GK en mode Proxy EPappellant ARQ ACF S CP ARQ ACF ARQ ACF EPappelé GKproxy S CP S CP ARQ ACF A+ C A+C A+C A+C A+C TCS +ACK TCS +ACK MSD +ACK OLC + ACK TCS +ACK MSD +ACK OLC + ACK TCS +ACK MSD +ACK OLC + ACK TCS +ACK MSD +ACK OLC + ACK RTP + RTCP RTP + RTCP MSD +ACK OLC + ACK RTP + RTCP RTP + RTCP ESC ESC ESC ESC ESC RC RC RC RC RC DRQ DRQ DRQ DRQ DRQ DRQ DCF DCF DCF DCF DCF DCF Messages H.225-RAS Messages H.225-Q.931 ARQ : Admission Request ACF : Admission Confirm DRQ : Disengage Request DCF : Disengage Confirm S : Setup CP : Call Proceeding A+C : Alerting + Connect RC : Release Complete Messages H.245 TCS : Terminal Capability Set MSD : Master Slave Determination OLC : Open Logical Channel ESC : End Session Command Messages H.245 RTP : Real-time Transport Control Protocol RTCP : Real Time Transport Control Protocol 57 Appel avec GK • Quelque soit le mode d’appel du GK : – Avant la communication : • L L’EP EP appelé demande l’autorisation l autorisation de répondre auprès de son GK par une requête RAS ARQ (Admission Request). • Le GK confirme par un message RAS ACF (Admission Confirm) ou refuse par un message RAS ARJ (Admission Reject) Reject), si par exemple la bande passante ne le permet pas. – A Après è lla communication i ti : • Chaque EP informe leur GK de la terminaison d’appel par une requête RAS DRQ (Disengage Request). • Le GK est mis au courant de la libération de la bande passante et répond par un message RAS DCF (Disengage Confirm). • Le GK p peut ainsi allouer la bande p passante libérée à d’autres appels. pp • Cet échange permet aussi au GK de déterminer la durée d’appel (donnée utile pour établir des statistiques et une facturation sur les appels) 58 Appel avec GK en mode… Direct ! EP1 Puis je m’enregistrer? Enregistrement confirmé Puis-je Puis je appeler 2? Oui, je te donne l’@IP de 2 Création de l’appel Appel en cours Sonnerie et appel établi Échange des paramètres : codecs audio, vidéo, … Détermination du maître et de l’esclave Ouverture des canaux de transmission : négociation des ports UDP/RTP-RTCP Communication établie et transport des flux Confirmation fin de session L appel a pris fin L’appel OK (prêt à être rappelé) Me désinscrire du GK OK REGISTRATION REQUEST (RRQ) REGISTRATION CONFIRM (RCF) ADMISSION REQUEST (ARQ) ADMISSION CONFIRM (ACF) GK REGISTRATION REQUEST (RRQ) REGISTRATION CONFIRM (RCF) SETUP CALL PROCEEDING ADMISSION REQUEST (ARQ) ADMISSION CONFIRM (ACF) ALERTING + CONNECT (contient les ports TCP négociés pour H.245) TERMINAL CAPABILITY SET TERMINAL CAPABILITY SET ACK TERMINAL CAPABILITY SET TERMINAL N C CAPABILITY S SET ACK C MASTER SLAVE DETERMINATION MASTER SLAVE DETERMINATION ACK MASTER SLAVE DETERMINATION MASTER SLAVE DETERMINATION ACK OPEN LOGICAL CHANNEL (contient les ports RTCP) OPEN LOGICAL CHANNEL ACK (contient les ports RTP/RTCP) OPEN LOGICAL CHANNEL (contient les ports RTCP) OPEN LOGICAL CHANNEL ACK (contient les ports RTP/RTCP) RTP MEDIA STREAM (audio+vidéo) RTP MEDIA STREAM (audio+vidéo) RTCP MESSAGES (audio+vidéo) RTCP MESSAGES (audio+vidéo) END SESSION COMMAND END SESSION COMMAND RELEASE COMPLETE DISENGAGE REQUEST (DRQ) DISENGAGE REQUEST (DRQ) DISENGAGE CONFIRM (DCF) DISENGAGE CONFIRM (DCF) UNREGISTRATION REQUEST (URQ) UNREGISTRATION REQUEST (URQ) UNREGISTRATION CONFIRM (UCF) UNREGISTRATION CONFIRM (UCF) H.225 (RAS) : Registration, Admission, Status H.245 : contrôle d’appel H.225 (Q.931) : signalisation d’appel RTP/RTCP : transport des données EP2 Puis je m’enregistrer? OK Appel en cours Puis-je répondre à 1? Oui, autorisé Échange des paramètres : codecs audio, vidéo, … Détermination du maître et de l’esclave Ouverture des canaux transmission : négocia des ports UDP/RTP-RT Communication établie et transport p des flux Commande fin de session Fin de communication L’appel L appel a pris fin OK (prêt à être rappelé) Me désinscrire du GK OK 59 Au programme • Généralités sur la visioconférence H.323 • Principe p de fonctionnement d’un appel pp H.323 – Appel sans GateKeeper – Appel avec GateKeeper (intra-zone) – Appel avec GateKeeper (inter-zone) • Sécurité Sé ité d des réseaux é H H.323 323 ett fl flux à autoriser t i • GnuGK 60 Principe de fonctionnement (cas général) • Quatre scénarios d’appel ont été vus : – EP ↔ EP ((communication i ti sans GK) – EP ↔ GKdirect ↔ EP (communication utilisant un GK en mode Direct) – EP ↔ GKrouted ↔ EP (communication utilisant un GK en mode Routé) – EP ↔ GKproxy ↔ EP (communication utilisant un GK en mode Proxy) • Cas général : – EP ↔ GK{direct|routed|proxy} ↔ GK{direct|routed|proxy} ↔ … ↔ EP • Comment les EP se trouvent-ils (q (quand vous composez p un n°E.164)) ? – Si les EP sont enregistrés sur le même GK, le GK recherche l’adresse IP dans une stack locale ou un back-end (BDD, LDAP, etc.) – Si les EP sont enregistrés g sur différents GK, une requête q RAS LRQ ((Location Request) est envoyée aux autres GK connus (c’est comme cela que le GDS fonctionne) 61 Localisation d’un correspondant • Localisation des EP EP1 ARQ ACF GK1 GK2 EP2 LRQ LCF SETUP CALL PROCEEDING ARQ ACF ALERTING + CONNECT – L’appelant initie un échange ARQ/ACF avec son GK – Si le GK ne résout pas l’adresse de l’appelé, il envoie vers le port UDP 1719 du GK voisin un message RAS Location L ti R Requestt (LRQ) pour llocaliser li lle d destinataire. ti t i – Le GK voisin répond avec un Location Confirm (LCF) si il résout l’adresse de l’appelé ou un Location Reject (LRJ) en cas d’échec • le message LCF contient l’adresse à utiliser par l’appelant pour établir le canal de signalisation i li ti d’ d’appell ett envoyer l’i l’invitation it ti d’ d’appell (SETUP) • le message LRJ contient la raison de l’échec (requestDenied, …) – Un message SETUP est envoyé à l’appelant et l’appelant accuse à l’appelé par un Call Proceeding g ((échange g direct entre les EP si les GK sont en mode Direct). ) – L’appelant échange un ARQ/ACF avec son GK pour lui demander l’autorisation de répondre à l’appel. – L’appelant envoie à l’appelé un Alerting+Connect pour établir la connexion (émission 62 directe à l’EP si les GK sont en mode Direct). Localisation d’un correspondant Capture d’une requête LRQ Capture de la réponse LCF 63 Localisation d’un correspondant • Localisation des EP EP1 ARQ GK1 GK2 EP2 LRQ LRJ GK3 LRQ GK4 LRQ LRJ LRQ ACF LCF GK5 LCF SETUP CALL PROCEEDING ALERTING + CONNECT ARQ ACF – les GK en réseau p permettent de localiser de p proche en p proche les destinataires – Il est possible, en fonction du préfixe du numéro appelé, de choisir le(s) GK(s) voisin(s) à contacter, et éviter ici par exemple que GK1 sollicite inutilement GK2 ou que GK3 sollicite GK4 64 Appel inter-zone et réseaux de GK • un GK gère une zone H.323 unique – la zone H.323 est identifiée par un préfixe X – les terminaux s’enregistrent auprès du GK avec un n°E.164 unique de préfixe X – les appels vers cette zone se font avec les n°E n E.164 164 de préfixe X • les GK en réseau gèrent les appels inter-zone H.323 – le GK d’une zone est lié à ses GK voisins – en fonction du préfixe du n°E.164 appelé, il route l’appel vers le bon GK • un appel pp vers un n°E.164 de p préfixe X est routé vers le GK g gérant la zone X • un GK ayant des capacités de réécriture des n° E.164 – permet de s’affranchir s affranchir du préfixe : • les terminaux s’enregistrent avec leur n°E164 court (i.e. sans le préfixe) – permet d’assurer un service de numérotation interne : • les appels intra-zone se font avec les n°E.164 longs ou courts (i.e. avec ou sans le préfixe) 65 Appel inter-zone et réseaux de GK Le n°E.164 appelé est dans ma zone : J’en informe GK1 et l’appel est établi Zone B,, ppréfixe f : 222 Zone C, préfixe : 333 GK3 GK2 222001 GK4 333001 Routage inter-zone inter zone : L’appel en 222xxx est routé vers le GK2 (via LRQ/LCF) GK1 Le n°E.164 L °E 164 appelé lé (222xxx) (222 ) estt h hors d de ma zone : Je transmet l’appel à mon GK voisin (via LRQ/LCF) 111001 appelle 222001 111002 111001 Zone A, préfixe : 111 66 Appel inter-zone et réseaux de GK Le GK2 réécrit le n° appelé 222001 en 001 Zone C, préfixe : 333 GK3 Zone B,, ppréfixe f : 222 GK2 001 GK4 001 GK1 Le GK1 réécrit L éé it le l n°° de d l’appelant 001 en 111001 Les GK ont la capacité de réécrire les n°E.164. Les EP peuvent alors s’enregistrer auprès de leur GK avec leur n° court (i.e. sans le préfixe de zone) 001 appelle 222001 002 001 Zone A, préfixe : 111 67 Appel inter-zone et réseaux de GK Zone B,, ppréfixe f : 222 Zone C, préfixe : 333 GK3 GK2 001 GK4 001 GK1 Le GK1 réécrit L éé it le l n°° de d l’appelé 002 en 111002 001 appelle 002 ou 111002 002 La fonction de réécriture des n°E.164 des GK permet de s’affranchir des préfixes et d’assurer un service de numérotation interne à la zone. Au sein de la même zone, les EP peuvent s’appeler au choix avec leur n n°court court ou leur n n°long long. 001 Zone A, préfixe : 111 68 Le GDS, un réseau d’appel international 69 Au programme • Généralités sur la visioconférence H.323 • Principe p de fonctionnement d’un appel pp H.323 – Appel sans GateKeeper – Appel avec GateKeeper (intra-zone) – Appel avec GateKeeper (inter-zone) • Sécurité Sé ité d des réseaux é ett fl flux à autoriser t i (avec ( ou sans GK) • GnuGK 70 Sécurité des réseaux H.323 • Le problème H.323 pour les Firewalls : – H.323 utilise certains ports fixes : • UDP 1718 et 1719 pour H.225-RAS • TCP 1720 pour H.225-Q.931 – Mais d’autres ports sont négociés DYNAMIQUEMENT durant la phase d’initialisation de l’appel : • la plage de port TCP et UDP 210 à 216 (1024 – 65535) est utilisée • 4 à 8 ports sont négociés et utilisés par appel • cette négociation égoc at o est un u p problème ob è e pou pour ttraverser a e se les es Firewalls e a s Comment ouvrir les ports si vous ne les connaissez pas ? 71 Le problème H.323 pour les Firewalls • Captures d’écran TCPView prises lors d’un appel H.323 Appel avec le PVX 4 ports TCP (deux fixe et deux dynamiques) 1720 (en écoute) : H.225-Q.931 3232 (dst 1720) : H.225-Q.931 3233 (dst 38417) : H.245 (3603 est utilisé pour l’Interface Web du PVX) 7 ports UDP (un fixe et les autres dynamiques) 1719 : H.225-RAS 3230, 3232 : RTP (audio, vidéo) 3231, 3233 : RTCP (audio, vidéo) (3234 et 3235 à priori pas utilisés) Appel avec Ekiga (H.245-Tunneling activé) 2 ports TCP (un fixe et un dynamique) : 1720 (en écoute) : H.225-Q.931 2676 ((dst 1720)) : H.225-Q.931 et H.245-Tunneling g 6 ports UDP (tous dynamiques) : 5062 : H.225-RAS 5036 5038 : RTP (audio 5036, (audio, vidéo) 5037, 5039 : RTCP (audio, vidéo) (5060 est utilisé par SIP) 72 Le problème H.323 pour les Firewalls • Scénario typique de ce qui peut se passer : – Souvent les Firewalls laissent passer la signalisation d’appel (flèches noires) – Les données audio et vidéo (flèches rouges) peuvent passer de l’intérieur vers l’extérieur mais ce n’est pas le cas de l’extérieur vers l’intérieur : • L’external EP reçoit bien l’audio et la vidéo • L’internal EP a un écran noir et n’a pas de son 73 Le problème H.323 pour les Firewalls • Comment résoudre ce problème ? – Ne pas utiliser H.323 – Ouvrir les ports sur le Firewall pour tous les terminaux H.323 • no secure,, mais cela reste envisageable g pour p les terminaux de salles dédiés H.323 • certains terminaux et ponts ont la capacité de restreindre la gamme des ports, dans ce cas un filtrage réseau (par Access List) est envisageable – Utiliser un Firewall StateFull Inspection p q qui intègre g H.323 ((NetScreen,, Check Point, Cisco PIX) ☺ • le Firewall détecte dès la signalisation d’appel les ports TCP et UDP négociés • il ouvre dynamiquement y q les p ports concernés uniquement q p pour la durée de connexion et trace les paquets échangés pour chaque communication – Utiliser un GK/Proxy H.323 derrière un Firewall ☺ • le e Firewall e a laisse a sse passe passer le e trafic a cu uniquement que e e entre e le e Proxy o ye et l’extérieur e é eu • tous les trafics H.323 passent par le Proxy (nécessite du CPU) • inconvénient : le Proxy, même si il a la capacité de réduire la gamme de ports dynamiques, y q doit rester ouvert sur une large g p plage g de p ports UDP et TCP q qui est fonction du nombre d’appels simultanés maximum qu’il est possible d’atteindre 74 Le problème H.323 pour les Firewalls • Cas particulier de certains terminaux (Polycom) : – restreindre la plage des ports à utiliser directement sur le terminal Restriction de la gamme des ports dynamiques utilisés sur les terminaux Polycom : H225 : TCP=1720 H.245 : X<TCP<Y RTP/RTCP : X<UDP<Y (ici X=3230 et Y=3235) Configuration réseau du logiciel Polycom PVX 75 Le problème H.323 pour les Firewalls • Cas d’un FireWall StateFull Inspection (NetSreen 5XT) – ouvrir le service H.323 76 Le problème H.323 pour les Firewalls • Cas d’un GK/Proxy H.323 – Tous les flux (signalisation, contrôle et média) transitent par le GK/Proxy : • EP ↔ GK/Proxy ↔ EP : pour les flux de signalisation et de contrôle (TCP) • EP ↔ GK/Proxyy ↔ EP : p pour les flux de média RTP/RTCP ((UDP)) – L’external EP dialogue au GK/Proxy qui transmet à l’internal EP et vice versa – Seule l’adresse IP du GK/Proxy est autorisée à traverser le Firewall en ouvrant la gamme de ports dynamiques pour ce système uniquement et pas pour les EP • les EP sont protégés par le Firewall, ils sont seulement autorisés à dialoguer avec l’IP du GK/Proxy • Le GK/Proxy doit être localisé dans une DMZ • Les EP ne savent pas que le Proxy est un Proxy, il est vu comme étant un EP – Chaque EP reçoit l’audio et la vidéo 77 Le problème H.323 pour les Firewalls • Et pour plus de sécurité… – Ajouter un second GK : • un dans le réseau interne et un dans le réseau externe • ouvrir le Firewall entre les 2 GK uniquement – les 2 adresses IP seulement sont autorisées à dialoguer g entre eux – les autres dialogues sont interdits 78 Flux à autoriser sur le réseau (sans GK) Recommandé : Firewall StateFull Inspection p intégrant g H.323 H.323 à autoriser H.225-Q.931 H 245 H.245 T.120 RTP/RTCP EPappelant l t EPappelélé En général : Access List Flux à autoriser TCP>1024 TCP>1024 TCP>1024 UDP>1024 EPappelant H.225-Q.931 H.245 T.120 RTP/RTCP TCP=1720 TCP>1024 TCP=1503 UDP>1024 EPappelé 79 Flux à autoriser sur le réseau (sans GK) Cas particulier : Terminaux Polycom EPappelant TCP>1024 X<TCP<Y TCP>1024 X<UDP<Y Cas particulier : H.245 Tunneling TCP>1024 EPappelant UDP>1024 Flux à autoriser H.225-Q.931 H.245 T.120 RTP/RTCP EPappelé TCP=1720 X<TCP<Y TCP=1503 X<UDP<Y Flux à autoriser H.225-Q.931 + H 245 T H.245-Tunneling li RTP/RTCP EPappelé TCP=1720 UDP>1024 80 Flux à autoriser sur le réseau (avec GK) Recommandé : Firewall StateFull Inspection intégrant H.323 H 323 à autoriser H.323 H.225-RAS H.225-Q.921 et H.245 GK GK si GKRouted RTP/RTCP/T.120 si GKProxy H.225-Q.921 et H.245 si GKDirect RTP/RTCP/T.120 si GKDirect EPappelé EPappelant Cas général : Access List et GKproxy GK EPappelant Proxy + Port Range [X,Y] [X’,Y’] + NAT Flux à autoriser UDP=1719 H.225-RAS UDP=1719 TCP<1024 X<TCP<Y TCP>1024 H.225-Q.931 H.245 T.120 TCP=1720 X<TCP<Y TCP=1503 X’<UDP<Y’ RTP/RTCP X’<UDP<Y’ GK Proxy + Port Range [X,Y] [X’,Y’] + NAT EPappelé 81 Au programme • Généralités sur la visioconférence H.323 • Principe p de fonctionnement d’un appel pp H.323 – Appel sans GateKeeper – Appel avec GateKeeper (intra-zone) – Appel avec GateKeeper (inter-zone) • Sécurité Sé ité d des réseaux é ett fl flux à autoriser t i (avec ( ou sans GK) • GnuGK 82 GnuGK • Qu’est ce que c’est et pourquoi l’utiliser ? – Logiciel libre et multi plateformes (binaires compilés disponibles) – GK complètement fonctionnel qui supporte H.323 v.4 et qui intégre toutes les fonctionnalités attendues • Fonctionnalités : – Capacités standards : translation d’adresse, contrôle d’admission, contrôle de la bande passante et gestion de zone – Capacités complètes de Proxy avec restriction de ports et support du NAT – Large choix de méthodes d’authentification (IP/Préfixe, mySQL, LDAP, Radius) – Fonction de routage des appels inter-zone • déclaration dé l ti de d GK voisins i i • routage des appels vers les GK voisins en fonction des préfixes des n°E.164 • capacité de réécriture les n°E.164 – Génération de statistiques d’utilisation d utilisation – Historiques sur les appels effectués et sauvegardes dans des journaux – Gestion des coûts par le biais d’un système de facturation (fichier, mySQL, Radius, …) – Redondance et partage de charge via des GKs alternatifs – Interface I t f Telnet T l t d’administration d’ d i i t ti ett de d contrôle t ôl 83 Configuration • GnuGK Telnet Interface : telnet <IP du GK> 7000 – Après installation, elle permet de surveiller les événements en temps réel – Quelques commandes : • • • • • • Reload : recharge la configuration après des modifications Statistics, s : affiche les informations statistiques du GK PrintAllRegistrations, r, ? : affiche tous les terminaux enregistrés PrintCurrentCalls cc, ! : affiche tous les appels en cours PrintCurrentCalls, Help, h : affiche la liste des commandes … L’interface montre ici qu’il y a eu 6 requêtes d’enregistrement (RCF) 84 Configuration • GnuGK Control Center (http://www.gnugk-cc.com) – Application Windows pour configurer et administrer GnuGK (utilise la connexion Telnet sur le port 7000) 85 Configuration • Le fichier de configuration du GnuGK (gatekeeper.ini) – Configurations basiques : • configuration des paramètres globaux (adresse IP et nom du GK, valeur de TTL pour l’enregistrement des terminaux, bande passante à allouer, …) • configuration de l’accès à la supervision (pour dire qui est autorisé à surveiller le GK?) • configuration des paramètres liés aux fichiers de log • configuration g du mode d’appel pp ((Direct ou Routé)) • configuration du Proxy, des paramètres du NAT et des restrictions de ports – Autres configurations : • configuration du routage des appels et réécriture des numéros • configuration RAS • configuration de l’authentification et de la méthode utilisée (Simple Password, SQL, LDAP, RADIUS) • configuration pour l’enregistrement des détails des appels • configuration des GK voisins et des préfixes à router • configuration par terminal • configuration avancée 86 Configuration • Configuration des paramètres globaux [Gatekeeper::Main] FourtyTwo=42 ; ne pas y toucher (paramètre utilisé pour tester la présence du fichier de config) Name=GnuGk ; nom du GK Home=1.2.3.4 1 2 3 4 ; adresse d IP du d GK G sur lle réseau é NetworkInterfaces=1.2.3.4/24 ; interface réseau du GK EndpointIDSuffix=_gnugk ; suffixe à ajouter aux identifiants des EP TimeToLive=60 TimeToLive 60 ; durée de vie pour ll’enregistrement enregistrement des terminaux (inclus dans le message RCF) TotalBandwith=100000 ; bande passante totale disponible à donner aux terminaux (désactivé si -1) RedirectGK=Endpoints > 100 || Calls > 50 ; condition de redirection des EP vers des GK alternatifs AlternateGKs=1.2.3.4:1719:false:120:GnuGKAlternate ; GK alternatif S StatusPort=7000 P 7000 ; port de d connexion i Telnet Tl StatusTraceLevel=2 ; niveau de trace pour la connexion Telnet UseBroadcastListener=0 ; si 1, le GK répond aux requêtes RAS diffusées en broadcast UseMulticastListener=00 ; si 1, le GK répond aux requêtes RAS diffusées en multicast UseMulticastListener UnicastRasPort=1719 ; le port UDP pour la canal RAS unicast MulticastPort=1718 ; le port UDP pour le canal RAS multicast MulticastGroup=224.0.1.41 ; le groupe RAS multicast … 87 Configuration • Configuration de l’accès à la console GnuGK [GkStatus::Auth] ; règles à appliquer pour la connexion au port d’état ; dans cette exemple seules les adresses IP explicitement définies et celles qui répondent à l’ l’expression régulières é l è regex sont autorisés) é) rule=explicit | regex 127.0.0.1=allow ; localhost autorisé regex=195\.71\.(129|131)\.[0-9]+$ regex 195\.71\.(129|131)\.[0 9] $ ; IP 195.71.129.0/24 et 195.71.131.0/24 autorisées default=forbid ; par défaut les autres IP non autorisées shutdown=allow ; autoriser l’arrêt du GK par le port d’état … • Configuration des paramètres liés aux fichiers de log [LogFile] ; exemple l : rotation le l dernier d jour de d chaque h mois des d fichiers f h de d log l Rotate=Monthly RotateDay=31 RotateTime=23:00 RotateTime 23:00 … 88 Configuration • Configuration du mode d’appel [RoutedMode] GKRouted=0|1 ; si 1, le GK route la signalisation d’appel H.225 H245Routed=0|1 ; si 1, le GK route le control d’appel H.245 G direct = (GKRouted=0, GK (G d 0 H245Routed=0) 2 d 0) et GK G {routed|proxy} = (GKRouted=1, (G d 1 H245Routed=1) 2 d 1) CallSignalPort=1720 ; le port utilisé par le GK pour la signalisation d’appel H.225-Q.931 CallSignalHandlerNumber=1 ; le nombre de processus de traitement d’appels à augmenter en cas de zone H.323 chargée AcceptNeighborsCalls=1 ; permet le routage entre GK (par les échanges de messages LRQ/LCF) AcceptUnregisteredCalls=1 ; tous les appels sont autorisés y compris ceux des EP non enregistrés RemoveH245AdressOnTunneling=1 R RemoveCallOnDRQ=0 C llO DRQ 0 SupportNATedEndpoints=1 ; support du NAT Q931PortRange=20000-20999 ; définie la plage des n° de ports TCP pour les canaux de signalisation dd’appels appels H.225 (nécessite GKRouted GKRouted=1) 1) H245PortRange=30000-30999 ; définie la plage des n° de ports TCP pour les canaux de contrôle H.245 (nécessite H245Routed=1) TranslateFacility=1 … 89 Configuration • Configuration du Proxy [Proxy] Enable=1 ; active les fonctions de Proxy (nécessite GKRouted=1 et H245Routed=1) InternalNetwork=10.0.1.0/24 ; le réseau privé derrière le Proxy T120PortRange=40000-40999 120 40000 40999 ; définie déf la l plage l des d numéros é de d ports TCP C utilisés l é pour les canaux de données T.120 RTPPortRange=50000-50999 ; spécifie la plage des numéros de ports UDP utilisés pour les canaux RTP/RTCP ProxyForNAT=1 ProxyForSameNAT=0 DisableH235Call=1 Di bl H460C ll 1 DisableH460Call=1 EnableRTPMute=1 … 90 Configuration • Réécriture des numéros E.164 [RasSrv::RewriteE164] 08=18888 ; si vous composez 08345718, il est réécrit en 18888345718 !09=18888 ; si vous composez 09345718, il est réécrit en 1888809345718 • Déclaration des GK voisins et des p préfixes à router [RasSrv::Neighbors] ; GKID=ip[:port;prefixes;password;dynamic] GK1=192 168 0 5;* ; tous les numéros sont routés vers GK1 GK1=192.168.0.5;* GK2=10.0.0.1:1719;035,036;gk2 ; les numéros commençant par 035 ou 036 sont routés vers le GK2 dont l’adresse IP est 10.0.0.1 … 91 Configuration • Configuration de l’authentification (exemple avec LDAP) [Gatekeeper::Auth] LDAPAliasAuth=required;RRQ default=allow … [GkLDAP::LDAPAttributeNames] H323ID h323Identityh323 ID H323ID=h323Identityh323-ID TelephoneNo=h323IdentityDialedDigits IpAddress=h323IdentityTransportID H235PassWord=h235IdentityPassword … [GkLDAP::Settings] ServerName xxx.xxx.xxx.xxx ServerName=xxx.xxx.xxx.xxx ServerPort=389 SearchBaseDN=dc=sample,dc=questnet,dc=net,dc=au BindUserDN=cn=manager,dc=sample,dc=questnet,dc=net,dc=au sizeLimit=0 i Li it 0 timeLimit=5 … 92 Configuration • Configuration de l’authentification (exemple avec mySQL) [Gatekeeper::Auth] MySQLAliasAuth=required;RRQ default=allow … [MySQLAliasAuth] ; ;SELECT ip FROM vcsys.systems WHERE IDField = %0:h323_ID ; H Host=localhost l lh Database=db User=dbuser Password dbpasswd Password=dbpasswd Table=dbtable IDField=alias IPField=ip #E ExtraCriterion=Kind t C it i Ki d > 1 CacheTimeout=300 … 93 Configuration • Accounting (enregistrement des détails des appels) [CallTable] GenerateNBCDR=1 ; Call Detail Record (CDR) pour les appels avec les zones voisines GenerateUCCDR=1 ; Call Detail Record (CDR) pour les appels non connecté ( mode (en d routéé seulement) l ) DefaultCallTimeout=0 ; durée maximale d’un appel (si 0 pas de limitation) AcctUpdateInterval=0 … [Gatekeeper::Acct] ; ce qui est comptabilisé et comment Fil A FileAcct=required;start,update,stop,on,off i d d ff Default=accept … [FileAcct] ; paramétrage pour le fichier texte des rapports des appels DetailFile=/var/log/acct.log R t t 0 Rotate=0 … 94 Configuration • Autres paramètres liés aux messages RRQ, ARQ et LRQ [RasSrv::RRQFeatures] AcceptEndpointIdentier=1 ; le GK accepte l’endpointIdentifier indiqué dans un message RRQ … [RasSrv::ARQFeatures] CallUnregisteredEndpoints=1 ; le GK accepte un ARQ avec un destinataire enregistré ou non … [RasSrv::LRQFeatures] IncludeDestinationInfoInLCF=1 ; le GK répond avec des LCFs contenant des informations (l’ li et le (l’alias l type de d EP) sur le l destinataire d i i ForwardHopCount=2 ; le GK transmet un LRQ avec un HopCount égal à 2 … 95