Betrieb eines Gatekeepers am Beispiel GnuGK 1 Vorteile: GnuGK Freie Software, kostenlos läuft stabil unter Linux Nachteile: Kein kommerzieller Support (''Use the source, Luke'') 2
Quellen http://www.gnugk.org/ http://www.openh323.org/ Debian-Pakete erhältlich, Suse-Pakete ebenso auch: Windows-Versionen Weitere Tools: ohphone, gnomemeeting 3 Betrieb und Wartung (1) Beachten Sie die RC-Skripte Ihrer Distribution! Start: su gnugk -c "/usr/sbin/gnugk -tt\ --config /etc/gnugk/test1.ini \ --output /var/log/gnugk/test1.log \ --pid /var/run/gnugk/test1.pid" & Start als daemon (http://www.libslack.org/daemon): daemon name=test1 respawn --attempts=1 --delay=10 --user=gnugk -- \ /usr/sbin/gnugk -tt\ --config /etc/gnugk/test1.ini \ --output /var/log/gnugk/test1.log \ --pid /var/run/gnugk/test1.pid 4
Betrieb und Wartung (2) Stop: kill `cat /var/run/gnugk/test1.pid` daemon --name=test1 user=gnugk --stop Reload der Konfiguration: Logrotate: kill -1 `cat /var/run/gnugk/test1.pid` mv /var/log/gnugk/test1.log /var/log/gnugk/test1.log.`date -u \ %Y%m%d%H%M%S` kill -1 `cat /var/run/gnugk/test1.pid` 5 Logging Ausführlicheres Log: -ttt beim Starten oder am Statusport: debug trc + / debug trc - GRQ GCF RRQ RCF RRJ URQ UCF Gatekeeper Request Gatekeeper Confirm Registration Request Registration Confirm Registration Reject Unregistration Request Unregistration Confirm LRQ LCF LRJ ARQ ACF ARJ DRQ DCF Location Request Location Confirm Location Reject Admission Request Admission Confirm Admission Reject Disengage Request Disengage Confirm CDR Call Detail Report 6
Beispiel im DFN-Szenario 7 Datenströme direct call Geräte Protokoll Ports uni-eg ARQ-> uni-gk H.225 RAS UDP A -> 1720 uni-gk LRQ-> cgk H.225 RAS UDP 1719 -> 1719 cgk LRQ-> dfn-gk H.225 RAS UDP 1719 -> 1719 uni-gk <-LCF dfn-gk H.225 RAS UDP 1719 <- 1719 uni-eg <-ACF uni-gk H.225 RAS UDP A <- 1720 uni-eg Call-Setup-> dfn-eg H.225 Q.931 TCP B <-> 1720 uni-eg Call-Control-Channel-> dfn-eg H.245 TCP C <-> D uni-eg Audio-Channel-> dfn-eg RTP UDP E -> F uni-eg <-Audio-Channel dfn-eg RTP UDP G <- H uni-eg Video-Channel-> dfn-eg RTP UDP I -> J uni-eg <-Video-Channel dfn-eg RTP UDP K <- L Ports A-L dynamisch, lassen sich bei manchen Endgeräten konfigurieren. Optional noch 1 bis 8 RTCP-Kanäle für Datenflußinformationen wie jitter, packet loss, meist zu den Ports F+1, G+1, J+1, K+1. 8
Routing Endgerät <-> Gatekeeper call setup Call -Setup über Gatekeeper call control H.245 zus. Über Gatekeeper Proxy Alles über Gatekeeper Gatekeeper <-> Gatekeeper Alle Anfragen haben einen Teil ''Bitte Antwort an...''. Direct Gatekeeper: lässt diesen Teil unverändert Routed Gatekeeper: setzt seine Adresse ein und merkt sich den Original-Absender 9 Datenströme Routed Call uni-gk cgk dfn-gk mcu-gk proxy direct direct call setup Geräte/Requests Protokoll Ports uni-eg ARQ-> uni-gk H.225 RAS UDP A -> 1719 uni-gk LRQ-> cgk H.225 RAS UDP 1719 -> 1719 cgk LRQ-> dfn-gk H.225 RAS UDP 1719 -> 1719 dfn-gk LRQ-> mcu-gk H.225 RAS UDP 1719 -> 1719 uni-gk <-LCF mcu-gk H.225 RAS UDP 1719 <- 1719 uni-eg <-ACF uni-gk H.225 RAS UDP A <- 1719 uni-eg -> uni-gk Call-Setup-> mcu-gk <-> mcu H.225 Q.931 TCP B <-> 1720 uni-eg -> uni-gk Call-Control-Channel-> mcu H.245 TCP C <-> D uni-eg -> uni-gk Audio-Channel-> mcu RTP UDP E -> F uni-eg <- uni-gk <-Audio-Channel mcu RTP UDP G <- H uni-eg -> uni-gk Video-Channel-> mcu RTP UDP I -> J uni-eg <- uni-gk <-Video-Channel mcu RTP UDP K <- L blau: Requests 10
Diverses Faststart: Call Setup wird beschleunigt durch verändertes Protokoll zwischen GK und EG. Ausschalten kann bei dubiosen Problemen helfen. 11 gk.ini Beispiel der gk.ini im Anhang der Kursunterlage https://www.vc.dfn.de/ -> Dokumentation -> Beispielkonfiguration -> Gatekeeper 12
Konfiguration: Basis [Gatekeeper::Main] Fourtytwo=42 Name=004971163314 Home=192.168.0.1 NetworkInterfaces=192.168.0.1/24 UseBroadcastListener=0 TimeToLive=300 [RoutedMode] CallSignalPort=1720 [RasSrv::LRQFeatures] CiscoGKCompatible=1 IncludeDestinationInfoInLCF=0 [RasSrv::Neighbors] cgk=194.95.240.3:1719;00 13 Konfiguration: Callrouting [RoutedMode] GKRouted=0 H245Routed=0 [Proxy] Enable=0 GKRouted H245Routed Enable direct 0 0 0 call setup 1 0 0 call control 1 1 0 proxy 1 1 1 Wenn RoutedMode verwendet wird zusätzlich: [RoutedMode] AcceptUnregisteredCalls=1 14
Konfiguration: Portbereiche (Firewall ohne H.323-Unterstützung) [RoutedMode] Q931PortRange=20000-20999 Callsetup H245PortRange=30000-30999 Callcontrol [Proxy] RTPPortRange=50000-59999 Daten T120PortRange=40000-40999 T.120 15 Konfiguration: NAT [RoutedMode] SupportNATedEndpoints=1 [Proxy] InternalNetwork=192.168.0.1/24 ProxyForNAT=1 16
Konfiguration: Endgeräteauthentifizierung anhand Alias und IP [Gatekeeper::Auth] AliasAuth=required;RRQ default=allow [RasSrv::RRQAuth] 214=sigip:192.168.1.1:1720 215=sigaddr:.*ipAddress.* ip =.* c1 a8 01 01.* 216=sigaddr:.*ipAddress.* ip =.* c1 a8 01.*.* default=deny Standard Dyn. Port z.b. NAT mit externer Datenbank: mit externem Radius: mit externem LDAP: MySQLAliasAuth RadAliasAuth LDAPAliasAuth 17 Konfiguration: Endgeräteauthentifizierung mit Passwort nach H.235 (muß vom Endgerät unterstützt werden!) [Gatekeeper::Auth] SimplePasswortAuth=optional;RRQ,ARQ AliasAuth=sufficient;RRQ default=allow [Password] 214=Em76sdfuwr3g 215=rmDl/eDRgMPS 216=sFd9qYzna1ZPu default=deny mit externem Programm: mit externer Datenbank: mit externem Radius: mit externem LDAP: mit addpasswd zu generieren ExternalPasswordAuth MySQLAuth RadAuth LDAPPasswordAuth 18
Konfiguration: Addressrewriting(1) [RasSrv::RewriteE164] 004971163314= 004971165555= 004971166666= lokaler Dialplan: 1xxx FH1 0049711666661111 2xxx FH2 0049711655552222 [3-9]xxx Uni 0049711633143333 19 Konfiguration: Addressrewriting (2) [RasSrv::RewriteE164] 004971163314= 004971165555=10 (Kurzwahl) 004971166666=11 (Kurzwahl) lokaler Dialplan: 10xx FH1 004971165555xx 11xx FH2 004971166666xx [2-9]xxx Uni 0049711633142xxx 20
Konfiguration: Statusport [Gatekeeper::Main] StatusPort=7000 [GkStatus::Auth] rule=regex regex=^(192\.168\.0\.[0-9]+ 127\.0\.0\.1)$ oder: rule=regex & password regex=^(192\.168\.0\.[0-9]+ 127\.0\.0\.1)$ joe=44ptljvv5rk= 21 Konfiguration: Redundanz [Gatekeeper::Main] AlternateGKs=192.168.0.2:1719:false:10:004971163314r1 SendTo=192.168.0.2:1719 SkipForwards=192.168.0.2 22