Доступ к виртуальной машине с использованием сетевого интерфейса KVM-моста внутри корпоративной сети не работает за пределами локальной сети помещения

Доступ к виртуальной машине с использованием сетевого интерфейса KVM-моста внутри корпоративной сети не работает за пределами локальной сети помещения

Я работаю в институте, поэтому, как вы можете себе представить, у нас есть типичный прокси, AD, DNS и т. д. Моя группа рассматривает возможность перехода на Linux для наших серверов (содержащих несколько графических процессоров для различных исследовательских целей) из-за более простой настройки наших сред (машинное обучение, рендеринг) и доступа к инструментам, необходимым для нашей работы. Но прежде чем мы это сделаем, я взял на себя (с разрешения нашего ИТ-администратора и моего начальника) задачу создать простую настройку, которая даст нам некоторое представление о том, что именно нам нужно.

Я использую обычный настольный ПК с Ubuntu Server 20.04 LTS, установленным в качестве хоста. Для управления им я использую SSH (через Putty) или веб-интерфейс (cockpit). На хосте я запускаю KVM с кучей виртуальных машин QEMU, все из которых используют один и тот же сетевой интерфейс с мостом (из-за PCI passthrouhg на месте) (только одна виртуальная машина может работать одновременно). Хост, а также виртуальные машины имеют имена хостов, следующие схеме

<hostname>.<domain>

Поскольку наш IT-специалист был ярым противником Linux в нашем отделе, каждая машина в отделе, на которой установлен Linux, должна администрироваться сотрудником, который «владеет» ею. Администратор не оказывает нам никакой помощи, если у нас возникают проблемы с этими машинами. Машины Linux также должны иметь суффикс, -Lчтобы он знал, что это не его проблема. В целом имя хоста для ПК и ноутбуков следует схеме

<department>-<machine type><3 digit numeric value>

так что полное будет

<department>-<machine type><3 digit numeric value>.<domain>

foo.bar.comДопустим, у меня есть следующее <domain>:

  • ABC-DT001-L.foo.bar.com- ПК, хост под управлением Ubuntu Server 20.04, IP-адрес10.21.5.83
  • ABC-DT001-L-VM0.foo.bar.com- ВМ, гостевая ОС Xubuntu 20.04, IP-адрес10.21.5.104
  • ABC-NB001.foo.bar.com- ноутбук под управлением Windows 10 с пользователем AD, IP-адрес10.21.5.104
  • Сетевой мост- преобразован единый сетевой интерфейсABC-DT001-Lк мосту, который в свою очередь используется каждой виртуальной машиной, которую я планирую запустить
  • Коммутатор HP ProCurve 1810g-8 J9449A- управляемый коммутатор, к которому подключены мои машины внутри моего офиса (у меня нет к нему доступа), IP-адрес 10.21.99.10(или так написано на этикетке)
  • Шлюз по умолчанию- Айпи адрес10.21.5.1
  • DHCP-сервер- Айпи адрес10.21.1.3
  • DNS-сервер- Айпи адрес10.21.1.3
  • Основной WINS-сервер- Айпи адрес10.21.1.10

В нашем ИТ-отделе мне сказали, что если у машины есть постоянный MAC-адрес, я всегда могу, например,ABC-DT001-L.foo.bar.comчтобы получить доступ к моемуABC-DT001-Lмашина.

На уровне KVM у меня есть мост по умолчанию ( virbr0или что-то в этом роде), который устанавливается при создании VM, чтобы позволить системе VM как-то синхронизировать время, а также мой собственный мост, который привязывает VM к единственному порту Ethernet, который есть у моего хоста, позволяя ему получать доступ к Интернету, а также к внутренней сети нашего института. Так что с точки зрения MAC-адресов на моем ПК у меня есть

  • ABC-DT001-L.foo.bar.com- MAC-адрес14:b3:1f:07:ee:5a
  • ABC-DT001-L-VM0.foo.bar.com- MAC-адрес52:54:00:2a:b8:4f

относительно моего моста.

Если вам интересен мост по умолчанию, у меня есть 52:54:00:58:04:50(сторона хоста) и 52:54:00:1e:cf:8b(сторона виртуальной машины).

Вот что работает:

  • ABC-NB001- может пинговать и SSHABC-DT001-L
  • ABC-NB001- может ли пинговаться, SSH и VNC подключаться кABC-DT001-L-VM0(порт 5900 для cockpit, порт 5901 для любого другого средства просмотра VNC, поскольку я также запускаю X11VNC параллельно с тем, что cockpit уже предоставляет, чтобы в будущем разрешить доступ только к виртуальной машине, а не к базовому серверу)
  • ABC-DT001-L- может пинговать и SSHABC-DT001-L-VM0, может пинговатьABC-NB001
  • ABC-DT001-L-VM0- может пинговать и SSHABC-DT001-L, может пинговатьABC-NB001

Кроме того, я могу выполнить пинг и получить доступ к веб-консолиABC-DT001-Lс наших серверов Windows (те, которые мы в будущем переведем на Linux). Мои коллеги, работающие в домашнем офисе, также могут (через наш VPN) пинговать и получать доступABC-DT001-L.

Вот что не работает:

  • Доступ кABC-DT001-L-VM0с наших серверов, включая даже просто пинг
  • Доступ кABC-DT001-L-VM0с машин моих коллег через VPN

Так что, похоже, что что-либо за пределами коммутатора не может получить доступ к VM(s) каким-либо возможным способом. Одна вещь, которую я заметил, и которая, как я полагаю, ожидаема, заключается в том, что за коммутатором я также могу просто использовать имя хоста вместо полного имени, чтобы получить доступ ко всем моим машинам.

Похоже, проблема в мосту. Прежде чем я начну дразнить медведя (наш ИТ-отдел), я хотел бы попробовать решить проблему (с вашей помощью, конечно).

Связанный контент