我可能听起来很傻,但我是初学者。
如果有两台主机具有相同的 IP,但一台是公共的,另一台是私有的。
如果我向该 IP 发送数据包。它会被转发到我 LAN 上的本地主机还是 Internet 上的公共主机?
我可能听起来很傻,但我是初学者。
如果有两台主机具有相同的 IP,但一台是公共的,另一台是私有的。
如果我向该 IP 发送数据包。它会被转发到我 LAN 上的本地主机还是 Internet 上的公共主机?
路由器如何知道这个 ip 是本地的还是全局的?
我相信您的意思是“私有”或“公共”IP 地址,答案是:路由器不在乎。IP 地址就是 IP 地址,它们的路由都相同。如果您使用的是私有地址,并且网络已连接到 Internet,那么某处设备正在执行网络地址转换以将您的私有地址更改为公共(全局可路由)地址。
那么路由器如何知道它是否应该将其重定向到本地网络或将其发送到 Internet 呢?
同样,路由器不区分私有地址和公共地址。它只是在其路由表中查找并根据目标 IP 进行转发。
如果有两台主机具有相同的 IP,但一台是公共的,另一台是私有的。
两台主机不能有相同的 IP 地址(从路由器的角度来看)。因此,路由器对于任何 IP 地址都只有一个单一的目的地。
IP 地址是公共的还是私有的,这是一个约定俗成的问题。10.0.0.0/8,172.16.0.0/12并192.168.0.0/16为私有网络 (RFC 1918) 预留,即。它们不在公共互联网上路由,任何人都可以私下使用。
路由器通常不会区分公共和私有。它可能被配置为在一个方向或另一个方向上转换(NAT),但这实际上更多是所使用的接口问题,而不是单独的地址问题。
如果我向该 IP 发送数据包。它会被转发到我 LAN 上的本地主机还是 Internet 上的公共主机?
路由器检查其路由表中的路由,并使用与 IP 地址匹配的最具体的路由(最长的网络掩码)。根据入口和出口接口,可以使用源或目标 NAT 等附加操作(尤其是在私有地址空间和公共地址空间之间的边缘)。
当然,这取决于您配置的内容(路由器不关心公共/私有 IP,他会按照您配置的方式执行),但我假设您可能不想在这里使用“正常”环境一个准确且包含所有可能性的答案 - 所以:您的家庭(正常配置)路由器和一个具有私有 IP 范围的 LAN 和“不知何故”外部设备与 LAN 中的一个设备具有相同 IP .
通常,您的 LAN 上的一个接口配置为在您的 LAN 中(如果您没有进行不同的配置)。因此,路由器在其路由表(路由转发数据包的路由器所基于的路由表)中创建了一个条目,该网络及其中的主机可以通过该接口访问。您不能配置具有相同或重叠网络的另一个接口,因此在您的路由表中只有一个接口和一个条目。如果外面应该有一台具有相同IP的主机,则路由器上没有配置(没有路由表条目)将数据包转发给他,所以他甚至不在乎,因为只有一个条目属于一个接口 - 指向您的局域网。
根据互联网工程任务组 (IETF) 文档 RFC-1918 中规定的标准,以下 IPv4 地址范围已被 IANA 保留用于私有互联网,并且不可在全球互联网上公开路由:
10.0.0.0/8 IP addresses: 10.0.0.0 -- 10.255.255.255
172.16.0.0/12 IP addresses: 172.16.0.0 -- 172.31.255.255
192.168.0.0/16 IP addresses: 192.168.0.0 – 192.168.255.255
如果 ipv4 地址是公共的(可路由的),那么路由器将使用NAT 协议来查找主机。