To pytanie ma już odpowiedź tutaj:
- Skąd Router wie, gdzie przesłać odpowiedzi na pakiet 2
Przepraszam, jeśli to naprawdę głupie pytanie; moja wiedza na temat sieci jest dość niewielka.
Tak więc użytkownik wysyła żądanie HTTP na jakiś adres. To żądanie pochodzi z adresu w lokalnej podsieci, ale router wie, że wysyła żądanie do swojej domyślnej bramy, ponieważ docelowy adres IP nie pasuje do niczego innego w jego tabeli routingu. Żądanie przeskakuje przez Internet i ostatecznie jest odbierane przez komputer docelowy (serwer WWW). To wszystko ma sens.
Ale w jaki sposób serwer WWW może odesłać żądanie z powrotem na komputer lokalny? Czy żądanie nie pochodzi z adresu IP w lokalnej podsieci? Skąd wziął adres IP routera lokalnego komputera? A nawet jeśli ma adres IP tego routera, w jaki sposób pakiet jest kierowany do komputera lokalnego, gdy dotrze do routera?
But the source IP of my local machine is some local IP address, like 192.168.0.11/24. The router can't just send a packet to that address, can it?
- Nie ogólnie. Źródłowy adres IP to tak naprawdę adres IP NAT przypisany do tego konkretnego pakietu / strumienia ruchu przez zaporę ogniową lub router klienta. NAT ma zastosowanie w 99,999% scenariuszy. NAT nie będzie używany tylko wtedy, gdy klienci używają routowalnych adresów IP przypisanych bezpośrednio do klientów, a NAT nie jest używany na zaporze sieciowej lub routerze.