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

Documents pareils