Jak się obchodzi programowo NAT (Network Address Translation)? Zainstalowałem sobie virtualną maszynę z Windowsem XP. VM jest za NAT-em. Z VM mogę pingować na HOST-a, ale z HOST-a na VM już nie bo jest za NAT-em. Jak programowe obchodzenie NAT-u wygląda w praktyce?
Jak się obchodzi NAT?
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
możesz na routerze przekierować port na twój adres IP lub tunelować połączenie, ale wtedy musisz posiadać zewnętrzny serwer (komputer z publicznym adresem IP) np programem putty.
- Rejestracja: dni
- Ostatnio: dni
Ale jak programowo? Chcesz aby cudownie porty twojego komputera za natem były widziane z zewnątrz? Tak się nie da. Jeśli nie chcesz tunelu to musisz postawić serwer, który będzie pośrednikiem między klientami. Programowo nazywa się to aplikacja klient - serwer.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 175
Można tak: http://en.wikipedia.org/wiki/STUN
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2512
maszynaz napisał(a)
a programowo jak?
Chcesz poznać wewnętrzny adres ip hosta znajdującego się za routerem? Ty wiesz o czym mówisz czy mówimy o czym innym? Przecież router tłumaczy adres (Address Translation) na zewnętrzny i tylko ten adres znasz (pomijam tu tunelowanie i przekierowanie portów).
- Rejestracja: dni
- Ostatnio: dni
Bo w jedną stronę da się komunikować, więc można przesłać jakieś dane potrzebne do komunikacji w drugą stronę. Da się tak?
Albo tak, że jak VM wysyła wiadomość po UDP do Hosta to host automatycznie po odebraniu wiadomości (Receive) odsyła wiadomość na tym samym sockecie.
Edit:
I tak właśnie działa bo właśnie sprawdziłem.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6610
no przecież jak już nawiążesz połączenie to ono jest nawiązane. Jak jeden komp ma publiczne IP to po prostu ten za NATem musi inicjować połączenie
- Rejestracja: dni
- Ostatnio: dni
To jest opcja w VM. Zmień w ustawienie sieci w VM z NAT na Bridged.