CiRen 33 Visio-Réunion, 24-26 Septembre 2007 GateKeepers et GnuGK Nicolas.Meneceur@rap.prd.fr 1
Au programme Généralités sur la visioconférence H.323 Principe de fonctionnement d un appel H.323 Appel sans GateKeeper Appel avec GateKeeper (intra-zone) Appel avec GateKeeper (inter-zone) Sécurité des réseaux et flux à autoriser (avec ou sans GK) GnuGK 2
Au programme Généralités sur la visioconférence H.323 Principe de fonctionnement d un appel H.323 Appel sans GateKeeper Appel avec GateKeeper (intra-zone) Appel avec GateKeeper (inter-zone) Sécurité des réseaux et flux à autoriser (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 être partagés entrent les participants. Avantages : Économies en déplacement, en temps et en coût de télécommunication. Applications : Travail collaboratif et réunion de groupe 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 (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.323 (ITU-T, v.1 en 1996, 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 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.450 (services téléphoniques tels que le transfert d appel, la mise en 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éphone sonne, Le canal est aussi utilisé pour envoyer des message qui signalent 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 accord sur la façon de communiquer et de coder les informations qu 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 l 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 à destination parce que RTP fonctionne sur UDP (protocole de transport non fiable). 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 RNIS GW FW EP MCU EP EP EP GK 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 numéros de téléphone (ou les alias) et les adresses IP en utilisant une table de 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 gestion de la zone : il assure ces fonctions pour les terminaux, les ponts et les passerelles qui se sont enregistrés et bien d autres services : l authentification, l interface avec les systèmes de facturation pour la gestion des coûts, la mise en place de l annuaire des 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 ne sont 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 de fonctionnement d un appel H.323 Appel sans GateKeeper Appel avec GateKeeper (intra-zone) Appel avec GateKeeper (inter-zone) Sécurité des réseaux et flux à autoriser (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 (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 Canal de signalisation H.225-Q.931 (TCP port 1720) EP appelant SETUP CALL PROCEEDING ALERTING + CONNECT EP appelé 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 Canal de contrôle d appel H.245 (TCP port dynamique) Canaux des données RTP/RTCP (UDP ports dynamiques) TERMINAL CAPABILITY SET + ACK 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) 2. Préparation de la conversation - échange des capacités des EP: débit, format et options des codecs sont échangés - 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 Canal de contrôle d appel H.245 (TCP port dynamique) Canal de signalisation H.225-Q.931 (TCP port 1720) END SESSION COMMAND RELEASE COMPLETE 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 (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 EP appelant (TCP >1024) SETUP déclenchement de l appel CALL PROCEEDING traitement d appel en cours ALERTING sonnerie CONNECT connexion (@H245=30004) EP appelé (TCP=1720) Canal de signalisation H.225 Q.931 (TCP port 1720) L appelant commence par envoyer à l appelé un message Setup Ce message est envoyé à destination du port TCP 1720 de l appelant 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é 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é décroche son terminal, un message Connect est envoyé 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 (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 EP appelant (TCP >1024) TERMINAL CAPABILITY SET TERMINAL CAPABILITY SET ACK TERMINAL CAPABILITY SET TERMINAL CAPABILITY SET ACK EP appelé (TCP>1024) TCP 30004 Canal de contrôle d appel H.245 (port TCP négocié > 1024) Le canal de contrôle d appel est ouvert La connexion TCP est initiée par l appelant en utilisant 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 EP appelant (TCP >1024) MASTER SLAVE DETERMINATION EP appelé (TCP>1024) TCP 30004 MASTER SLAVE DETERMINATION ACK MASTER SLAVE DETERMINATION 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. 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 de la communication audiovisuelle EP appelant (TCP >1024) OPEN LOGICAL CHANNEL @RTCP audio,video =5013,5015 OPEN LOGICAL CHANNEL ACK @RTP audio,video =5016,5018 / @RTCP audio,video =5017,5019 OPEN LOGICAL CHANNEL @RTCP audio,video =5017,5019 OPEN LOGICAL CHANNEL ACK @RTP audio,video =5012,5014 / @RTCP audio,video =5013,5015 EP appelé (TCP>1024) TCP 30004 Canal de contrôle d appel H.245 (port TCP négocié > 1024) 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 RTCP 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 la réception des rapports 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 (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) EP appelant EP appelé (UDP >1024) (UDP>1024) UDP 5012 Flux RTP audio UDP 5016 UDP 5013 Flux RTCP audio UDP 5017 UDP 5014 Flux RTP vidéo UDP 5018 UDP 5015 Flux RTCP vidéo UDP 5019 Canaux de données RTP/RTCP (ports UDP négociés > 1024) 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 paquets RTCP (Sender Report) émis par le récepteur de paquets 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 (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 EP appelant (TCP >1024) EP appelé (TCP>1024) END SESSION COMMAND commande de fin de session TCP 30004 Canal de contrôle d appel H.245 (port TCP négocié > 1024) RELEASE COMPLETE arrêt complet Canal de signalisation H.225-Q.931 (port TCP 1720) Celui 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.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 faire en seulement 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 EP appelant (TCP >1024) SETUP (FastStart [Logical Channel Info]) déclenchement de l appel CALL PROCEEDING traitement d appel en cours ALERTING sonnerie RTP audio et vidéo CONNECT (FastStart [Logical Channel Info]) connexion RTP/RTCP audio et vidéo EP appelé (TCP=1720) Canal de signalisation H.225 (port TCP 1720) Canaux de données RTP/RTCP (ports UDP négociés > 1024) Les informations nécessaires pour commencer à ouvrir les canaux RTP sont contenues dans le 1 er message (SETUP) 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, Early H.245, FastStart) 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 de fonctionnement d un appel H.323 Appel sans GateKeeper Appel avec GateKeeper (intra-zone) Appel avec GateKeeper (inter-zone) Sécurité des réseaux et flux à autoriser (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 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.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 EP (IP 1 ) n E.164 : 0144271102 nom alias H.323 : Jean EP (IP 2 ) 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 pas l appel avec l adresse IP) le GK s occupe de localiser les EP et de faire la conversion n E.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) IP 1 (0144271102, Jean) IP 2 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 (xrq) au GK qu il accepte (xcf) ou qu il rejette (xrj) Fonction Requête (xrq=xrequest) Requête acceptée (xcf=xconfirm) Requête rejetée (xrj=xreject) découvrir le GK GRQ Gatekeeper Request GCF Gatekeeper Confirm GRJ Gatekeeper Reject s enregistrer sur le GK RRQ Registration Request RCF Registration Confirm RRJ Regitration Reject autoriser d appeler ARQ Admission Request ACF Admission Confirm ARJ Admission Reject modifier la bande passante BCQ Bandwidth Request BCF Bandwidth Confirm BRJ Bandwidth Reject arrêter de communication DRQ Disengage Request DCF Disengage Confirm DRJ Disengage Reject résilier l enregistrement URQ Unregistration Request UCF Unregistration Confirm URJ 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 Info Request Response Info Request Ack Info Request Nak Unknown Message Response Non Standard Message Request in 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 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.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 : L EP peut aussi choisir un GK 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 RRQ GK EP RRQ GK 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 envoie une requête 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) l alias et le n E164 de l 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 et le port H.225-Q.931 utilisés par le GK pour la signalisation 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 (si RCF) la durée de vie (TimeToLive) de l enregistrement (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 ARQ GK EP ARQ GK 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é (le port UDP 1719). Cette requête comprend : 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 le n E.164 et l alias de la 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 : IRQ : Info Request Requête du GK à l EP d information concernant son statut IRR : Info Request Response Réponse à la requête IRQ (peut être aussi envoyé périodiquement 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 initialement négociée et fournie par le 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 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.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 : GK direct : 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 GK routed : 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 paquets 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 GK proxy : 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} : Le GK {routed proxy} garde la supervision de la communication : 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 la facturation) Le GK proxy 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 GK proxy avec une restriction sur la gamme des ports ouverts dynamiquement 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 GK proxy 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 pas spécifié dans la norme H.323 : tous les GK n intègrent pas la fonctionnalité de Proxy 55
Appel avec GK EP H.323 GK en mode Direct H.225-Q.931 H.245 RTP/RTCP EP H.323 EP H.323 GK en mode Routé RTP/RTCP EP H.323 EP H.323 GK en mode Proxy EP H.323 RAS RAS H.225-Q.931 H.245 RAS H.225-Q.931 H.245 RTP/RTCP GK direct GK non impliqué dans la signalisation (pas de supervision sur l appel) GK routed GK impliqué dans la signalisation (accounting et contrôle des négociations) GK proxy GK impliqué dans tous les flux (contrôle total et sécurité) Protocole H.225-RAS H.225-Q.931 H.245 RTP/RTCP Usage Signalisation d enregistrement : enregistrement et localisation de l EP, contrôle et état de la connexion Signalisation d appel : initialisation de l appel Contrôle d appel : préparation au dialogue Transport des données audio et vidéo : dialogue 56
Appel avec GK GK en mode Direct GK en mode Routé GK en mode Proxy EP appellant GK direct EP appelé ARQ ACF S CP A + C TCS +ACK MSD +ACK OLC + ACK ARQ ACF EP appellant GK routed EP appelé EP appellant GK proxy EP appelé ARQ ACF ARQ ACF S CP A+C TCS +ACK MSD +ACK OLC + ACK S CP ARQ ACF A+C TCS +ACK MSD +ACK OLC + ACK S CP A+C TCS +ACK MSD +ACK OLC + ACK S CP ARQ ACF A+C TCS +ACK MSD +ACK OLC + ACK RTP + RTCP RTP + RTCP 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 Messages H.245 Messages H.245 ARQ : Admission Request ACF : Admission Confirm DRQ : Disengage Request DCF : Disengage Confirm S : Setup CP : Call Proceeding A+C : Alerting + Connect RC : Release Complete TCS : Terminal Capability Set MSD : Master Slave Determination OLC : Open Logical Channel ESC : End Session Command 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 EP appelé demande 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), si par exemple la bande passante ne le permet pas. Après la communication : 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 peut ainsi allouer la bande passante libérée à d autres appels. 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! Puis je m enregistrer? Enregistrement confirmé Puis-je appeler 2? Oui, je te donne l @IP de 2 Création de l appel Appel en cours EP 1 REGISTRATION REQUEST (RRQ) GK REGISTRATION REQUEST (RRQ) EP 2 REGISTRATION CONFIRM (RCF) REGISTRATION CONFIRM (RCF) ADMISSION REQUEST (ARQ) ADMISSION CONFIRM (ACF) SETUP CALL PROCEEDING ADMISSION REQUEST (ARQ) ADMISSION CONFIRM (ACF) Puis je m enregistrer? OK Appel en cours Puis-je répondre à 1? Oui, autorisé 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 OK (prêt à être rappelé) Me désinscrire du GK OK ALERTING + CONNECT (contient les ports TCP négociés pour H.245) TERMINAL CAPABILITY SET TERMINAL CAPABILITY SET ACK TERMINAL CAPABILITY SET TERMINAL CAPABILITY SET ACK 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.225 (Q.931) : signalisation d appel H.245 : contrôle d appel RTP/RTCP : transport des données É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-R Communication établie et transport des flux Commande fin de session Fin de communication 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 de fonctionnement d un appel H.323 Appel sans GateKeeper Appel avec GateKeeper (intra-zone) Appel avec GateKeeper (inter-zone) Sécurité des réseaux H.323 et flux à autoriser GnuGK 60
Principe de fonctionnement (cas général) Quatre scénarios d appel ont été vus : EP EP (communication sans GK) EP GK direct EP (communication utilisant un GK en mode Direct) EP GK routed EP (communication utilisant un GK en mode Routé) EP GK proxy 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 (quand vous composez 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 sur différents GK, une requête 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 GK 2 EP 2 EP 1 GK 1 ARQ LRQ LCF ACF SETUP CALL PROCEEDING ALERTING + CONNECT ARQ ACF 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 Request (LRQ) pour localiser le destinataire. 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 d appel et envoyer l invitation d appel (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 (échange 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 directe à l EP si les GK sont en mode Direct). 62
Localisation d un correspondant Capture d une requête LRQ Capture de la réponse LCF 63
Localisation d un correspondant Localisation des EP EP 1 GK 1 ARQ LRQ LRJ GK 2 EP 2 GK 3 GK 4 LRQ LRQ LRJ LRQ GK 5 LCF ACF SETUP CALL PROCEEDING ALERTING + CONNECT LCF ARQ ACF les GK en réseau permettent de localiser de proche en 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 GK 1 sollicite inutilement GK 2 ou que GK 3 sollicite GK 4 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.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 vers un n E.164 de préfixe X est routé vers le GK gérant la zone X un GK ayant des capacités de réécriture des n E.164 permet de 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 Zone C, préfixe : 333 333001 GK3 Le n E.164 appelé est dans ma zone : J en informe GK1 et l appel est établi GK4 GK2 Zone B, préfixe : 222 222001 Routage inter-zone : L appel en 222xxx est routé vers le GK2 (via LRQ/LCF) GK1 Le n E.164 appelé (222xxx) est hors 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 Zone C, préfixe : 333 001 GK3 Le GK2 réécrit le n appelé 222001 en 001 GK4 GK2 Zone B, préfixe : 222 001 GK1 Le GK1 réécrit le n de l appelant 001 en 111001 001 appelle 222001 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) 002 001 Zone A, préfixe : 111 67
Appel inter-zone et réseaux de GK Zone C, préfixe : 333 001 GK3 GK4 GK2 Zone B, préfixe : 222 001 GK1 Le GK1 réécrit le n de l appelé 002 en 111002 001 appelle 002 ou 111002 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 court ou leur n long. 002 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 de fonctionnement d un appel H.323 Appel sans GateKeeper Appel avec GateKeeper (intra-zone) Appel avec GateKeeper (inter-zone) Sécurité des réseaux et flux à autoriser (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 2 10 à 2 16 (1024 65535) est utilisée 4 à 8 ports sont négociés et utilisés par appel cette négociation est un problème pour traverser les Firewalls 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 Appel avec Ekiga (H.245-Tunneling activé) 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) 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 6 ports UDP (tous dynamiques) : 5062 : H.225-RAS 5036, 5038 : RTP (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 pour 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 qui intègre 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 les ports concernés uniquement 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 Firewall laisse passer le trafic uniquement entre le Proxy et l extérieur 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, doit rester ouvert sur une large plage de ports UDP et TCP 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/Proxy EP : 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 entre eux les autres dialogues sont interdits 78
Flux à autoriser sur le réseau (sans GK) Recommandé : Firewall StateFull Inspection intégrant H.323 H.225-Q.931 H.245 T.120 RTP/RTCP H.323 à autoriser EP appelant EP appelé En général : Access List TCP>1024 TCP>1024 TCP>1024 UDP>1024 H.225-Q.931 H.245 T.120 RTP/RTCP Flux à autoriser TCP=1720 TCP>1024 TCP=1503 UDP>1024 EP appelant EP appelé 79
Flux à autoriser sur le réseau (sans GK) EP appelant Cas particulier : Terminaux Polycom TCP>1024 X<TCP<Y TCP>1024 X<UDP<Y H.225-Q.931 H.245 T.120 RTP/RTCP Flux à autoriser TCP=1720 X<TCP<Y TCP=1503 X<UDP<Y EP appelé EP appelant Cas particulier : H.245 Tunneling TCP>1024 UDP>1024 H.225-Q.931 + H.245-Tunneling RTP/RTCP Flux à autoriser TCP=1720 UDP>1024 EP appelé 80
Flux à autoriser sur le réseau (avec GK) Recommandé : Firewall StateFull Inspection intégrant H.323 H.323 à autoriser GK EP appelant H.225-RAS H.225-Q.921 et H.245 si GK Routed RTP/RTCP/T.120 si GK Proxy H.225-Q.921 et H.245 si GK Direct RTP/RTCP/T.120 si GK Direct GK EP appelé Cas général : Access List et GK proxy EP appelant GK Proxy + Port Range [X,Y] [X,Y ] + NAT UDP=1719 TCP<1024 X<TCP<Y TCP>1024 X <UDP<Y Flux à autoriser H.225-RAS H.225-Q.931 UDP=1719 TCP=1720 H.245 X<TCP<Y T.120 TCP=1503 RTP/RTCP X <UDP<Y GK Proxy + Port Range [X,Y] [X,Y ] + NAT EP appelé 81
Au programme Généralités sur la visioconférence H.323 Principe de fonctionnement d un appel H.323 Appel sans GateKeeper Appel avec GateKeeper (intra-zone) Appel avec GateKeeper (inter-zone) Sécurité des réseaux et flux à autoriser (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 de GK voisins 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 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 Telnet d administration et de contrôle 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, c,! : affiche tous les appels en cours 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 du mode d appel (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 ; adresse IP du GK sur le réseau NetworkInterfaces=1.2.3.4/24 ; interface réseau du GK EndpointIDSuffix=_gnugk ; suffixe à ajouter aux identifiants des EP TimeToLive=60 ; durée de vie pour l 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 StatusPort=7000 ; port de connexion Telnet 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=0 ; si 1, le GK répond aux requêtes RAS diffusées en multicast 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 expression régulières regex sont autorisés) rule=explicit regex 127.0.0.1=allow ; localhost autorisé 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 : rotation le dernier jour de chaque mois des fichiers de log Rotate=Monthly RotateDay=31 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 GK direct = (GKRouted=0, H245Routed=0) et GK {routed proxy} = (GKRouted=1, H245Routed=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 RemoveCallOnDRQ=0 SupportNATedEndpoints=1 ; support du NAT Q931PortRange=20000-20999 ; définie la plage des n de ports TCP pour les canaux de signalisation d appels H.225 (nécessite GKRouted=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 ; définie la plage des numéros de ports TCP utilisés 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 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 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 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 TelephoneNo=h323IdentityDialedDigits IpAddress=h323IdentityTransportID H235PassWord=h235IdentityPassword [GkLDAP::Settings] 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 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 ; Host=localhost Database=db User=dbuser Password=dbpasswd Table=dbtable IDField=alias IPField=ip # ExtraCriterion=Kind > 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é (en mode routé seulement) DefaultCallTimeout=0 ; durée maximale d un appel (si 0 pas de limitation) AcctUpdateInterval=0 [Gatekeeper::Acct] ; ce qui est comptabilisé et comment FileAcct=required;start,update,stop,on,off Default=accept [FileAcct] ; paramétrage pour le fichier texte des rapports des appels DetailFile=/var/log/acct.log 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 alias et le type de EP) sur le destinataire ForwardHopCount=2 ; le GK transmet un LRQ avec un HopCount égal à 2 95