VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Podpora technologie ENUM v opensource VoIP řešeních Semestrální práce 2008 Buchta Tomáš, Hájek Jakub, Hanus Miroslav, Kukucz René
OBSAH 0 Obsah 1 Úvod 1 2 ENUM 2 2.1 Doména e164.arpa................................ 2 2.2 NAPTR záznam.................................. 2 3 Podpora ENUM v opensource řešeních 4 3.1 DNS servery.................................... 4 3.2 VoIP řešení..................................... 4 4 Praktické testy 6 4.1 SIP Express Router (SER)............................. 6 4.2 OpenSER...................................... 11 4.3 Yet Another Telephony Engine (YATE)..................... 13 4.4 Asterisk....................................... 15 4.5 GNU Gatekeeper (GnuGK)........................... 17 5 Závěr 20 6 Literatura 21
1 ÚVOD 1 1 Úvod Práce si klade za úkol ověřit funkčnost podpory technologie ENUM u co nejširšího vzorku opensource H.323 a SIP řešení. Zaměřuje se především na řešení dostupná primárně pro linuxovou platformu, konkrétně na SIP Express Router, OpenSER, Yet Another Telephony Engine, Asterisk a GNU Gatekeeper.
2 ENUM 2 2 ENUM ENUM (Telephone Number Mapping) je technologie, která využívá DNS k mapování prostoru telefonních čísel (ITU E.164) na prostor URI adres. Jednomu telefonnímu číslu může odpovídat více URI, kde každá URI adresa může odkazovat na jinou službu nebo protokol (např. SIP, H.323, e-mail). 2.1 Doména e164.arpa Pro prostor telefonních čísel je vyhrazen strom doménových jmen e164.arpa. Samotný proces převodu E.164 čísla na plně kvalifikované doménové jméno probíhá následovně (pro ilustraci je použito číslo 420 573 331 122): 1. Jsou odstraněny všechny oddělovače mezi číslicemi a před kód země je doplněn znak +. Takto upravené číslo se označuje jako AUS (Application Unique String). Z čísla 420 573 331 122 tedy vznikne +420573331122. 2. Je odstraněn úvodní znak + a převráceno pořadí číslic. Z AUS +420573331122 vznikne řetězec 221133375024. 3. Za každou číslici je doplněna tečka a za konec celého řetězce je doplněn řetězec e164.arpa. Výsledné doménové jméno je 2.2.1.1.3.3.3.7.5.0.2.4.e164.arpa. Doména e164.arpa není vedena centralizovaně, ale stejně jako u ostatních domén se jedná o distribuovanou databázi. Konkrétně pro Českou republiku je delegována doména 0.2.4.e164.arpa, kterou spravuje CZ.NIC. Registrace ENUM domén pod 0.2.4.e164.arpa pak probíhá stejným způsobem jako u top-level domény.cz, tedy přes některého z komerčních registrátorů. ENUM domény mohou být různě rozsáhlé, mohou pokrývat určitý rozsah telefonních čísel (doména 2.1.1.3.3.3.7.5.0.2.4.e164.arpa bude pokrývat telefonní čísla od 420 573 331 120 do 420 573 331 129), ale mohou také odpovídat jedinému telefonnímu číslu. 2.2 NAPTR záznam ENUM používá pro uložení informací v DNS databázi NAPTR záznam. NAPTR záznam obsahuje šest polí: 1. ORDER slouží k určení priority záznamu. Nižší hodnota znamená záznam s vyšší preferencí. Jde o podobný systém jako u MX záznamů určujících doručování elektronické pošty. 2. PREFERENCE - slouží pro rozlišení priorit ve skupině záznamů se stejnou hodnotou pole order 3. FLAGS - pole pro příznak. Jediný povolený příznak pro NAPTR záznam je u. Tento příznak určuje, že výstupem bude URI služby.
2 ENUM 3 4. SERVICE - pole obsahuje rozpoznávací značku (pro e164.arpa domény je to řetězec E2U+, na velikosti znaků nezáleží), typ a případně podtyp služby 1. Příklad: E2U+sip = SIP E2U+web:https = WWW, protokol HTTPS 5. REGULAR EXPRESSION popis převodu AUS na URI. Popis je proveden pomocí regulárních výrazů, jako oddělovač je použitý znak!. Oddělovač je použitý přesně 3krát, a to na začátku pole, pak mezi regulárním výrazem popisujícím AUS a regulárním výrazem popisujícím URI a naposledy na konci pole. 6. REPLACEMENT - další pole, které může být využito pro převod. S flagem u se toto pole nepoužívá. Příklad z RFC 3761 ukazuje tři NAPTR záznamy pro jedno telefonní číslo. $ORIGIN 3.8.0.0.6.9.2.3.6.1.4.4.e164.arpa. NAPTR 10 100 u E2U+sip!ˆ.*$!sip:info@example.com!. NAPTR 10 101 u E2U+h323!ˆ.*$!h323:info@example.com!. NAPTR 10 102 u E2U+msg!ˆ.*$!mailto:info@example.com!. Všechny záznamy mají pole ORDER nastaveno na hodnotu 10, prioritu záznamů tedy určuje hodnota pole PREFERENCE. Podle priority záznamů je tedy číslo +441 632 960 038 mapováno nejprve na URI sip:info@example.com, pak na h323:info@example.com a nakonec na mailto:info@example.com. 1 Seznam typů a subtypů služeb je dostupný na adrese http://www.iana.org/assignments/enumservices.
3 PODPORA ENUM V OPENSOURCE ŘEŠENÍCH 4 3 Podpora ENUM v opensource řešeních 3.1 DNS servery V době psaní této práce byl jediný name server, který nativně podporoval ENUM, BIND9. Ostatní (MaraDNS, mydns) podporu ENUM neuváděly nebo bylo, jako v případě djbdns, nutné instalovat dodatečný patch 2. Pro spolupráci s VoIP řešeními byl vybrán BIND9, ostatní zmíněné name servery nebyly testovány. 3.2 VoIP řešení 3.2.1 SIP Express Router (SER) Podpora ENUM pro SER je dostupná v podobě modulu (stejně jako další rozšíření pro toto řešení). Většinou je modul enum.so součástí základního instalačního balíku a není nutné jej instalovat odděleně. Ve výchozím nastavení je podpora ENUM vypnuta, pro její aktivaci je nutné provést v konfiguračním souboru ser.conf tyto změny: zajistit natažení modulu enum.so loadmodule /usr/local/lib/ser/modules/enum.so definovat pravidlo/pravidla pro použití ENUMu if(method== INVITE && uri= sip:\+[0-9]+@.* ) { enum_query( e164.arpa ); }; 3.2.2 OpenSER OpenSER je fork projektu SER, který vzniknul zhruba před dvěma lety. Způsob konfigurace ENUM je totožný jako u SER. 3.2.3 Yet Another Telephony Engine (YATE) YATE podporuje ENUM, nastavení se provádí v konfiguračním souboru enumroute.conf. Zde se určuje priorita ENUM dotazování (hodnoty vyjadřující prority ostatních metod lze nalézt v jejich konfiguračních souborech), DNS stromy, které mají být dotazovány a protokoly pro které má být ENUM dotazování prováděno. 2 Patch pro djbdns lze získat z http://mywebpage.netscape.com/guibv/djbdns-1.05-srvnaptr.diff
3 PODPORA ENUM V OPENSOURCE ŘEŠENÍCH 5 3.2.4 Asterisk Asterisk podporuje ENUM nejdéle ze všech opensource VoIP implementací. K práci s ENUM slouží zabudovaná funkce ENUMLOOKUP, pravidla použití ENUM se nastavují v konfiguračním souboru extensions.conf. Je zapotřebí definovat makro pro práci s ENUM a také pravidla pro používání ENUM pro tzv. kontexty 3. [macro-enumexten] exten => s, 1, Set(entrycount=${ENUMLOOKUP(+${ARG1},sip,c,e164.arpa)} counter=0) exten => s, 2, GotoIf($[ ${counter} < ${entrycount} ]?3:6) exten => s, 3, Set(counter=$[${counter}+1]) exten => s, 4, Dial(SIP/${ENUMLOOKUP(+${ARG1},sip,${counter},e164.arpa)}) exten => s, 5, GotoIf($[ ${counter} < ${entrycount} ]?3:6) exten => s, 6, NoOp( No SIP entries in e164.arpa for ${ARG1}. ) [enum] exten => _XXXXXXXXX,1,Macro(enumexten,420${EXTEN}) exten => _00X.,1,Macro(enumexten,${EXTEN:2}) exten => _XXXXXXXXXX.,1,Macro(enumexten,${EXTEN}) 3.2.5 GNU Gatekeeper (GnuGk) GnuGk podporuje ENUM od verze 2.2.4 Používání ENUM se aktivuje v konfiguračním souboru gatekeeper.ini v sekci [RoutingPolicy] pomocí proměnné default. [RoutingPolicy] default=explicit, internal, enum, dns, parent, neighbor Seznam prohledávaných DNS stromů obsahuje proměnná PWLIB_ENUM_PATH, standardně obsahuje následující stromy (v uvedeném pořadí): e164.voxgratia.net, e164.org a e164.arpa. 3 Vzorová konfigurace převzata z http://www.cs.vsb.cz/grygarek/tps/projekty/0607z/enum/enum.html
4 PRAKTICKÉ TESTY 6 4 Praktické testy 4.1 SIP Express Router (SER) 4.1.1 Topologie Server A byl nakonfigurován tak, aby pro směrování hovorů používal ENUM, na serveru B byla podpora ENUM vypnuta. Na serveru A byl registrován volající user-a, na serveru B byl registrován volaný user-b. DNS server byl nastaven jako autoritativní pro rozsah smyšlených E.164 čísel +420 111 111 110 - +420 111 111 119. Pro volaného B byl na DNS serveru zaveden NAPTR záznam na číslo +420 111 111 111. Volající vytočil toto číslo a pomocí analyzátoru sít ového provozu nainstalovaného na serveru A se ověřilo, jestli dojde k DNS dotazu a jestli je na základě DNS odpovědi provedeno správné směrování hovoru. IP: 80.251.245.5 user: user-a +420 222 222 222 R E G I S T E R Internet IP: 85.160.154.228 user: user-b +420 111 111 111 R E G I S T E R SIP server A IP:80.251.240.56 FQDN :efgh.uh.cz DNSserver SIP server B IP: 80.251.240.55 FQDN : abcd.uh.cz Obrázek 1: Testovací SIP sít 4.1.2 Použitý software SIP server A - SER 0.9.6, Debian GNU/Linux testing (lenny) SIP server B - SER 0.9.6, Debian GNU/Linux - kombinace stable a testing DNS server - BIND 9.3.4 volající A - Twinkle 1.0.1, KUbuntu 7.10 volaný B - X-Lite 3.0, Windows Vista
4 PRAKTICKÉ TESTY 7 4.1.3 Konfigurace DNS server /etc/bind/named.conf.local zone 1.1.1.1.1.1.1.1.0.2.4.e164.arpa { type master; file /etc/bind/1.1.1.1.1.1.1.1.0.2.4.db ; }; zónový soubor /etc/bind/1.1.1.1.1.1.1.1.0.2.4.db $TTL 604800 @ IN SOA abcd.uh.cz. root.abcd.uh.cz. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS abcd.uh.cz. 1 IN NAPTR 10 100 u E2U+sip!ˆ\\+(.*)$!sip:user-B@abcd.uh.cz!. 1 IN NAPTR 10 200 u E2U+h323!ˆ\\+(.*)$!h323:user-B@abcd.uh.cz!. SIP server A Do spouštěcího skriptu /etc/init.d/ser je přidána inicializace proměnné SIP DOMAIN. export SIP_DOMAIN= efgh.uh.cz Do konfiguračního souboru (nebo spíše skriptu) /etc/ser/ser.cfg jsou doplněny tyto položky 1. direktiva pro zavedení modulu enum.so loadmodule /usr/lib/ser/modules/enum.so 2. nastavení modulu enum.so pro prohledávání e164.arpa stromu modparam( enum, domain_suffix, e164.arpa. ) 3. do funkce route() je před volání lookup( aliases ) doplněno volání funkce enum query()...}; enum_query(); lookup( aliases );... Jako DNS server je nastaven v /etc/resolv.conf server 80.251.240.55.
4 PRAKTICKÉ TESTY 8 nameserver 80.251.240.55 SIP server B Je použitý výchozí konfigurační soubor /etc/ser/ser.cfg, který je součástí instalačního balíku. volající A SIP registrar a proxy: efgh.uh.cz uživatel: user-a volaný B SIP registrar a proxy: abcd.uh.cz uživatel: user-b Ve výchozím nastavení nevyžaduje SER autentizaci, proto volající A a volaný B nenastavují kromě uživatelského jméno žádné další autentizační údaje. 4.1.4 Test Následující body zachycují průběh testu doplněný o výstup z analyzátoru sít ového provozu. Pro sběr dat byl použit TShark 0.99.4, data byla následně zpracována pomocí programu Wireshark 0.99.6. Samotný test byl spuštěn až poté co proběhla úspěšná registrace volajícího i volaného. 1. Volající A vytáčí číslo +420 111 111 111 2. SIP server A zjišt uje NAPTR záznam pro 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa. Internet Protocol, Src: 80.251.240.56, Dst: 80.251.240.55 User Datagram Protocol, Src Port: 32843 (32843), Dst Port: domain (53) Domain Name System (query) Queries 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa: type NAPTR, class IN Name: 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa Type: NAPTR (Naming authority pointer) Class: IN (0x0001) 3. Od DNS serveru dostává odpověd. Internet Protocol, Src: 80.251.240.55, Dst: 80.251.240.56 User Datagram Protocol, Src Port: domain (53), Dst Port: 32843 (32843) Domain Name System (response) Queries 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa: type NAPTR, class IN Name: 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa Type: NAPTR (Naming authority pointer) Class: IN (0x0001) Answers 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa: type NAPTR, class IN, order 10, preference 200, flags u Name: 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa Type: NAPTR (Naming authority pointer)
4 PRAKTICKÉ TESTY 9 Class: IN (0x0001) Time to live: 7 days Data length: 50 Order: 10 Preference: 200 Flags length: 1 Flags: u Service length: 8 Service: E2U+h323 Regex length: 33 Regex:!ˆ\+(.*)$!h323:user-B@abcd.uh.cz! Replacement length: 0 Replacement: 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa: type NAPTR, class IN, order 10, preference 100, flags u Name: 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa Type: NAPTR (Naming authority pointer) Class: IN (0x0001) Time to live: 7 days Data length: 48 Order: 10 Preference: 100 Flags length: 1 Flags: u Service length: 7 Service: E2U+sip Regex length: 32 Regex:!ˆ\+(.*)$!sip:user-B@abcd.uh.cz! Replacement length: 0 Replacement: 4. SIP server A vybírá záznam s vyšší preferencí a dotazuje se na SRV záznam pro abcd.uh.cz. SRV záznam neexistuje, DNS server vrací negativní odpověd. SIP server A se proto dotazuje na A záznam pro abcd.uh.cz. Na tento dotaz dostává odpověd. Jsou zobrazeny jen sumární informace. Source Destination Protocol Info 80.251.240.56 80.251.240.55 DNS Standard query SRV _sip._udp.abcd.uh.cz 80.251.240.55 80.251.240.56 DNS Standard query response, No such name 80.251.240.56 80.251.240.55 DNS Standard query A abcd.uh.cz 80.251.240.55 80.251.240.56 DNS Standard query response A 80.251.240.55 5. Nyní již může server A poslat volanému B prostřednictvím serveru B zprávu IN- VITE. Internet Protocol, Src: 80.251.240.56, Dst: 80.251.240.55 User Datagram Protocol, Src Port: sip (5060), Dst Port: sip (5060) Session Initiation Protocol Request-Line: INVITE sip:user-b@abcd.uh.cz SIP/2.0 Message Header Record-Route: <sip:80.251.240.56;ftag=xhsuw;lr=on> Via: SIP/2.0/UDP 80.251.240.56;branch=z9hG4bKe726.2f5c5233.0 Via: SIP/2.0/UDP 192.168.0.136;received=80.251.245.5;rport=59645; branch=z9hg4bkcutnzhzi To: <sip:+420111111111@efgh.uh.cz> From: user-a <sip:user-a@efgh.uh.cz>;tag=xhsuw Call-ID: lystzhcuroupjsm@192.168.0.136 Contact: <sip:user-a@192.168.0.136> User-Agent: Twinkle/1.0.1
4 PRAKTICKÉ TESTY 10 6. Po úspěšném navázání spojení zazvoní telefon volaného. Volaný hovor odmítá a volajícímu se vrací zpráva 480. Jsou zobrazeny jen sumární informace. Source Destination Protocol Info 80.251.240.55 80.251.240.56 SIP Status: 100 trying 80.251.240.55 80.251.240.56 SIP Status: 180 Ringing 80.251.240.55 80.251.240.56 SIP Status: 180 Ringing 80.251.240.55 80.251.240.56 SIP Status: 180 Ringing 80.251.240.55 80.251.240.56 SIP Status: 480 Temporarily Unavailable
4 PRAKTICKÉ TESTY 11 4.2 OpenSER 4.2.1 Topologie Topologie, ve které byl testován OpenSER, je shodná s topologií pro testovaní SIP Express Routeru. 4.2.2 Použitý software SIP server A - OpenSER 1.2.2, Debian GNU/Linux testing (lenny) SIP server B - SER 0.9.6, Debian GNU/Linux - kombinace stable a testing DNS server - BIND 9.3.4 volající A - Twinkle 1.0.1, KUbuntu 7.10 volaný B - X-Lite 3.0, Windows Vista 4.2.3 Konfigurace SIP server A Konfigurace OpenSER je takřka totožná s konfigurací SIP Express Routeru. V /etc/default/openser je nastaven příznak pro automatické spouštění a uživatel, pod kterým bude OpenSER běžet. RUN_OPENSER=yes USER=openser V konfiguračním souboru /etc/openser/openserctlrc je nastavena proměnná SIP DOMAIN. SIP_DOMAIN=efgh.uh.cz Do konfiguračního souboru /etc/openser/openser.cfg jsou doplněny tyto položky 1. direktiva pro zavedení modulu enum.so loadmodule enum.so 2. nastavení modulu enum.so pro prohledávání e164.arpa stromu modparam( enum, domain_suffix, e164.arpa. ) 3. do funkce route() je před volání lookup( aliases ) doplněno volání funkce enum query()...}; enum_query(); lookup( aliases );...
4 PRAKTICKÉ TESTY 12 Jako DNS server je nastaven v /etc/resolv.conf server 80.251.240.55. ostatní Zbytek sít ových zařízení byl nakonfigurován stejně jako při testu SIP Express Routeru. 4.2.4 Test Metodika provádění testu byla shodná s metodikou použitou při testování SIP Express Routeru. Rovněž chování OpenSER v průběhu testu je shodné s chováním SIP Express Routeru.
4 PRAKTICKÉ TESTY 13 4.3 Yet Another Telephony Engine (YATE) 4.3.1 Topologie Topologie, ve které byl testován YATE server, je shodná s topologií pro testovaní SIP Express Routeru. 4.3.2 Použitý software SIP server A - YATE 1.3.0, Debian GNU/Linux testing (lenny) SIP server B - SER 0.9.6, Debian GNU/Linux - kombinace stable a testing DNS server - BIND 9.3.4 volající A - Twinkle 1.0.1, KUbuntu 7.10 volaný B - X-Lite 3.0, Windows Vista 4.3.3 Konfigurace SIP server A V /etc/default/yate jsou nastaveny startovací parametry. NO_START=0 YATE_USER= yate YATE_GROUP= yate YATE vyžaduje při registraci uživatele autentizaci, proto je v /etc/yate/regfile.conf zaveden záznam pro uživatele user-a. [user-a] password=1234 Základní nastavení pro ENUM jsou v souboru /etc/yate/enumroute.conf. Jedná se o: 1. prioritu vyhledávání podle ENUM. Nastavená hodnota 150 znamená, že podle ENUM se bude vyhledávat až když selžou všechny ostatní metody. priority=150 2. nastavení prohledávání e164.arpa stromu domains=e164.arpa 3. volba protokolů, pro které se bude provádět ENUM vyhledávání sip=yes h323=yes
4 PRAKTICKÉ TESTY 14 Zbytek konfigurace je ponechán ve výchozím nastavení. Jako DNS server je nastaven v /etc/resolv.conf server 80.251.240.55. ostatní Zbytek sít ových zařízení byl nakonfigurován stejně jako při testu SIP Express Routeru. 4.3.4 Test Metodika provádění testu byla shodná s metodikou použitou při testování SIP Express Routeru. V YATE je ve výchozím nastavení vypnuto dotazování na SRV záznam, proto je po vyhodnocení odpovědi na NAPTR dotaz rovnou odeslán dotaz na A záznam. Následuje zkrácený záznam komunikace mezi SIP serverem A a DNS serverem a následně mezi SIP servery A a B. Volaný B stejně jako v předchozích testech odmítne hovor. Source Destination Protocol Info 80.251.240.56 80.251.240.55 DNS Standard query NAPTR 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa 80.251.240.55 80.251.240.56 DNS Standard query response NAPTR 10 200 u NAPTR 10 100 u 80.251.240.56 80.251.240.55 DNS Standard query A abcd.uh.cz 80.251.240.55 80.251.240.56 DNS Standard query response A 80.251.240.55 80.251.240.56 80.251.240.55 SIP/SDP Request: INVITE sip:user-b@abcd.uh.cz 80.251.240.55 80.251.240.56 SIP Status: 100 trying 80.251.240.55 80.251.240.56 SIP Status: 180 Ringing 80.251.240.55 80.251.240.56 SIP Status: 180 Ringing 80.251.240.55 80.251.240.56 SIP Status: 480 Temporarily Unavailable
4 PRAKTICKÉ TESTY 15 4.4 Asterisk 4.4.1 Topologie Topologie, ve které byl testován Asterisk, je shodná s topologií pro testovaní SIP Express Routeru. 4.4.2 Použitý software SIP server A - Asterisk 1.4, Debian GNU/Linux testing (lenny) SIP server B - SER 0.9.6, Debian GNU/Linux - kombinace stable a testing DNS server - BIND 9.3.4 volající A - Twinkle 1.0.1, KUbuntu 7.10 volaný B - X-Lite 3.0, Windows Vista 4.4.3 Konfigurace SIP server A Startovací parametry jsou nastaveny v /etc/default/asterisk. RUNASTERISK=yes AST_REALTIME=yes Asterisk vyžaduje při registraci uživatele jeho autentizaci, proto je stejně jako u YATE nutné vytvořit záznam pro aspoň jednoho uživatele. Záznamy SIP uživatelů jsou uloženy v /etc/asterisk/sip.conf. [user-a] context=tester qualify=yes callerid=user-a canreinvite=no nat=yes username=user-a secret=1234 type=friend host=dynamic Soubor /etc/asterisk/extensions.conf obsahuje makro [macro-enumm] 4 [macro-enumm] exten => _X, 1, Set(sipcount=${ENUMLOOKUP(+${EXTEN},sip,c)} counter=0) exten => _X, 2, GotoIf($[ ${counter} < ${sipcount} ]?3:6) exten => _X, 3, Set(counter=$[${counter}+1]) exten => _X, 4, Dial(SIP/${ENUMLOOKUP(+${ARG1},sip,${counter})}) exten => _X, 5, GotoIf($[ ${counter} < ${sipcount} ]?3:6) exten => _X.,6, NoOp( No valid entries in e164.arpa for ${EXTEN} )
4 PRAKTICKÉ TESTY 16 a pravidla pro převod čísel a vyhledávání pomocí makra enumm pro kontext tester, ve kterém se nachází uživatel user-a. [tester] exten => _XXXXXXXXX,1,Macro(enumM,420${EXTEN}) exten => _00X.,1,Macro(enumM,${EXTEN:2}) exten => _XXXXXXXXXX.,1,Macro(enumM,${EXTEN}) Zbytek konfigurace je ponechán ve výchozím nastavení. Jako DNS server je nastaven v /etc/resolv.conf server 80.251.240.55. ostatní Zbytek sít ových zařízení byl nakonfigurován stejně jako při testu SIP Express Routeru. 4.4.4 Test Metodika provádění testu byla shodná s metodikou použitou při testování SIP Express Routeru. Následuje zkrácený záznam komunikace mezi SIP serverem A a DNS serverem a následně mezi SIP servery A a B. Volaný B stejně jako v předchozích testech odmítne hovor. Asterisk se ve výchozím nastavení dotazuje na SRV záznamy. Source Destination Protocol Info 80.251.240.56 80.251.240.55 DNS Standard query NAPTR 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa 80.251.240.55 80.251.240.56 DNS Standard query response NAPTR 10 200 u NAPTR 10 100 u 80.251.240.56 80.251.240.55 DNS Standard query SRV _sip._udp.abcd.uh.cz 80.251.240.55 80.251.240.56 DNS Standard query response, No such name 80.251.240.56 80.251.240.55 DNS Standard query A abcd.uh.cz 80.251.240.55 80.251.240.56 DNS Standard query response A 80.251.240.55 80.251.240.56 80.251.240.55 SIP/SDP Request: INVITE sip:user-b@abcd.uh.cz 80.251.240.55 80.251.240.56 SIP Status: 100 trying 80.251.240.55 80.251.240.56 SIP Status: 180 Ringing 80.251.240.55 80.251.240.56 SIP Status: 180 Ringing 80.251.240.55 80.251.240.56 SIP Status: 480 Temporarily Unavailable 4 Variace na konfigurace z http://www.cs.vsb.cz/grygarek/tps/projekty/0607z/enum/enum.html a z http://www.asterisk.org/doxygen/1.4/astenum.html
4 PRAKTICKÉ TESTY 17 4.5 GNU Gatekeeper (GnuGK) 4.5.1 Topologie Gatekeeper A byl nakonfigurován tak, aby pro směrování hovorů používal ENUM, na gatekeeperu B byla podpora ENUM vypnuta. Na gatekeeperu A byl registrován volající user-a s číslem +420 222 222 222, na serveru B byl registrován volaný user-b s číslem +420 111 111 111. DNS server byl nastaven jako autoritativní pro rozsah smyšlených E.164 čísel +420 111 111 110 - +420 111 111 119. Pro volaného B byl na DNS serveru zaveden NAPTR záznam na číslo +420 111 111 111. Volající vytočil toto číslo a pomocí analyzátoru sít ového provozu nainstalovaného na serveru A se ověřilo, jestli dojde k DNS dotazu a jestli je na základě DNS odpovědi provedeno správné směrování hovoru. IP: 80.251.245.5 user: user-a +420 222 222 222 R E G I S T E R Internet IP: 85.160.154.228 user: user-b +420 111 111 111 R E G I S T E R Gatekeeper A IP:80.251.240.56 FQDN :efgh.uh.cz DNSserver Gatekeeper B IP: 80.251.240.55 FQDN : abcd.uh.cz Obrázek 2: Testovací H.323 sít 4.5.2 Použitý software SIP server A - GnuGK 2.2.6, Debian GNU/Linux testing (lenny) SIP server B - GnuGK 2.2.3, Debian GNU/Linux - kombinace stable a testing DNS server - BIND 9.3.4 volající A - SJPhone 1.60.299, KUbuntu 7.10 volaný B - SJPhone 1.65.377, Windows Vista
4 PRAKTICKÉ TESTY 18 4.5.3 Konfigurace DNS server /etc/bind/named.conf.local zone 1.1.1.1.1.1.1.1.0.2.4.e164.arpa { type master; file /etc/bind/1.1.1.1.1.1.1.1.0.2.4.db ; }; zónový soubor /etc/bind/1.1.1.1.1.1.1.1.0.2.4.db $TTL 604800 @ IN SOA abcd.uh.cz. root.abcd.uh.cz. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS abcd.uh.cz. 1 IN NAPTR 10 100 u E2U+sip!ˆ\\+(.*)$!sip:user-B@abcd.uh.cz!. 1 IN NAPTR 10 200 u E2U+h323!ˆ\\+(.*)$!h323:user-B@abcd.uh.cz!. Gatekeeper A Konfigurační soubor /etc/gatekeeper.ini je upraven do následující podoby, důležitá je především direktiva default v sekci [RoutingPolicy]. [Gatekeeper::Main] FourtyTwo=42 [RoutedMode] GKRouted=1 H245Routed=1 CallSignalPort=1720 [Proxy] Enable=1 [RoutingPolicy] default=explicit,internal,enum,dns,internal,parent,neighbor Jako DNS server je nastaven v /etc/resolv.conf server 80.251.240.55. nameserver 80.251.240.55
4 PRAKTICKÉ TESTY 19 Gatekeeper B Pro gatekeeper B je použitý neupravený vzorový konfigurační soubor gatekeeper.ini, který je součástí instalačního balíku. volající A H.323 gatekeeper: efgh.uh.cz uživatel: user-a číslo: +420222222222 volaný B H.323 gatekeeper: abcd.uh.cz uživatel: user-b číslo: +420111111111 4.5.4 Test Metodika provádění testu byla shodná s metodikou použitou při testování SIP Express Routeru. Následující výpisy se zaměřují na odlišnosti v chování oproti předešlým případům. 1. Gatekeeper A zjišt uje NAPTR záznam. Proměnná PWLIB_ENUM_PATH byla ponechána ve výchozím nastavení, proto probíhá prohledávání i jiných stromů než e164.arpa. Source Destination Protocol Info 80.251.240.56 80.251.240.55 DNS Standard query NAPTR 1.1.1.1.1.1.1.1.1.0.2.4.e164.voxgratia.net 80.251.240.55 80.251.240.56 DNS Standard query response, No such name 80.251.240.56 80.251.240.55 DNS Standard query NAPTR 1.1.1.1.1.1.1.1.1.0.2.4.e164.org 80.251.240.55 80.251.240.56 DNS Standard query response, No such name 80.251.240.56 80.251.240.55 DNS Standard query NAPTR 1.1.1.1.1.1.1.1.1.0.2.4.e164.arpa 80.251.240.55 80.251.240.56 DNS Standard query response NAPTR 10 100 u NAPTR 10 200 u 2. Po zjištění A záznamu pro abcd.uh.cz se gatekeeper A spojuje s gatekeeperem B na portu 1720/tcp. V tomto spojení je vidět probíhající signalizace protokoly H.225 a H.245 (H.323 sít pracuje v routed režimu). Source Destination Protocol Info 80.251.240.56 80.251.240.55 TCP 54817 > 1720 [SYN] 80.251.240.55 80.251.240.56 TCP 1720 > 54817 [SYN, ACK] 80.251.240.56 80.251.240.55 TCP 54817 > 1720 [ACK] 80.251.240.56 80.251.240.55 H.225.0/H.245 CS: setup OpenLogicalChannel terminalcapabilityset
5 ZÁVĚR 20 5 Závěr Podpora ENUM je u všech testovaných řešení bez výjimky funkční. Je nutno zdůraznit, že testy ověřovaly jen základní funkčnost, nicméně výsledky této práce mohou posloužit jako odrazový můstek pro testování dalších, pokročilejších, konfigurací.
6 LITERATURA 21 6 Literatura [1] ALBITZ, P., LIU, C. DNS and BIND. 5th edition, O Reilly 2006. [2] FALTSTROM, P., et al. The E.164 to Uniform Resource Identifiers (URI) Dynamic Delegation Discovery System (DDDS) Application (ENUM), online, 2004 [cit. 2007-12-25]. Dokument dostupný z WWW: http://www.ietf.org/rfc/rfc3761.txt.