Dwaj użytkownicy za NATem, wykorzystanie pośrednika

0

Załóżmy, że jest trzech użytkowników: Adam, Kamil i Wiktor. Wszyscy używają Windows XP.

Adam i Kamil są za NATem (różne sieci). Wiktor jest bezpośrednio widziany z internetu (ma publiczny IP).

Każdy użytkownik zna adresy IP pozostałych, przy czym w przypadku adresu Adama i Kamila jest to adres IP routera, który stwarza sieć prywatnych adresów IP i przez ten router przechodzi ruch z i do internetu.

Załóżmy, że na routerach nie są skonfigurowane żadne przekierowania i nikt nic nie będzie w nich majstrował.

Teoretycznie jest tak, że jak Kamil lub Adam uruchomi serwer (nieważne jaki), to nikt się do niego nie dostanie, bo ci są za NATem. Natomiast, jeżeli Wiktor uruchomi serwer, to każdy internauta znający adres IP Wiktora ma dostęp do tego serwera.

Chodzi mi o to, czy jest uniwersalny program, który pozwala zrobić rzecz następujacą:
Załóżmy, że Adam stawia serwer Apache na swoim komputerze, a Kamil chce obejrzeć stronę z serwera Adama. Podając adres IP routera Adama nie obejrzy strony, a podawanie prywatnego IP Adama w ramach sieci wewnętrznej mija się z sensem.

Chodzi o to, że połączenie można by skonfigurować w następujący sposób:

  1. Wiktor uruchamia specjalny program-serwer
  2. Adam wywołuje program-klient i podaje adres IP Wiktora
  3. Połączenie Adama i Wiktora zostaje nawiązane
  4. Kamil nie używa dodatkowego specjalistycznego oprogramowania
  5. Kamil w przeglądarce wpisuje adres Wiktora
  6. Program uruchomiony u Wiktora spowoduje przekierowanie pakietów do Adama i w drugą stronę
  7. U Kamila skutek wpisania adresu Wiktora jest identyczny jak połączenie sie z Adamem, gdyby Adam nie był za NATem.

Chcę się zapytać, czy istnieje uniwersalny program, który na to pozwala. Wiem, że autor programu LapLink utrzymywał specjalny serwer-pośrednik (nie wiem, czy utrzymuje do dzisiaj), a w programie LapLink zaimplementowano mniej więcej ten mechanizm. Tylko, że z innym programem jest nie do wykorzystania.

A mi chodzi o uniwersalny program tego typu, że obojętnie, czy serwer WWW, czy mediów strumieniowych, czy FTP, czy coś jeszcze innego, chodzi mi o zrealizowanie podobnego mechanizmu.

0

na udp jeszcze jeszcze sie to uda jesli masz 3-ci jakikolwiek host z publicznym ip - poczytaj jak robi to skype (zreszta chyba to bylo juz tez na forum)

tcp: na routerze stawiasz albo tunel (szyfrowany, nieszyfrowany,vpn - obojetnie) albo przekierowanie portow
na kompie za natem stawisz klienta vpn do serwera, ale wtedy jedynie serwer vpn bedzie mogl sie laczyc bezposrednio, albo stanie sie nastepnym routerem kierujacym ruch do serwera.

0
flabra napisał(a)

na udp jeszcze jeszcze sie to uda jesli masz 3-ci jakikolwiek host z publicznym ip - poczytaj jak robi to skype (zreszta chyba to bylo juz tez na forum)

Było, kilka razy o tym pisałem. Poza tym wystarczy przeczytać jak routuje się UDP :)

Co do gotowych rozwiązań, to jest jeszcze hamachi.

0

Nawiązując do powyższego przykładu, rozumiem, że chodzi o skonfigurowanie tunelu między Adamem a Wiktorem, przy czym Wiktor zainicjuje tunel, a Adam u siebie w programie poda adres Wiktora i tunel będzie. A potem Kamil jak poda adres Wiktora, to program działający na komputerze Wiktora automatycznie przekierowałby otrzymywane pakiety prosto do tunelu i odwrotnie, czyli pakiety wychodzące z tunelu, kierowane do Kamila, byłyby od razu przekazywane.

Zakłada się, że w samych routerach nikt nie będzie nic zmieniać, tylko chodzi o to, że całe polączenie ma być zrealizowane wykorzystując pewne oprogramowanie na samych komputerach.

1 użytkowników online, w tym zalogowanych: 0, gości: 1