www.label.pl | LAB-EL Elektronika Laboratoryjna
Elektronika Laboratoryjna

Strona pochodzi z pomocy programu LBX do nadzoru klimatu - temperatury, wilgotności, co2, wiatru, ...
Producent urządzeń (termometry, higrometry, barometry, mierniki, rejestratory) oraz oprogramowania do monitoringu parametrów klimatu.

Do pobrania: Program LBX

lbx proxy

Serwer proxy to składnik systemu który pozwala na nawiązanie komunikacji z serwerem przez klienta w wypadku gdy serwer nie ma statycznego adresu IP (w przypadku gdy serwer działa na łączu z dynamicznym przydziałem adresów, jak np. Neostrada).

Logika działania jest następująca: serwer proxy to osobny program, który jest na stałe uruchomiony na komputerze o stałym adresie IP, ogólnie dostępnym przez cały czas.
Serwer lbx który działa na zmiennym adresie IP jest odpowiednio skonfigurowany do anonsowania swojej obecności przez serwer proxy - serwer lbx okresowo wysyła swoje zgłoszenie do proxy, które na podstawie danych ze zgłoszenia zna aktualny adres serwera. Zgłoszenia przesyłane są na tyle często żeby zmiana adresu serwera została dostrzeżona bez nadmiernej zwłoki (aktualnie co 1 minutę). Proxy pamięta dane o serwerze dopóki będzie dostawać odpowiednio częste zgłoszenia aktualizacyjne. Jeżeli nastąpi przerwa w zgłoszeniach, proxy usuwa ze swojej pamięci dane o tym serwerze (aktualnie po 2 minutach bez zgłoszenia).
Klient który chce się połączyć z serwerem nie znając jego adresu IP jest odpowiednio skonfigurowany tak, że łączy się najpierw z proxy zapytując o aktualny adres danego serwera z którym chciałby się połączyć. Jeżeli proxy zna adres danego serwera, odpowiada klientowi przesyłając odpowiednie informacje. Klient następnie łączy się już bezpośrednio z serwerem lbx pod zadanym adresem, bez dalszego pośrednictwa proxy. Jeżeli proxy nie zna adresu serwera o który pyta klient, informuje go o tym fakcie.

Autoryzacja zapytań

Serwer proxy może obsługiwać dowolną ilość serwerów i klientów lbx. Serwer zgłaszając się do proxy podaje nazwę swojemu serwerowi LBX oraz dodatkowe hasło dostępu. Klient pytając proxy o serwer musi podać nazwę serwera LBX oraz ustalone hasło. Teoretycznie jako klucz dostępowy mogłaby wystarczyć sama nazwa serwera, gdyż powinna być ona unikalna dla każdego serwera. Jednak aby zabezpieczyć przed uzyskaniem informacji o serwerze przez nieuprawnionego klienta jest dodatkowe hasło, gdyż nazwy serwera mogą być dość oczywiste i łatwe do odgadnięcia - można co prawda nadać je w postaci trudnej do odgadnięcia, ale jest to bezcelowe, nazwa serwera ma być przede wszystkim opisowa i identyfikacyjna. To hasło zabezpiecza przed uzyskaniem samego adresu serwera - znając adres serwera trzeba jeszcze przejść etap autoryzacji samego użytkownika.

Niezawodność

Pojedyńczy serwer proxy jest punktem systemu podatnym na awarię. W celu zapewnienia większej niezawodności system potrafi korzystać z dowolnej ilości proxy - w konfiguracji serwera lbx można podać dowolną ilość proxy, do których serwer zgłosi okresowo swoją obecność. Podobnie klient może zostać poinstruowany do skorzystania z dowolnej ilości serwerów proxy w celu uzyskania informacji o serwerze - odpytywane są one kolejno, aż któryś odpowie. Jeżeli z danym serwerem proxy nie uda się nawiązać połączenia (problem w komunikacji klient-proxy), lub nie wie on nic o zadanym serwerze lbx (problem w komunikacji serwer-proxy), to jest on pomijany i odpytywane jest następne proxy. Może się zdarzyć że żadne z proxy nie wie nic o serwerze o który pyta klient - jest to poprawna sytuacja w przypadku gdy np. serwer lbx nie działa.

Skalowalność

System do wysyłania zgłoszeń przez serwery lbx korzysta z protokołu UDP. Protokół ten nie wymaga nawiązania połączenia z proxy, nie powodując tym samym intensywnego obciążenia proxy dużą ilością jednoczesnych połączeń od serwerów, w przypadku gdyby ich ilość była znacząca. Proxy zbiera z jednego portu UDP wszystkie spływające do niego asynchronicznie zgłoszenia od serwerów. Zapytania od klientów realizowane są w postaci połączenia TCP - jest ono znacznie bardziej angażujące dla klienta i proxy, ale natura systemu jest taka że takie zapytania odbywają się rzadko, tylko w momencie nawiązywania połączenia klienta z serwerem. Połączenie z proxy trwa krótko - krótkie zapytanie i krótka odpowiedź. W tym wypadku zaletą protokołu TCP jest niezawodność połączenia, która jest wymagana dla dalszych decyzji klienta, nie zagraża tutaj zalanie proxy nadmierną ilością jednoczesnych połączeń od klientów. W przypadku istotnego obciążenia danego proxy istnieje możliwość podziału systemu na mniejsze niezależne części - rozdzielając obsługiwane serwery lbx pomiędzy kilka osobnych i niezależnych proxy, konfigurując oczywiście zarówno serwery lbx jak i klientów w odpowiedni sposób - podając właściwe adresy proxy.
Daje to również możliwość uruchomienia osobnych dedykowanych serwerów proxy do indywidualnych zastosowań, obsługujących tylko wybrane serwery - dla celów zamkniętych systemów.

Translacja adresów i przekierowanie portów

W przypadku serwera lbx który działa w lokalnej sieci w której używana jest translacja adresów (NAT, masquerading), nie jest on bezpośrednio dostępny z zewnątrz. Komunikacja ze światem zewnętrznym następuje przez bramkę/router brzegowy, który ma publiczny adres IP. W takim wypadku aby zapewnić dostęp do serwera działającego w wewnętrznej sieci, należy na bramce dokonać przekierowania wybranego portu na serwer działający na niepublicznym adresie IP. Sposób konfiguracji takiego przekierowania jest zależny od systemu działającego na bramce.
Przekierowanie portu może używać tego samego numeru portu co serwer lbx, ale może używać także dowolnie innego numeru, zależnie od stworzonej konfiguracji. Jeżeli numer portu jest taki sam, to nie ma tu żadnego problemu, serwer lbx anonsuje do proxy swój numer portu, a skoro na bramce przekierowanie jest zrobione z tego samego numeru portu to ten numer pozostaje właściwy. Jeśli jednak na bramce przekierowany port ma inny numer, to serwer lbx musi zaanonsować właściwy numer portu na bramce. Nie ma on żadnej świadomości tego numeru, w takim wypadku należy w konfiguracji serwera lbx podać numer tego portu, który podlega przekierowani na bramce. Istnieje do tego celu specjalna opcja w konfiguracji serwera.

Konfiguracja serwera

Konfiguracji serwera dokonuje się w konfiguracji serwera na zakładce serwer. Włączyć należy oczywiście zdalny dostęp do serwera, co jest warunkiem koniecznym na umożliwienie połączenia się z serwerem przez zdalnych klientów.
Następnie należy włączyć opcję anonsowania swojej obecności do proxy. Do listy proxy należy dodać odpowiednie adresy (DNS lub IP), w ilości odpowiedniej dla systemu - przynajmniej jeden. Opcjonalnie można podać hasło dostępu, które pozwoli uzyskać informacje o tym serwerze tylko wybranym klientom, dla większego bezpieczeństwa systemu (jest jeszcze osobny etap autoryzacji użytkownika). W przypadku bramki/routera z translacją adresów i używania przekierowania portów TCP, jeżeli numer zewnętrznego portu jest inny niż port serwera należy podać właściwy numer portu na bramce.

Konfiguracja klienta

Konfiguracja klienta dla połączenia z serwerem za pośrednictwem proxy jest podobna do konfiguracji ze stałym adresem IP - należy dodać w menu konfiguracja - właściwy serwer, wybierając jako sposób połączenia "proxy". Następnie należy podać następujące dane:
- adres proxy: adres DNS lub IP, jeżeli jest potrzeba podania kilku adresów proxy to należy je wymienić kolejno rozdzielając przecinkami (bez spacji)
- nazwa serwera: ta nazwa musi odpowiadać nazwie skonfigurowanej na serwerze lbx
- hasło: opcjonalnie hasło dla proxy ustawione na serwerze lbx

Nawiązywanie połączenia z serwerem przez proxy odbywa się za pomocą identycznych mechanizmów jak z kazdym innym serwerem - opcje połącz i rozłącz w menu serwera. W tym procesie pojawi się dodatkowy etap odpytywania proxy, który nie wymaga już żadnej dodatkowej ingerencji.