Teorie a praxe IP telefonie 2014
Principy signalizace SIP
Lukáš [email protected]
Obchodně podnikatelská fakulta v KarvinéSlezská univerzita v Opavě
CESNET, z.s.p.o.
2
Obsah
● Historie telefonie obecně
● VoIP protokoly a jejich vývoj
● Bezpečnost
● Asterisk vs Kamailio
● Doporučení
● SIP protokol
● Závěr
3
● Spojovací systémy dělíme do generací,● 0. generace – manuální spojovací pole,
● 1. generace – ústředny na elektro-mechanické bázi,
● 2. generace – ústředny na elektro-magnetické bázi,
● 3. generace – první decentralizované použití mikroprocesorů,
● 4. generace – centralizované digitální systémy,
● 5. generace – softswitche.
Historie
4
● První pokusy s přenosem hlasu v paketových sítích již v 70.letech,
● První komerční produkt – 1995 Izraelská firma VocalTec,
● Standard H.323 definován v roce 1996 (ITU-T),
● Standard SIP definován v roce 1999 (IETF),
● V témže roce Mark Spencer zakládá f. Digium a vydává první verzi PBX Asterisk.
Historie
5
VoIP protokoly
● Na 3. vrstvě používán Internet Protocol,● O vrstvu výše zejména UDP, existují i
implementace využívající TCP,● V 5. vrstvě hraje klíčovou roli protokol RTP pro
přenos médií a protokoly H.323, SIP, MGCP, H248, IAX, SCCP v případě signalizace,
● Užitečná data pro protokol RTP na 6. vrstvě zajišťují implementace kodeků (G.711, G.729…).
●
6
VoIP protokolySCCP
● Skinny Call Control Protocol,● Proprietární řešení firmy Cisco,● Využívá několik prvků v síti, mezi nimi Call
Manager, Endpoint a případadně Gateway,● Spolupracuje s ostatními protokoly, zejména s
H.323, který zjednodušuje,● Endpoint zvládá poměrně jednoduchou
komunikaci prostřednictvím SCCP, zatímco Call Manager vyjednává v rámci H.323.
7
VoIP protokolyMGCP, H.248
● Oba protokoly jsou implementací architektury Media Gateway Control Protocol,
● Daná architektura slouží zejména k propojení IP sítí se sítěmi na bázi PSTN
● V případě implementací se někdy hovoří o tzv. PSTNoverIP, tj. jsou přenášeny standardy a zvyklosti z PSTN do VoIP,
● Využívá SDP k popisu relace a RTP k přenosu hlasových dat.
●
8
VoIP protokolyIAX
● Inter-Asterisk eXchange Protocol● Vyvinut firmou Digium pro zajištění komunikace
mezi servery Asterisk,● Není standardizován,● Přenášen v binární formě,● Data i signalizace přenášeny v jednom streamu
na jediném portu 4569,● Multiplexuje více kanálů do jednoho streamu,
čímž redukuje požadavky na signalizaci.●
9
VoIP protokolyH.323
● Rodina standardů vyvinutá v rámci ITU-T,● Vznik první verze v r. 1996, nyní verze 7,● Hlavní protokoly – H.225.0, H.245, RTP,● TCP/UDP port 1720,● Binární forma zpráv kódovaných pomocí ASN.1● Prvky v síti dělíme na:● Gatekeeper, Endpoint,● Nejpoužívanější implementace - GNUGk●
11
VoIP protokolySkype
● jedna firma● Technické detaily jsou tajné● Uzavřený protokol● Vlastněno Microsoftem● Postupná migrace na Lync
12
NGN
● Next Generation Network● Migrace všech služeb pod jednu infrastrukturu● Původní plán SS7, ATM● Dnes implementováno pomocí IMS● IMS je postavená na SIP a IP
16
VoIP ve firmě
● Asterisk– Víceprotokolový
– Funkce pobočkové ústředny
– Podpora HW karet EuroISDN
– Velká flexibilita, Mnoho forem a rozhraní
● OpenSIPs, OpenSER, Kamailio, ...– Jednoprotokolový
– Funkcionalita SIP proxy
– Výkonnější, méně používaný
17
VoIP u operátora
● Požadavky– Vysoká dostupnost (HA)
– Reference, Cena
– Modulárnost, Rozšířitelnost
– Propojitelnost s ostatními operátory
– Oddělení financí od provozu ústředny?
● Možnosti– OpenSER, OpenSIPs, Kamalio, …
– Asterisk, FreePBX
18
Bezpečnost
● Potřeba „pohlídat“ placené směry● Potřeba kvalitních hesel pro SIP● Potřeba ošetřit veřejné části● Ochrana proti SPIT● Obecná ochrana OS „pod ústřednou“● Nejlepší OS je … :)
19
BezpečnostLog z honeypotu
● sip:[email protected]:5100 972598545473● sip:[email protected]:5078 000972595341444● sip:[email protected]:5071 000972595341444● sip:[email protected]:5089 00972598545473● sip:[email protected]:5080 00972595341444● sip:[email protected]:5097 000972598545473● sip:[email protected]:5091 900972598545473● sip:[email protected]:5076 972598545473● sip:[email protected]:5080 000972595341444● sip:[email protected]:5087 900972598545473
21
BezpečnostĎábel je ukryt v detailech
● Natvrdo ukrytý login v admin interface● Nezaheslovaný telefon● Chyba v firmware telefonu● Chyba v vyhodnocování ACL● Průměrná životnost telefonu na veřejném IP?● „Náhodné“ zvonění telefonů
22
Asterisk nebo Kamailio?
● Který OS je nejepší?● Která ústředna je nejlepší?
● Asterisk je nej, protože je multiprotokolový● Kamailio je nej, protože je jednoprotokolový● Asterisk je lepší, protože je to B2BUA● Kamailio je lepší, protože je to SIP proxy
23
Prepaid vs Postpaid
● Předem placené služby většinou bezpečnější● Nedá se provolat více, než předplaceno● Mnoho operátorů používá místo antifraud● Postpaid jednodušší, dá se fakturovat následně● Ale antifraud složitější● Nutno se operátora ptát, zda antifraud má
24
Asterisk
● B2BUA● Přináší funkce pobočkové ústředny● Má plnou kontrolu nad hovorem● Každá strana hovoru si „žije vlastním životem“● Nevyužívá většinu vlastností SIPu● Využíván mnoha operátory pro jednoduchost● Nevhodný na tranzitní přenosy● Jednoduchá implementace prepaid
25
Kamailio
● Jedná se o SIP proxy se vším všudy● Výborný pro tranzit● Zvládá mnohem více hovorů● Lepší ochrana prot DoS a útokům● Jednodušší HA● Nemusí řešit média● Média může řešit rtpproxy nebo mediaproxy● Složitý prepaid● Jedna instance až pro milióny telefonních čísel (v reálném provozu)
27
High Availability
● Zdvojení serverů● Dá se řešit i na úrovni DNS (ale špatně)● Nutno řešit synchronizaci DB● Jednodušší na kamailiu● Asterisk umí Realtime, ale …● Pokud stačí reregistrace, relativně jednoduché● Složitější s prepaidem
28
Jaký HW?
● Záleží na situaci● Bez transkodingu může asterisk běžet na
Asus WL-500g (32MB RAM, 8MB Flash)● Není nutné předimenzovávat● Samotný softswitch není náročný na CPU● Vhodnými technikami se dá zátěž omezit● Nutná znalost sítě
29
Embeding
● Technika pro „zapouzdření“ Linuxu do rozmanitých zařízení
● Pokud je dokumentace k HW, jde relativně vše● Standardní Linux distribuce k tomu nevhodné● OpenWrt● BeeSip
30
BeeSip
● Bright Efficient Embedded Solution for IP Telephony
● http://besip.cesnet.cz● “Be SIP”● Build system nad OpenWRT buildroot● Spojujeme balíky dohromady● Kamailio, Asterisk, Rtpproxy, Mediaproxy, …
31
Asterisk everywhere
● Součást OpenWrt i Beesipu● Pokud máte OpenWrt kompatibilní HW, huráá!● Hodně druhů HW od malých krabiček až po
výkonnější● BeeSip může běžet i jako virtual (VmWare,
VirtualBox, Kvm, …)
32
Kamailio everywhere
● Součást OpenWrt i BeeSipu● V základu mnohem méně náročnější než
Asterisk● Složitější konfigurace● V rámci BeeSipu se snažíme zjednodušit
33
SIP teorie
● Session Initiation Protocol,
● RFC 2543 (SIP 1.0 1999), RFC 3261 (SIP 2.0 2002)
● Protokol zajišťující signalizace při vytváření, udržování a rozpadu spojení,
● Textový protokol s kořeny v HTTP a SMTP,
● Velmi jednoduchý,
● Řada nástaveb – RFC 3264 (SDP), RFC 3265 (SUBSCRIBE, NOTIFY)…,
● Výhradní protokol pro hlasovou komunikaci v NGN.
35
SIP teorie
● Textový formát● Obvykle jeden UDP paket● Zpráva se může ztratit, SIP s tím počítá● Dva základní druhy: požadavky (request) a● Odpovědi (response)
36
SIP teorieTerminologie
● Koncové zařízení z hlediska protokolu SIP je UserAgent (UA).
● V rámci transakce (požadavek-odpověď) UA bud’ roli klienta (UAC), nebo roli serveru (UAS). UA může být najednou obojí.
● Mezilehlá zařízení jsou SIP Proxy. Slouží k směrování a přeposílání zpráv. Podobně jako routery v IP sítích.
37
SIP teorie
● K zajištění hovoru SIP využívá dalších protokolů, zejména pak:
● SDP – Session Description Protocol,
● RTP – Real-time Transport Protocol,
● V síti rozeznáváme prvky:
● UA – User Agent,
● SIP Server (registrar, proxy, redirect),
● B2BUA,
● Nejznámější implementace – Asterisk, OpenSIPS, Kamailio
38
SIP teorieSIP uri
● Sip:[email protected]● Sips:[email protected]● Sip:[email protected]● „Rozpor“ v routování (čísla vs. Domény)● User part v rámci SIP proxy● Domain part zajišťuje DNS● User part v režii správce, domain part správce
domén (podobně jako email)
39
SIP teoriemetody
● Metody=žádosti,
● V RFC 3261 definováno 6 metod:
● REGISTER,
● INVITE,
● ACK,
● CANCEL,
● BYE,
● OPTIONS,
● Dále definovány např. PRACK, SUBSCRIBE, NOTIFY
41
SIP teorieOdpovědi
● Obdoba HTTP,
● 6 tříd odpovědí:
● 1XX – provizorní odpovědi,
● 2XX – finální úspěšné odpovědi,
● 3XX – odpovědi odkazující na jinou lokaci volaného,
● 4XX – indikují chybu na straně klienta,
● 5XX – indikují chybu na straně serveru,
● 6XX – globální chyby.
43
SIP teorietransakce
● A transaction is a sequence of SIP messages exchanged between SIP network elements. A transaction consists of one request and all responses to that request. That includes zero or more provisional responses and one or more final
● responses (remember that an INVITE might be answered by more than one final response when a proxy server forks the request).
● If a transaction was initiated by an INVITE request then the same transaction also includes ACK, but only if the final response was not a 2xx response. If the final response was a 2xx response then the ACK is not considered part of the transaction.
45
SIP teorieregistrace
● Telefon sděluje ústředně svoji adresu● Nutnost pro příchozí hovory● SIPové telefony (UA) jsou v podstatě mobilní● Pro registraci je obvykle nutné použít autorizaci● Location table (přepis „hezkých“ url na
„škaredé“)● [email protected] Na [email protected]:5066
46
SIP teorieRegistrar a Proxy
● Registrar udržuje informace o klientech v location table
● Proxy směruje hovory● Mohou a nemusí být v rámci jedné SW
implementace● Ve většině případů na jednom místě● Pro funkční NAT musí být na jednom místě
47
SIP teorieMultiple registrations
● Registrar si pro každého uživatele může udržovat více kontaktů
● SIP Proxy může zprávu INVITE rozmnožit a
poslat ji na více telefonů● Na jednom účtu může být registrováno více
telefonů (ne ve všech implementacích)● Jedno volání může navázat více hovorů!
50
SIP teorieProxy
● Telefon potřebuje server se stálou (a hezkou)
adresou, který mu předává hovory
● Terminologie: SIP Proxy
● Typickým příkladem SIP Proxy je Kamailio
● Stejnou úlohu může sehrát i B2BUA, pak se vlastnosti SIPu moc nevyužívají
53
SIP teorieNAPTR
● Slouží klientovi pro výběr nejvhodnějšího transportního protokolu dle domény
● IN NAPTR order preference Flags Service
● Flags
– SIP+D2T – TCP
– SIP+D2U – UDP
– SIPS+D2T – TLS
– E2U+SIP – Převod čísla na SIP uri (ENUM)
● Service
– „S“ - dohledání SRV záznamu
– „U“ - výstup je URI
54
SIP teorieSRV
● Slouží k dohledání konkrétních SIP serverů pro daný transportní protokol. Pokud je shodný weight, může sloužit pro load balancing.
● _service SRV weight port host
● _sip._udp SRV 0 5060 somehost.somedomain.
● _sip._tcp SRV 0 5060 somehost.somedomain.
● _sips._tcp SRV 0 5061 somehost.somedomain.
55
SIP teorieNAPTR,SRV
● $ORIGIN example.com.
● IN NAPTR 100 10 "S" "SIP+D2U" "" \_sip._udp.example.com.
● IN NAPTR 102 10 "S" "SIP+D2T" "" \ _sip._tcp.example.com.
● IN NAPTR 100 10 "U" "E2U+sip" \ "!^(.*)$!sip:[email protected]!"
● _sip._tcp.example.com. 86400 \ IN SRV 0 5060 sipserver.example.com.
● http://en.wikipedia.org/wiki/SRV_record
● http://en.wikipedia.org/wiki/NAPTR_record
56
SIP teorieTLS
● Bezpečná „obálka“ pro signalizační data● Nutno důvěřovat všem proxy po cestě● Klíče k šifrování SRTP se přenášejí v signalizaci● Aby mohla proxy směrovat, musí umět zprávu rozbalit ● Výhodné pro bezpečnou registraci klientů● Slabá implementace v zařízeních● TLS nešifruje hovory, pouze signalizaci● Pro bezpečné šifrování leda ZRTP (Diffie-Hellman)● ZRTP používá SAS (vizuální kontrola klíče) proti MitM
57
SIP teorieSDP
● Session Description Protocol● Výměna kodeků● Media description (if present)
m= (media name and transport address)i=* (media title or information field)c=* (connection information — optional if included at session level)b=* (zero or more bandwidth information lines)k=* (encryption key)a=* (zero or more media attribute lines — overriding the Session attribute lines)
58
SIP teorieSDP
● v=0● o=root 1821 1821 IN IP4 1.2.3.4● s=session● c=IN IP4 10.10.1.99● t=0 0● m=audio 11424 RTP/AVP 0 8 101● a=rtpmap:0 PCMU/8000● a=rtpmap:8 PCMA/8000● a=rtpmap:101 telephone-event/8000● a=fmtp:101 0-16● a=silenceSupp:off - - - -● a=ptime:20● a=sendrecv
59
SIP teorieRTP
● Real-time Transport Protocol,
● RFC 1889 (1996), RFC 3550 (2003),
● Slouží k přenosu médií přes IP sítě,
● Doplňuje UDP o funkce opětovného řazení paketů, detekci ztracených paketů…
● Klíčová pole:
– SSRC,
– Sequence number,
– Timestamp,
– Payload type.
60
SIP teoriekodek
● Kodek=kodér a dekodér,● Možné problémy s licencí● 3 základní skupiny:
– Kodéry vlny (waveform coding),
– Kodéry parametrů zdroje zvuku (Source coding),
– Hybridní kodéry,
● Hlavními parametry kodeků jsou:– Bitová rychlost,
– Kvalita hovorových dat.
61
SIP teoriekodeky
● Některé kodeky:– G.711 ulaw (USA) - (64 Kbps).
– G.711 alaw (Europe) - (64 Kbps).
– G.722 (širokopásmový kodek) – (64 Kbps).
– G.723.1 – nutná licence
– G.726 - (16/24/32/40kbps)
– G.729 – nutná licence (8Kbps)
– GSM - (12-13 Kbps)
– iLBC - (15 Kbps)
– LPC10 - (2.5 Kbps)
– Speex - (2.15-44.2 Kbps)
62
SIP teorieMetoda INVITE
● Příklad
INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhdsMax-Forwards: 70To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: [email protected]: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 142
65
SIP teorieHlavička Route
● UAC může do zprávy přidat Route hlavičku a vynutit si směrování.
● V Route hlavičce může být více záznamů, záleží na pořadí
● SIP proxy směruje na základě těchto hlaviček● Pokud je seznam prázdný, směruje se podle
RURI
66
SIP teorieHlavička Via
● Via vkládá každý po cestě● Udává tím, kudy směrovat odpovědi● Druhá strana zkopíruje Via hlavičky do
odpovědi a pošle zpět
67
Hlavička Via
SIP/2.0 200 OKFrom: "Jana" <sip:[email protected]>;tag=psvzTo: "Petr" <sip:[email protected]>;tag=bflmVia: SIP/2.0/UDP 3.3.3.3:5060;branch=z9hG4bKzVia: SIP/2.0/UDP 2.2.2.2:5060;branch=z9hG4bKyVia: SIP/2.0/UDP 1.1.1.1:5060;branch=z9hG4bKxCall-ID: 5b063520
68
SIP teorieHlavička Record-Route
● Slouží k popisu cesty při navázání dialogu● Každý prvek po cestě přidá svou adresu● Na konci se zkopírují do odpovědi a putují zpět● Record-Route slouží k záznamu směrování● Route slouží k směrování● Via slouží k směrování odpovědí
69
Www.in2eps.com
● Pro pochopení SIP routingu● http://www.in2eps.com/fo-sip/tk-fo-sip-dialog.ht
ml● Všechny možné scénáře včetně hlaviček
74
SIP teoriemetoda REGISTER
REGISTER sip:slu.cz SIP/2.0To: "Limo" <sip:[email protected]>From: "Limo" <sip:[email protected]>;tag=484dCall-ID: Acu1Ey1mMax-Forwards: 70Expires: 3600CSeq: 2855 REGISTERContact: <sip:[email protected]:15060>Via: SIP/2.0/UDP 1.2.3.4:5060;branch=z9hG4bKxContent-Length: 0
75
SIP teorieNAT
● Problém● IP je obsaženo na více místech ve zprávě● Je i v SDP● Je nutno „opravit“● Neexistuje cesta mezi endpointy
76
SIP teorieNAT
● Obecně nekombinovat NAT traverzaly● Buďto ponechat na ústředně nebo na telefonu● Nikdo nemůže garantovat, že to projde● Nejlepší řešení je proxy na hraně sítě
77
Závěr
● Dotazy
● Lukáš Macura ● Slezská univerzita v Opavě, OPF Karviná● CESNET, z.s.p.o.● [email protected]
Top Related