STReflector - odstranění problému v NAT prostředí
Reflector neboli audio proxy pro NATové prostředí
STReflector - odstranění problému v NAT prostředí
Produkt od společnosti IBM Lotus Sametime kromě posílání zpráv zprostředkovává také přenost hlasu - tak zvaný audio voice chat. Přenos hlasu může probíhat na několika úrovních, buď na úrovni klientů (hlasová komunikace nebo audio-vizuální komunikace) nebo přes server s využitím WEB konferencí.
Audio/Video Services - audio-video služby
Jak již vypovídá z názvu služeb, jedná se o služby, které se starají o přenos hlasu a videa. Vše samozřejmě záleží na vybavění, které je k dispozici (zvuková karta, mikrofon, sluchátka či kamera). Více najdete v InfoCentru.
Voice chat - "hlasový chat"
Lotus Sametime ve verzi 7.5.x poskytuje "hlasový chat" přes VoIP služby. Hlasový chat pracuje s UDP pakety (User Datagram Protocol) po UDP portech, a proto musí být tyto porty povoleny na firewallu. Proto na klientském počítači musí být povolen UDP port 20830 pro všechna audio volání, a to pro příchozí i odchozí spojení.
Voice chat může obsahovat až pět účastníků, včetně uživatele, který voice chat pořádá. Uživatel, který založí audio volání, slouží jakoby server, proto pokud komunikuje tři a více klientů, větší zatížení padne na tohoto uživatele.
Voice chat je možné provozovat dvěma způsoby:
- Přímé peer-to-peer spojení (p2p): přímé spojení mezi klienty, kteří spolu komunikují prostřednictvím UDP paketů
- Reflector spojení: UDP pakety prochází přes Audio proxy - Reflector, který je standartně instalován jako část Lotus Sametime serveru.
Pro oba způsoby musí být povolený port 20830. Z jednoho způsobu je vidět jisté omezení. P2P spojení můžeme aplikovat tam, kde není NAT - network address translation (překlad síťových adres).
NAT - network address translation
NAT neboli překlad síťových adres je funkce, která umožňuje překlad síťových adres. Pomocí "maskování" router mění IP adresy z nějakého rozsahu na svoji IP a naopak. Tyto adresy a spojení si ukládá do iptable paměti, aby věděl, kam má směřovat odpovědi na požadavky jednotlivých počítačů. Tím umožňuje, aby počítače ve vnitřní síti LAN vystupovaly na Internetu pod jedinou IP adresou. Tuto funkci podporují téměř všechna současná síťová zařízení.
NAT je jednoduchý proxy server, který může být softwarového typu (Kerio Winroute firewall) nebo hardwarového typu (router s podporou NATu).
Jak to funguje?
Klientský počítač odešle požadavek (request) na komunikaci, směrovač - router, který je umístěn mezi jím a okolím, si zapíše do tabulky IP adresu s portem, přes který budou komunikovat. Směrovač vyšle požadavek k cílovému počítači, vrátí se mu odpověď. Směrovač odpověd předá klientskému počítači.
Výhody a nevýhody
plus
- dokáže připojit několik počítačů na jednu veřejnou IP adresu - řeší se tak nedostatek přidělených veřejných IP adres
mínus
- nelze provádět komunikaci na stejném portu u dvou zařízení za překladem adres
- pouze jedno PC za překladem muže využívat plnohodnotně port, pokud je namapován
- při blokaci veřejné IP adresy dojde k blokování všech počítačů připojených přes NAT
STReflector
STReflector je audio proxy, která právě řeší problém s NAT prostředím. Je to Lotus Sametime server aplikace a slouží v případě, kdy spolu nemohou komunikovat Lotus Sametime klienti přes VoIP, protože jsou NAT prostředí.
Standartně je STReflector nainstalován spolu s Lotus Sametime serverem, je to samostatná služba, která je u výchozího nastavení zakázaná. STReflector by měl být nainstalován na jiném počítači (serveru), než je Lotus Sametime server. Je to z hlediska bezpečnosti, kdy Lotus Sametime server se umístí do bezpečné zóny a STReflector se umístí do DMZ - demilitarizované zóny.
Na obrázku je vidět, jak by mohlo vypadat umístění STReflectoru a Lotus Sametime serveru v síti. Osobně jsem zkoušel nainstalovat a zprovoznit STReflector na témže stroji jako Lotus Sametime server a fungovalo to. Z hlediska bezpečnosti to nění rozumné řešení, ale pro testovací účely to stačilo. STReflector, pokud je sprovozněn, by měl komunikovat s Lotus Sametime serverem prostřednictvím portu 1516 a s klienty po UDP/TCP portech 20830 - 20832.
Zprovoznění ST Reflectoru
STReflector tedy podporuje Sametime UIM klienty v NAT prostředí.
Postup instalace STReflectoru
(platforma Microsoft Windows)
- Zakžte Lotus Sametime server Reflector
- Ukončete Lotus Sametime server a Domino
- Přejďete do služeb Windows (do příkazového řádku zadejte: services.msc)
- Najděte v seznamu položku ST Reflector
- Vyberte vlastnosti
- Stopněte službu
- V menu typ souštění zadejte Zakázat
- Potvrďte tlačítkem OK.
- Zavřete okno služeb a spusťte Domino spolu s Lotus Sametime serverem
Ve výchozím nastavení by měl být ST Reflector zakázán, v tomto případě přejděte k postupu uvedeném níže.
Potřebné soubory
Následující soubory zkopírujte do složky Reflector, kterou si vytvoříte kdekoli. Soubory najdete v kořenovém adresáři Domina. Složku Reflector přesuňte na server, kde chcete nainstalovat ST Reflector.
- streflector.exe
- streflectorsa.jar
- sametime.ini
- stcommsrvrtk.jar
Porty
- následující UDP/TCP porty by měli být povoleny na straně Lotus Sametime serveru, ST Reflectoru a klientů
- 20830
- 20831
- 20832
- 1516
Mám za to, že 1516 je pro komunikaci mezi Lotus Sametime serverem a ST Reflectorem, 20830-20832 je pro komunikaci mezi ST Reflectorem a klientama.
- Sametime.ini na Lotus Sametime serveru upravte takto:
- VPS_TRUSTED_IPS=xx.xx.xx.xx kde xx.xx.xx.xx je IP adresa ST Reflectoru v DMZ
- Sametime.ini na Reflector serveru upravte takto:
- VPS_TRUSTED_IPS=xx.xx.xx.xx kde xx.xx.xx.xx je IP adresa Lotus Sametime serveru v bezpečné zóně
- Sametime.ini na Reflector serveru upravte takto:
- VPS_HOST=plné a platné host jméno Lotus Sametime serveru
- Restartujte Lotus Sametime server kvůli změně sametime.ini
Samotná instalace STReflectoru v DMZ
- Spusťte Lotus Sametime server - vyčkejte až se spustí všechny služby
- Otevřete příkazový řádek (start > spustit > cmd > OK)
- Na serveru, kde chcete nainstalovat STReflector, přejděte do adresáře Reflector pomocí příkazového řádku. Tento adresář jsme si vytvořili postupnými kroky, které jsou uvedeny výše.
- Do příkazového řádku v této složce zadejte následující příkaz (celý dohromady)
java –cp stcommsrvrtk.jar; streflectorsa.jar com.ibm.collaboration. realtime.multimedia.phonegrid.reflector.Launcher
Nyní můžete vyzkoušet audio volání skrze STReflector, který slouží jako audio proxy. Po tomto postup, který jsem vyzkoušel, vše fungovalo. Proto doufám, že se neshledáte s problémy.