![使用 Windows 7 路由 2 个 NIC](https://linux22.com/image/1427896/%E4%BD%BF%E7%94%A8%20Windows%207%20%E8%B7%AF%E7%94%B1%202%20%E4%B8%AA%20NIC.png)
根据下图,我有一个网络拓扑。第一台计算机通过 IP 为 10.44.12.112 的网络适配器连接到计算机 2。我需要使用 PLC 与计算机 1 通信,但 IP 10.44.12.215 无法 ping 通 IP 10.44.12.150。我尝试手动添加路由,在 IPEnableRouter 注册表编辑器上启用,但计算机 1 仍然无法与一台 PLC 通信。计算机 2 与计算机和 PLC 1 这两个设备通信。没有路由器,我该如何解决这个问题?非常感谢,Haroldo
Computer 1- ESXi Computer 2- Windows 7 PLC
| 10.44.12.216 | ------ | 10.44.12.112 | ------------- | 10.44.12.150 |
|255.255.255.0 | | 255.255.255.0 | | 255.255.255.0 |
| 10.44.12.111 | | 10.44.12.111 |
| 10.44.12.111 |
| 255.255.255.0 |
答案1
网络配置错误:由于所有 3 个设备在逻辑上都位于同一个子网 10.44.12.0/24 中,因此计算机 1 在尝试访问 PLC 时不会考虑任何路由。它只是将带有目标 PLC 的数据放入电缆中,而 PC2 会忽略这些数据。
你可以
- 使用以太网交换机连接所有 3 台设备,或者
- 将 PC2 和 PLC 之间的子网更改为其他 IP 地址(例如 10.44.13.x),并手动设置路由。
答案2
我有完全相同的拓扑结构,包括 PLC。通常,我将计算机 1 和 2 连接到涉及不同子网的物理路由器。然后,我将计算机 2 变成软件路由器,并在计算机 1 上手动添加一条到计算机 2<->PLC 子网的路由。但这在同一个子网上工作正常,没有物理路由器。您需要:
- 通过 IPEnableRouter 设置将计算机 2 变成路由器
- 将计算机2-nic1设置为计算机1上网卡的网关
- 修复 Windows 在计算机 1 上创建的路由
- 在计算机2上添加到计算机1的回程路由
可能让您感到困惑的两件事是,win7 的防火墙默认阻止 ICMP 数据包,并且您必须在应用 IPEnableRouter 设置后重新启动。因此,一旦正确配置了所有内容,您可能会认为没有连接。为 ICMPv4 回显回复数据包添加例外以获取 ping 回复。重新启动以应用 IPEnableRouter 设置。
NIC 配置
Computer 1- win7 Computer 2- win7 nic1
ip |192.168.100.5| ---x-over--- |192.168.100.6|
mask |255.255.255.0| |255.255.255.0|
gate |192.168.100.6| | |
Computer 2- win7 nic2 PLC (w/internal switch)
ip |192.168.100.1| ------------- |192.168.100.2|
mask |255.255.255.0| |255.255.255.0|
gate | | | |
1. 通过 IPEnableRouter 设置将计算机 2 变成路由器
编辑计算机2的注册表,设置以下值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter (DWORD) = 1
确保重新启动。当我第一次设置它时,这让我困惑了一段时间。
2.将计算机2-nic1设置为计算机1上网卡的网关
我使用界面的 IPv4 GUI 配置页面来执行此操作。
3.修复 Windows 在计算机 1 上创建的路由
当您按照我的拓扑结构中所述配置 nic 时,Windows 将自动设置这些路由。
Network Destination Netmask Gateway Interface Metric
192.168.100.0 255.255.255.0 On-link 192.168.100.5 276
192.168.100.5 255.255.255.255 On-link 192.168.100.5 276
表面上看,这些似乎就足够了。但是 192.168.100.0 路由需要指定 192.168.100.6 作为网关。如果计算机 1 只有 1 个网卡,您可以像这样更改它:
route change 192.168.100.0 mask 255.255.255.0 192.168.100.6
如果计算机 1 有多个网卡,则需要指定正确的接口。使用arp -a
获取接口 ID(在我的情况下为 0xb):
route change 192.168.100.0 mask 255.255.255.0 192.168.100.5 if 0xb
由此产生的计算机 1 路线:
Network Destination Netmask Gateway Interface Metric
192.168.100.0 255.255.255.0 192.168.100.6 192.168.100.5 21
192.168.100.5 255.255.255.255 On-link 192.168.100.5 276
4.在电脑2上添加到电脑1的对等路由
route add 192.168.100.5 mask 255.255.255.255 192.168.100.6
计算机2得到的路线:
Network Destination Netmask Gateway Interface Metric
192.168.100.0 255.255.255.0 On-link 192.168.100.1 276
192.168.100.0 255.255.255.0 On-link 192.168.100.6 276
192.168.100.1 255.255.255.255 On-link 192.168.100.1 276
192.168.100.5 255.255.255.255 On-link 192.168.100.6 21
192.168.100.6 255.255.255.255 On-link 192.168.100.6 276
通过此配置,所有 3 个设备都可以相互通信。我要重申,您需要在 win7 防火墙中解除对 ICMP 回显回复数据包的阻止才能看到 ping。请注意,这些路由在重新启动后不会持久,但您可以查找其他命令来执行此操作。