У меня есть именно эта топология, в том числе ПЛК. Обычно у меня есть компьютеры 1 и 2, подключенные к физическому маршрутизатору с различными подсетями. Затем я превращаю компьютер 2 в программный маршрутизатор и вручную добавляю маршрут к подсети ПЛК компьютера 2 <-> на компьютере 1. Но все работает нормально в одной подсети без физического маршрутизатора. Вам нужно:
- Превратите компьютер 2 в маршрутизатор с помощью настройки IPEnableRouter
- Установить компьютер 2-nic1 в качестве шлюза для сетевой карты на компьютере 1
- Исправить маршрут, который Windows создает на компьютере 1
- Добавить ответный маршрут к компьютеру 1 на компьютере 2
Две вещи, которые могли вас сбить с толку, заключаются в том, что брандмауэр win7 по умолчанию блокирует пакеты ICMP, и вы должны перезагрузить компьютер после применения настройки IPEnableRouter. Таким образом, вы можете подумать, что у вас нет подключения, как только вы все настроили правильно. Добавьте исключение для пакетов эхо-ответа ICMPv4, чтобы получить ответы на эхо-запросы. Перезапустите, чтобы применить настройку 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. Превратите компьютер 2 в маршрутизатор с помощью настройки IPEnableRouter
Отредактируйте реестр компьютера 2, установив следующее значение:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRouter (DWORD) = 1
Убедитесь, что вы перезагрузитесь. Это сбило меня с толку, когда я впервые настроил это.
2. Установить компьютер 2-nic1 в качестве шлюза для сетевой карты на компьютере 1
Для этого я использовал страницу конфигурации интерфейса IPv4.
3. Исправить маршрут, который Windows создает на компьютере 1
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 имеет более 1 ник, вам нужно указать правильный интерфейс. Используйте arp -a
для получения идентификатора интерфейса (в моем случае 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. Добавить ответный маршрут к компьютеру 1 на компьютере 2
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 устройства могут связываться друг с другом. Я повторю, что вам нужно разблокировать пакеты эхо-ответа ICMP в брандмауэре win7, чтобы увидеть пинги. Обратите внимание, что эти маршруты не сохраняются после перезагрузки, но вы можете посмотреть дополнительные команды, чтобы сделать это.