如果数据包头包含device's private IP address
(和不是)router's public IP address
,如果只有路由器知道吗device's private IP address
?
答案1
假设 IPV4
如果目标设备不在同一个 LAN 上(使用网络掩码确定),则发送方发出的数据包的目标 IP 地址为目标的外部 IP 地址,但目标 MAC 地址(例如以太网地址)为路由器的内部网络接口。
本地路由器内部接口的 MAC 地址通常通过指定路由器内部 IP 地址的 ARP 请求获取,该 IP 地址可以从 DHCP、静态配置、ICMP 重定向、路由协议消息或其他方式获知。
如果源位于使用网络地址转换 (NAT) 的路由器后面,则当源的本地路由器转发数据包时,它会重写数据包中的源 IP 地址,将本地 LAN IP 地址替换为路由器的外部公共 IP 地址。
如果目标也位于 NAT 后面,目标路由器通常会具有某种端口转发规则,该规则使用设备的内部 IP 地址将具有特定目标端口号的 TCP 或 UDP 数据包转发到配置的内部设备。对于 TCP 连接,路由器将根据通常的四条信息(包括发送方随机选择的端口号)记住连接。这允许它返回数据包作为回复。
通常,源设备和目标设备都位于其本地 NAT 路由器后面,并将另一端路由器的公共 IP 地址之一视为目标的目的地址。通常,任何终端设备都不知道或不需要知道另一端设备在其私有网络上使用的 IP 地址(通常是为内部使用而保留的 IPV4 地址范围之一中的地址)
IPV6 的工作方式不同。
答案2
你要问的是网络地址转换 (NAT)。
对于外界来说,您的设备被视为 ISP 提供的路由器的 IP。局域网 (LAN) 内部,每个设备都有一个由路由器提供的IP地址。许多制造商分配192.168.1。n到路由器和连接的设备局域网内部, 在哪里n每个设备的 IP 地址不同。(也可以在 LAN 内分配任意固定 IP。)如果这些本地 IP 地址对整个互联网可见,每个人将会在巨型(多)方线路在 192.168.1。n。
这本地路由器负责重定向消息到本地设备。
“它...维护公有 IP 与源端口以及私有 IP 与源端口之间的转换表。这是网络地址转换 (NAT) 的基础。”