Mam tę konfigurację sieci:
- Local router 10.0.0.1, public IP 1.2.3.4
forwarding port 1002 to 10.0.0.2
forwarding port 1003 to 10.0.0.3
- Local host 10.0.0.2, server on port 1002, no default route
- Local host 10.0.0.3, server on port 1003, default route via 10.0.0.1
- Remote host public IP 5.6.7.8
Żadne zapory ogniowe nie są skonfigurowane.
Mogę połączyć się z 10.0.0.3 do 10.0.0.2:1002 bez problemów.
Od 5.6.7.8 łączę się z 1.2.3.4:1003 bez problemu, ale 1.2.3.4:1002 nie odpowiada. Jeśli jednak dodam domyślną trasę przez 10.0.0.1 na hoście 10.0.0.2, połączenie zacznie działać.
Tak więc połączenie z 10.0.0.2:1002 zawsze działa w sieci lokalnej, ale działa ze zdalnych hostów tylko wtedy, gdy włączona jest domyślna trasa.
Nie rozumiem różnicy: z perspektywy 10.0.0.2, dlaczego i pakiety przychodzące są różne, gdy pochodzą z innego lokalnego adresu IP lub są przekazywane?
port-forwarding
tcpip
Wizard79
źródło
źródło
Odpowiedzi:
Gdy 10.0.0.2 otrzyma żądanie z 5.6.7.8 i spróbuje odpowiedzieć, jeśli nie ma wyraźnej trasy do 5.6.7.8 lub domyślnej trasy, na którą można się wycofać, nie będzie wiedział, gdzie wysłać odpowiedź.
Objaśnienie: Zakładając, że 10.0.0.2 i 10.0.0.3 znajdują się w tej samej podsieci (określonej przez maskę podsieci)
Przykładowa tabela tras w wersji 10.0.0.2 (DRUT TRASY w systemie Windows)
Od wersji 10.0.0.2 komputer .3 znajduje się w sieci docelowej „10.0.0.0”. Jest to „On-Link”, co oznacza, że 10.0.0.2 i 10.0.0.3 znajdują się na tym samym łączu logicznym. Dlatego pakiety do .2 i .3 nie muszą być kierowane. Wysyłają je bezpośrednio do siebie. Nie dotyczy to routingu.
Gdy .3 lub .2 próbują odesłać pakiet z powrotem do 5.6.7.8 w odpowiedzi na żądanie z 5.6.7.8 (niezależnie od tego, czy jest to NAT przekazane czy faktycznie trasowane), ponieważ 5.6.7.8 nie jest bezpośrednio połączony ani w innych trasach w tabeli tras znajduje się w polu Miejsce docelowe sieci „0.0.0.0” i musiałby wiedzieć, gdzie wysłać pakiet do routingu do miejsca docelowego - w tym przypadku trasy domyślnej.
W powyższej tabeli tras, jeśli 10.0.0.2 próbuje wysłać do 10.0.2.50, przekieruje pakiet przez inny router o 10.0.0.99, ponieważ ta trasa jest określona w tabeli tras. Jeśli ta trasa nie zostanie określona, wróci do trasy domyślnej.
Jeśli więc nie ma wyraźnie zdefiniowanych tras do miejsca docelowego, a miejsce docelowe nie znajduje się w lokalnej podsieci, zostaje wysłane do domyślnego routera.
źródło
5.6.7.8
są po prostu kierowane, gdy przekierowanie portów jest włączone? Innymi słowy, w nagłówku IPsource
jest5.6.7.8
idestination
jest1.2.3.4
, i1.2.3.4
przekazuje go takim, jaki jest,10.0.0.2
bez tłumaczenia adresów?