需要在哪台计算机上添加哪些路由,以便 myDevice 和 ComputerB 进行通信?
我的设备:192.168.1.2
计算机 A:
- NIC1:10.2.2.20
- NIC2:192.168.1.1
计算机B:10.2.2.30,192.168.1.3
Physical Connections
ComputerA:NIC1 - ((LAN)) - ComputerB
myDevice - ComputerA:NIC2
笔记:
- 计算机A和计算机B运行XP SP3
- ComputerA 和 ComputerB 具有静态 IP
- 假设所有网络掩码均为 255.255.255.0
答案1
根据所述的物理和 IP 连接,您应该能够从 myDevice -> ComputerA -> ComputerB ,只需将 myDevice 设置为使用与 computerA 相同的网关即可。
您可能会问,什么是网关?
网关是一个执行 的 IP 地址IPv4 Masquerading
,这意味着它将数据包从一个 IP 地址转发到另一个 IP 地址。大多数路由器软件会自动执行此操作,因此在这种情况下,您会将 myDevice 指向路由器作为网关。但如果 LAN 被定义为由 ComputerA 托管的本地网络,则需要将 ComputerA 设为网关。
可以在 Windows XP 上完成 IPv4 伪装,方法是按照 Microsoft 知识库文章的稳定链接中的以下说明进行操作:http://support.microsoft.com/kb/315236
正确设置 IPv4 转发(伪装)后,您需要确保的是:
ComputerA、ComputerB 和 myDevice 至少在物理上是传递连接的,这意味着 A->B->C 暗示 A->C,因为您可以使用“B”作为中间跳跃(我更改了我设计的示例中的字母只是为了简单/简洁);
ComputerA、ComputerB 和 myDevice 都共享一个 IP 空间(它们确实共享 192.168.1.0/24 空间,因为网络掩码为 255.255.255.0)
这三台设备在共享IP地址空间内均具有唯一的IP;
定义了一个网关设备,它将转发来自非物理连接的设备的数据包,因为默认情况下,唯一通过 IP 进行通信的设备是在链路层物理连接的设备。这就是您需要网关的原因。
希望与没有物理连接的其它设备进行通信的设备在其路由表中声明了一个网关,并且该网关是与目的地物理连接,或者另一个网关,该网关最终通过任意数量的跳数物理连接到目的地。在您的示例中,这意味着 myDevice 和 ComputerB 都需要将 computerA 声明为网关。
myDevice
如果你对那些让你“知道”谁能ComputerA
将数据包路由到的看不见的神奇内部机制感到好奇ComputerB
,请查看维基百科。ARP 对于互联网的功能与 DNS 一样重要。
答案2
假设 ComputerB 只有 1 个 NIC,您必须做三件、甚至四件事:
- 确保在 ComputerA 上启用了 IP 转发。
- 视窗:http://www.wikihow.com/Enable-IP-Routing
- Linux: sudo sh -c “echo 1 > /proc/sys/net/ipv4/ip_forward”
- 从 ComputerB 中删除 192.168.1.3 地址
- 此地址会让 ComputerB 误以为它可以直接访问 myDevice
- 在 ComputerB 上添加一条到达 myDevice 的路由,可以:
- 使用 10.2.2.20 作为网关的默认路由
- 到 192.168.1.0 的路由,网络掩码为 255.255.255.0,网关为 10.2.2.20
- 确保 myDevice 有一条到达 ComputerB 的路线,
- 使用 192.168.1.1 作为网关的默认路由
- 到 10.2.2.0 的路由,网络掩码为 255.255.255.0,网关为 192.168.1.1