我知道,除非使用路由器,否则不同子网中的计算机无法通信。
例如:
PC A 在子网中
192.168.1.0/24
,而 PC B 在 中192.168.2.0/24
。A 和 B 通过接口 与路由器C 相连
192.168.1.1
。192.168.2.1
当从 A 向 B 发送数据包时,路由器是否使用NAT(网络地址转换)?
如果不是,A 和 B 如何相互沟通?
我是网络方面的新手。
答案1
当从 A 向 B 发送数据包时,路由器是否使用 NAT(网络地址转换)发送数据包?
通常不会。技术上可以,但没必要——在这种情况下不需要 NAT。
(我假设 C 充当 A 和 B 的“默认网关”。)
如果不是,A 和 B 如何相互沟通?
尝试问相反的问题:为什么是对于某些类型的通信来说,NAT 是必需的吗?
NAT 之所以必要,是因为互联网不知道“内部”地址在哪里;它只知道您的“公共”地址在哪里。因此,您从互联网主机获得回复的唯一方法是假装它们是从路由器的公共地址发送的。
但在您的示例中,路由器非常清楚两个子网的位置。如果路由器是两个主机的默认网关,则意味着主机也非常清楚如何到达对面的子网:A 有到 B 的路由,B 有到 A 的路由,C 有到两者的路由。因此,前面提到的 NAT 原因不适用。
答案2
根据问题提供的信息,无法知道路由器的运行情况NAT或不。但是,可以使用一个简单的测试来确定是否正在使用 NAT:
如果能够使用每台 PC 的实际 IP 地址成功从 PC A ping 通 PC B,反之亦然,则路由器不是执行 NAT。(这假设没有防火墙阻止 ping,因此您可能需要禁用任何防火墙,包括 PC 上的防火墙。)
相反,如果使用 NAT,则 NAT“后面”的 PC将要能够 ping 通另一台计算机,但反过来就不行。例如,如果 PC A 位于路由器后面执行 NAT,它能够 ping 通 B,但 B 无法 ping 通 A(使用 A 的实际 IP 地址)。这是因为 NAT 会转换(即伪装)PC A 的 IP 地址,使其看起来好像与 PC B 位于同一子网。当子网 A 上有许多设备,每个设备都有自己的 IP 地址,但子网 B(可能是互联网)上只有一个 IP 地址时,这很有用。NAT 让所有这些设备通过单个 IP 地址与网络/互联网的其余部分进行通信。这被广泛用于减轻IP v4 耗尽。
如果未使用 NAT,则路由器只会执行所有路由器执行...它将数据包从 PC A 发送到 PC B,并通过正确的接口发送,以便它们到达目的地。大多数路由器都有多个接口连接到各种网络,例如,在一个组织中,多栋建筑各自都有自己的网络,并通过中央路由器连接。
大多数连接两个网络(特别是 LAN 和 Internet)的“路由器”严格意义上来说并不是真正的路由器,而是住宅网关。