Назад | Перейти на главную страницу

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

У меня есть устройство на базе Linux с двумя сетевыми картами:

NIC1 eth0: 192.168.1.100/24; Шлюз: 192.168.1.1

NIC2 eth1: 192.168.1.101/24; Шлюз не установлен

Это устройство обменивается данными с сервером приложений (IP: 10.1.1.1). Логика приложения связывает устройство с обоими его IP-адресами, таким образом достигая устройства с его первичным IP-адресом или, если это не удается, переключиться на вторичный. Это должно обеспечивать избыточность на уровне сетевой карты устройства. Я не могу использовать здесь связывание, поскольку сервер ожидает, что устройство будет иметь 2 IP-адреса.

В случае отсутствия дальнейшей настройки, если я отключу NIC1, устройство больше не сможет взаимодействовать с сервером, это ожидается, поскольку NIC2 не имеет связанного шлюза.

Если, однако, я добавлю статический маршрут к сети сервера через NIC2, и таблица маршрутизации будет

Destination       Gateway         Genmask           Int
0.0.0.0           192.168.1.1     255.255.255.0     eth0
192.168.1.0       0.0.0.0         255.255.255.0     eth0
10.1.1.0          192.168.1.1     255.255.255.0     eth1

Я ожидаю следующего поведения

  1. когда оба сетевых адаптера подключены, сервер доступен через eth1 из-за более конкретного маршрута
  2. если отключен только NIC1, доступ к серверу осуществляется через eth1 из-за статического маршрута
  3. если отключен только NIC2, статический маршрут должен исчезнуть из таблицы маршрутизации, а доступ к серверу должен осуществляться через eth0 из-за шлюза по умолчанию

1 и 2 происходят, как и ожидалось. Вместо этого, когда NIC2 отключен, сервер недоступен.

Зачем? Если я помещаю NIC1 и NIC2 в разные подсети, точка 3 не выходит из строя, т.е. какой бы кабель я ни отсоединил, устройство всегда доступно на другом NIC. Какая техническая причина препятствует тому, чтобы это произошло, когда обе сетевые карты установлены в одной подсети?

РЕДАКТИРОВАТЬ

Я рассмотрел проблему потока ARP, которая кажется больше проблемой на уровне приложений, но здесь это не так. ARP flux, похоже, не препятствует обмену данными между хостами, поэтому не объясняет, почему проверка связи NIC1 не выполняется, когда NIC2 отключен.

Недостаточно репутации для комментариев, поэтому пишу это как ответ. Я предлагаю вам объединиться или объединиться. Решение, которое вы пытаетесь дать, очень неудобно. Настройте виртуальный интерфейс связи / группы, содержащий 2 физических сетевых карты (активный / активный или активный / пассивный), а затем добавьте 2 IP-адреса в виртуальный интерфейс связи / группы, чтобы приложение считало их избыточными.