Czy możesz przekierować ten sam port # na 2 różne wewnętrzne adresy IP?

14

Jeśli mogę przekierować port 80 UDP na komputerze, czy mogę uzyskać dostęp do portu 80 z drugiego laptopa?

Octocat
źródło
1
Nie; Gdy przekierowujesz port, wysyłasz cały ruch na jeden adres. Jeśli potrzebujesz 2 urządzeń do odbioru danych przez ten sam port, musisz przekazać je do jednego urządzenia, które łączy te 2 dodatkowe urządzenia z siecią (na przykład inny router).
Ramhound
1
Port 8080 może być bezpiecznie używany jako alternatywa dla 80 w systemie wtórnym. Więc przekaż 80 na PC i 8080 na notebook, jeśli tego potrzebujesz.
Overmind,
Piszesz: „Jeśli mogę przekierować port 80 UDP na moim komputerze, czy mogę uzyskać dostęp do portu 80 z mojego drugiego laptopa?” <--- Cóż, oczywiście inaczej, jaki jest sens przepychania portów.
barlop,
AT Ramhound Naprawdę, ok, więc dlaczego nie wyjaśnisz, jak byś to zrobił?
barlop
1
Polecam zaakceptować odpowiedź VL-80. Jego odpowiedź jest bardzo dobra. Odpowiada to, co rzeczywiście asked-- nikt nie może mówić, jak to odpowiada co oznaczało zapytać.
David Betz

Odpowiedzi:

14

Zadajesz tutaj dwa różne pytania.

Czy możesz przekierować ten sam port # na 2 różne wewnętrzne adresy IP?

Nie. Pomyśl o tym. Jeśli pakiet dotrze na twój zewnętrzny adres i port UDP 80 (zakładając, że masz tylko jeden zewnętrzny adres IP), w jaki sposób router wiedziałby, do którego z dwóch wewnętrznych adresów IP powinien zostać przekazany?

Jeśli chcesz obsługiwać dwie różne usługi, potrzebujesz osobnego portu dla każdej z nich.

Jeśli mogę przekierować port 80 UDP na komputerze, czy mogę uzyskać dostęp do portu 80 z drugiego laptopa?

Tak. Przekierowanie portów ogólnie wpływa tylko na pakiety, które mają port 80 po twojej stronie. Gdy ktoś spróbuje się z tobą połączyć, router zobaczy:

  • pakiet przychodzący z losowego portu X innego komputera do twojego portu 80
  • odpowiedź wychodząca z portu 80 na port X innej osoby

Ale połączenia wychodzące (kiedy ty odwiedzić stronę internetową gdzie indziej) będzie ona odwrócona z punktu widzenia routera.

  • pakiet wychodzący z losowego portu X do portu 80 drugiego komputera (serwera WWW)
  • przychodząca odpowiedź z drugiego portu 80 na twój port X.

Przekierowanie portów w ogóle ich nie wpłynie.

(Nawiasem mówiąc, HTTP zazwyczaj działa na TCP . Tylko eksperymenty Chrome QUIC używają UDP).

użytkownik1686
źródło
Odp. „Do którego z dwóch wewnętrznych adresów IP należy go przekierować ”, dlaczego nie wysłać do serwera 192.168.1.100 i serwera 192.168.1.101?
Pacerier
1
@Pacerier: Co zrobi klient, gdy otrzyma dwie całkowicie różne odpowiedzi? Nie utworzy automatycznie dwóch połączeń, gdy program zażądał tylko jednego. W najlepszym wypadku zaakceptuje jeden pakiet odpowiedzi i odrzuci drugi, co jest bezużyteczne, ponieważ nie możesz powiedzieć mu, który serwer chciałeś ... chyba że .100 i .101 zapewniają dokładnie te same usługi (równoważenie obciążenia). W najgorszym przypadku druga odpowiedź nawet uniemożliwi zakończenie pierwszej próby połączenia (np. Jeśli drugi serwer będzie nadal odbierał pakiety przeznaczone dla pierwszego, będzie nadal odpowiadał z TCP RST)
użytkownik1686,
1
@Pacerier: Tak więc, w konkretnym przypadku równoważenia obciążenia (z prawie identycznymi serwerami), można to zrobić - patrz odpowiedź VL-80 poniżej, aby uzyskać więcej szczegółów. W rzeczywistości istnieją programy równoważące obciążenie, które duplikują początkowy pakiet i używają serwera, który najszybciej odpowiedział. Ale jeśli chciałbyś w ten sposób obsługiwać dwie różne witryny, nie działałoby to, ponieważ przeglądarka nie wysyła nazwy hosta witryny, dopóki długo nie zostanie nawiązane połączenie TCP.
user1686
4

Czy możesz przekierować ten sam port # na 2 różne wewnętrzne adresy IP?

Tak, możesz to absolutnie zrobić za pomocą UDP i do pewnego stopnia za pomocą TCP .

Ponieważ UDP jest bezpołączeniowym protokołem bezstanowym, możesz nasłuchiwać określonego portu, a po przybyciu pakietu możesz go skopiować i wysłać do dwóch różnych miejsc docelowych. Ponieważ nie ma uścisków dłoni ani śledzenia stanu, wszystkie miejsca docelowe będą mogły pomyślnie odebrać te pakiety. Samplicator to jeden z programów, który może to dla Ciebie zrobić. Należy pamiętać, że zgodnie z definicją nie jest to wyłącznie przekazywanie portów.

Jest to możliwe w przypadku protokołu TCP , ale z pewnymi ograniczeniami - możesz nasłuchiwać określonego portu, a gdy pakiet dotrze, możesz przekazać go do określonego hosta wewnętrznego w puli. TCP używa połączeń, więc po przesłaniu początkowego pakietu do określonego hosta wewnętrznego konieczne jest teraz przekazanie pozostałej części pakietów w tej sesji do tego samego hosta wewnętrznego.

Korzystając z tej technologii, możesz mieć wiele serwerów zaplecza obsługujących żądania do jednego zewnętrznego miejsca docelowego.

Jeśli mogę przekierować port 80 UDP na komputerze, czy mogę uzyskać dostęp do portu 80 z drugiego laptopa?

To pytanie jest trochę niejasne. Jeśli przekierujesz ruch z adresu zewnętrznego do jednego z hostów wewnętrznych, sam ten fakt nie uniemożliwi ci dostępu do tego samego portu z sieci wewnętrznej.

Powiedzmy, że przekierowujesz port 80 z Ana B. W tym samym czasie Cbędzie można uzyskać bezpośredni dostęp do portu 80 Bbez żadnych problemów.

     A (external IP)
     |
 ---------
 |       |
 B       C
VL-80
źródło
2
Pytanie dotyczy routerów. Żadne routery klasy konsumenckiej nie mają opisanych przez ciebie funkcji równoważenia obciążenia kopiowania / TCP UDP, a żadna z tych funkcji nie jest nigdy nazywana „przekierowaniem portów”.
Jason C
4
1) Pytanie nie precyzuje, że musi to być sprzęt na poziomie konsumenta. 2) Niezależnie od tego, jak napisałeś technikę, którą opisałem, działa.
VL-80,
2
Żaden router na poziomie profesjonalnym również nie miałby tych funkcji, chyba że pakiet zawiera więcej niż tylko router. To nie jest przekierowywanie portów, a routery nie wykonują tych funkcji. Pytanie dotyczyło „przekierowania portów” i oznaczono je jako router . Pomyśl o ludziach, którzy mieliby to samo pytanie, znajdź je i przeczytaj swoją odpowiedź, i zastanów się, czy pomagasz, czy dezorientujesz. Twoja terminologia i tak jest zła.
Jason C
Piszesz: „Jest to możliwe w przypadku protokołu TCP, ....... po przesłaniu początkowego pakietu do określonego hosta wewnętrznego konieczne jest teraz przekazanie reszty pakietów w tej sesji do tego samego hosta wewnętrznego”. <--- Więc jak to możliwe z TCP? Wspominasz o samplicatorze dla UDP, ok .. aby skopiować go do UDP. Ale co sugerujesz dla TCP?
barlop
4
Ta odpowiedź jest dobra. Już miałem powiedzieć coś podobnego. W przypadku UDP na tym właśnie polega multicast i IGMP. TCP, tak, roundrobin, failover itp. Tak, routery potrafią to zrobić - dzisiejsze routery nie są urządzeniami niewidomymi z lat 90. Pytanie jest na tyle niejasne, że pozwala na wielokrotne odczyty, ale tak też czytam pytanie.
David Betz
1

Nie możesz przekierować tego samego portu do wielu adresów IP jednocześnie, nawet nie widziałem przełącznika routera / zarządzanego, który pozwoli ci to zrobić bez odesłania msg błędu konfiguracji. Możesz skonfigurować tę opcję dla wielu adresów IP, ale jednocześnie można włączyć tylko jedną z reguł przekazywania. Możesz więc wyłączyć jedną opcję drugą i odwrotnie, ale to marnotrawstwo. Musisz martwić się o przekierowanie portów, jeśli chcesz uzyskać dostęp do określonych portów / usług na komputerze LAN za pośrednictwem zewnętrznego adresu IP. Powiedz, że jeśli chcesz uruchomić 2 serwery sieciowe na 2 komputerach w sieci LAN i mieć dostęp do obu z nich przez cały czas, najłatwiejszym sposobem jest zmiana portów usług, jeden nasłuch na porcie 80, a drugi na 8080 lub żądany port. 99% usług pozwoli Ci hostować / nasłuchiwać na dowolnym porcie, który chcesz. Jeśli nie określisz portu, nastąpi powrót do domyślnej usługi. Istnieją inne bardziej zaawansowane sposoby robienia rzeczy, ale jest to najprostszy sposób, a zaawansowane metody nie są uważane lub nazywane „przekazywaniem portów” każdemu, kto mówi inaczej, musi wrócić do szkoły sieci.

JohnRB
źródło
1
„Nie widziałem nawet przełącznika routera / zarządzanego, który pozwoli ci to zrobić ...” - Router Technicolor TC7200.U klasy konsumenckiej pozwoli Ci dodać konfigurację przekierowania dla tych samych portów do różnych adresów IP. Nie jestem jednak pewien, czy faktycznie to przekazuje.
Jonathan Cross
-2

Nie. Pomyśl o tym. Jeśli pakiet dotrze na twój zewnętrzny adres i port UDP 80 (zakładając, że masz tylko jeden zewnętrzny adres IP), w jaki sposób router wiedziałby, do którego z dwóch wewnętrznych adresów IP powinien zostać przekazany?

Jeśli chcesz obsługiwać dwie różne usługi, potrzebujesz osobnego portu dla każdej z nich.

Skąd router wie, że może przekazywać adresy? Z powodu NAT.

Jeśli kupisz domenę, możesz ustawić tę Nazwę Domeny jako nazwę komputera i nazwę NETBIOS.

Na przykład 2 różne komputery obsługujące witryny internetowe na różnych portach wewnętrznych, ale na tych samych portach zewnętrznych muszą być nazwane po domenach lub musisz skonfigurować wewnętrzny serwer DNS z dodanymi wewnętrznymi adresami IP obu domen do jego rekordów, z którymi łączy się router i za każdym razem, gdy ktoś próbuje się połączyć routery nazw domen (nie publicznego adresu IP) NAT odpowiednio przekieruje połączenie.

Nie można przekazywać dokładnie identycznych portów do wielu adresów IP w tej samej sieci, ale można używać tych samych portów zewnętrznych, o ile porty wewnętrzne są różne, i odwrotnie, gdy mowa o wychodzącym ruchu sieciowym

użytkownik241367
źródło
Nie kopiuj innych odpowiedzi.
Scott