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

Linux добавляет неправильный маршрут при запуске?

У меня есть несколько машин Linux (Debian Wheezy), у которых есть особенная проблема. После их загрузки создается дополнительный маршрут, который необходимо удалить, прежде чем машина сможет взаимодействовать с другими машинами в той же подсети. После загрузки маршруты выглядят так (публичные IP-адреса замаскированы):

~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
208.XXX.XXX.0 * 255.255.255.0 U 0 0 0 vmbr0
default 208.XXX.XXX.1 0.0.0.0 UG 0 0 0 vmbr0

Маршрут 208.XXX.XXX.0 блокирует соединение сервера с любыми другими серверами в этой же подсети. После удаления этого маршрута все снова в порядке. Но после перезагрузки этот маршрут снова вернулся. Что создает этот маршрут? Это нормально, если такой маршрут создается автоматически? (Другими словами, должен ли этот маршрут действительно работать и тот факт, что я должен его удалить, на самом деле указывает на проблему где-то еще в моей сети?)

На этой машине работает Proxmox (поэтому интерфейсы говорят «vmbr0»), поэтому вполне возможно, что это действительно проблема Proxmox. Я уже пробовал размещать этот вопрос на их форумах и не получил там ответов.

Возможно, лучше было бы задать следующий вопрос: что именно в этом маршруте может заставлять машины в той же подсети 208.XXX.XXX.XXX разговаривать друг с другом?

Если это поможет, вот содержание /etc/network/interfaces (опять же, используя XXX, чтобы избежать публикации общедоступных IP-адресов. Обещаю, первые 3 октета этих IP-адресов совпадают.):

auto lo
iface lo inet loopback

auto vmbr0
iface vmbr0 inet static
        address 208.XXX.XXX.165
        netmask 255.255.255.0
        gateway 208.XXX.XXX.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0

Когда вы добавляете IP-адрес к определенному интерфейсу (пусть это будет через DHCP или вручную с помощью ifconfig), ядро ​​Linux добавит маршрут подсети этого IP-адреса как находящийся на этом конкретном интерфейсе. Это потому, что логически вы являетесь частью подсети.

Возможные проблемы:

  • DHCP-сервер не дает вам правильный IP-адрес из правильной подсети (подсеть, которую вы пытаетесь ткнуть, находится за маршрутизатором)

  • Есть некоторая проблема с запросом arp, поэтому ваши хосты могут общаться друг с другом только через маршрутизатор