Как заставить трафик, предназначенный для одной сетевой карты, никогда не проходить через вторую сетевую карту?

Настройка: у меня есть компьютер с Windows и двумя сетевыми адаптерами; назовем их NIC1 и NIC2. NIC1 используется для взаимодействия с корпоративной сетью, а NIC2 используется для взаимодействия с некоторым оборудованием, которое мы называем «устройством». NIC1 использует DHCP, а NIC2 назначается статический IP-адрес без шлюза по умолчанию. Устройство на NIC2 подключается напрямую. Я запускаю на своем компьютере какое-то программное обеспечение, которое выполняет диагностику устройства, подключенного к NIC2, и иногда для этого требуется, чтобы устройство прошло цикл сброса / перезагрузки. Когда это происходит, диагностическое программное обеспечение опрашивает, когда устройство повторно подключается.

Проблема: иногда устройству требуется немного больше времени, чтобы завершить этот цикл сброса / перезагрузки, и если устройство все еще не работает, когда программное обеспечение опрашивает его, ОС перестает искать его через сетевой адаптер 2, где он должен быть, и начинает искать NIC 1.

Сюжет сгущается: все было бы хорошо, за исключением того, что у устройства очень общий IP-адрес, например 192.168.1.1, и люди продолжают подключать оборудование к сети с тем же IP-адресом. Я пытался заставить ИТ-отдел запретить использование этого IP-адреса в сети или предоставить мне какое-то другое облегчение, но безрезультатно. Поэтому, когда программное обеспечение, которое я использую, пытается подключиться к моему устройству, но оно все еще завершает сброс и не отвечает, а Windows ищет его в другом месте, она действительно находит его! Только это не то, это что-то еще с тем же чертовым IP-адресом. Итак, через несколько секунд, когда устройство, с которым я хочу поговорить, действительно возвращается в рабочее состояние, программное обеспечение слишком занято общением с чем-то другим, и я получаю тайм-ауты, каскадные сбои и все другие виды головной боли.

Я устал пытаться бороться с системой с помощью административного контроля или политики, поэтому теперь я ищу техническое решение.

Итак, мой вопрос: можно ли заставить трафик в определенной подсети, скажем 192.168.1.xxx, всегда проходить через NIC 2 и никогда даже не пытаться пройти через NIC 1, несмотря ни на что? Даже если он не может найти то, что искал на NIC 2?

Ограничения и вещи, которые я уже пробовал:

Мне нужно, чтобы оба сетевых адаптера были активны одновременно. Данные, которые я собираю, хранятся в базе данных в сети. Мне нужен NIC2 для сбора данных и NIC1 для их хранения.

По разным причинам, как техническим, так и политическим, я не могу изменить IP-адреса любого своего оборудования, даже самого устройства.

У меня есть полный контроль над своей станцией, и я пытался настроить таблицы маршрутизации, но они, похоже, контролируют только приоритет того, где ОС начинает искать, и не контролируют, где это и где невозможно смотреть. Насколько мне известно, нет записи «Не использовать этот интерфейс для поиска IP-адреса назначения», которую можно было бы поместить в таблицу маршрутизации.

2 ответа
2

Проблема: иногда устройству требуется немного больше времени, чтобы завершить этот цикл сброса / перезагрузки, и если устройство все еще не работает, когда программное обеспечение опрашивает его, ОС перестает искать его через сетевой адаптер 2, где он должен быть, и начинает искать NIC 1.

Подключите устройство через дешевый коммутатор Ethernet. Это гарантирует, что соединение Ethernet, видимое вашей ОС, никогда не выйдет из строя, даже если устройство перезагрузится. Это позволит маршрутам через NIC 2 всегда оставаться действительными.

  • Спасибо за ваше предложение. Я добавил коммутатор Ethernet между компьютером и устройством, но не заметил каких-либо заметных изменений в поведении.

    — ssmquasar
    19 часов назад

  • @ssmquasar Какую ОС вы используете? Если интерфейс вверх с IP-адресом в сети цели не следует пробовать косвенный маршрут через другую сетевую карту. Я только что проверил: После sudo ifconfig eth0:1 8.8.8.7/24 up Я больше не могу пинговать Google 8.8.8.8

    — Хаген фон Эйцен
    19 часов назад

Допустим, у вас есть eth0 настроен DHCP с некоторым адресом 172.16.xx, а ваша цель имеет адрес 192.168.1.1 и напрямую подключена к eth1.

  • Настроить eth1 как 192.168.1.2/30
  • Настроить подинтерфейс eth0:1 с 192.168.1.5/29

Теперь ваш ящик обычно пытается связаться с целью по наиболее конкретному маршруту, то есть через eth1. Если у eth1 нет ссылки, потому что цель не работает, срабатывает второй лучший маршрут, который проходит через eth0:1 — и не работает, потому что «неправильный» ящик 192.168.1.1 находится за каким-то маршрутизатором из этого ник. Если только eth0: 1 тоже не работает, но это должно означать, что у eth0 тоже нет ссылки.

Против: По-видимому, 192.168.1.1 также является действительным адресом в вашей основной сети. Ваш ящик не может получить доступ к адресам 192.168.1.0 — 192.168.1.7 описанным выше методом. Без eth0: 1 только минимальный диапазон 192.168.1.0 — 192.168.1.3 был бы неработоспособным.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *