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

Неправильный шлюз Linux по умолчанию?

Я развернул устройство VMware vCloud, и перед развертыванием меня просят ввести IP-адреса, которые это устройство должно использовать, и шлюз по умолчанию. По умолчанию это устройство имеет 2 IP-адреса и сетевой адаптер, и они должны находиться в одной подсети.

Итак, информация, которую я ввел, была: 10.248.2.10/24 для eth0 10.248.2.20/24 для eth1 Шлюз по умолчанию - 10.248.2.254

Теперь я столкнулся со странной проблемой. Когда я пингую оба IP-адреса с компьютера в одной подсети, все в порядке. Когда я пингую с компьютера в другой подсети, я получаю ответ только с адреса 10.248.2.20 (eth1). Когда я вхожу в систему, я могу проверить связь с компьютером в той же подсети, а также с компьютером в другой подсети.

Сетевые специалисты заверили меня, что этот трафик не блокируется брандмауэром.

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

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.248.2.254    0.0.0.0         UG    0      0        0 eth1
default         10.248.2.254    0.0.0.0         UG    0      0        0 eth0
10.248.2.0      *               255.255.255.0   U     0      0        0 eth1
10.248.2.0      *               255.255.255.0   U     0      0        0 eth0

Есть подсказки, где искать?

В одной подсети оба IP-адреса будут доступны без необходимости маршрутизации.

Из другой подсети вам понадобится рабочая маршрутизация, чтобы все работало. В вашем случае маршрутизация по умолчанию проходит через eth1.

Если вы хотите вместо этого просто назначить приоритет маршрутизации eth0, вы можете использовать для этого таблицы маршрутизации или просто указать более низкую метрику для желаемого интерфейса. В обоих случаях у вас будет маршрутизация к желаемому интерфейсу.

Вы также можете добавить правила, чтобы определить, какая таблица для чего используется:

  • создать две таблицы маршрутизации, по одной для каждой сетевой карты
  • добавить маршруты для каждого интерфейса в соответствующие таблицы
  • добавить правила, чтобы определить, какая таблица используется

Это должно препятствовать прохождению трафика через сетевые карты внутри, позволяя сохранить избыточность или использовать каждую сетевую карту для различных функций.