Я работаю в институте, поэтому, как вы можете себе представить, у нас есть типичный прокси, 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) каким-либо возможным способом. Одна вещь, которую я заметил, и которая, как я полагаю, ожидаема, заключается в том, что за коммутатором я также могу просто использовать имя хоста вместо полного имени, чтобы получить доступ ко всем моим машинам.
Похоже, проблема в мосту. Прежде чем я начну дразнить медведя (наш ИТ-отдел), я хотел бы попробовать решить проблему (с вашей помощью, конечно).