Я работаю в институте, так что, как вы можете себе представить, у нас есть типичные прокси, AD, DNS и так далее. Моя группа рассматривает возможность перехода на Linux для наших серверов (содержащих несколько графических процессоров для различных исследовательских целей) из-за более простой настройки наших сред (машинное обучение, рендеринг) и доступа к инструментам, необходимым для нашей работы. Но прежде чем мы это сделаем, я взял на себя ответственность (с разрешения нашего ИТ-администратора и моего начальника) создать простую настройку, которая даст нам некоторое представление о том, что именно нам нужно.
Я использую обычный настольный ПК с Ubuntu Server 20.04 LTS, установленным в качестве хоста. Для управления им я использую SSH (через Putty) или веб-интерфейс (cockpit). Поверх хоста я запускаю KVM с кучей виртуальных машин QEMU, каждая из которых использует один и тот же мостовой сетевой интерфейс (одновременно может работать только одна виртуальная машина из-за сквозной передачи PCI). Хост, а также виртуальные машины имеют имена хостов по схеме
<hostname>.<domain>
Поскольку наш ИТ-специалист был откровенной движущей силой против Linux в нашем отделе, каждая машина в отделе, на которой работает Linux, должна управляться сотрудником, который «владеет» ею. Мы не получаем никакой помощи от администратора, если у нас есть проблема с этими машинами. Linux-машины также должны иметь -Л суффикс, чтобы он знал, что это не его проблема. В целом имя хоста для ПК и ноутбуков следует схеме
<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 или что-то), который устанавливается при создании виртуальной машины, чтобы позволить системе виртуальной машины каким-то образом синхронизировать время, а также мой собственный мост, который привязывает виртуальную машину к единственному порту 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:2а:б8:4ф
по поводу моего моста.
Если вас интересует мост по умолчанию, у меня есть 52:54:00:58:04:50 (принимающая сторона) и 52:54:00:1e:cf:8b (сторона ВМ).
Вот что работает:
- ABC-NB001 - может пинговать и SSH ABC-DT001-L
- ABC-NB001 - может пинговать, SSH и VNC подключаться к ABC-DT001-L-VM0 (порт 5900 для кабины, порт 5901 для любого другого средства просмотра VNC, поскольку я также запускаю X11VNC параллельно с тем, что уже предоставляет кабина, чтобы в будущем разрешить доступ только к виртуальной машине, а не к базовому серверу)
- ABC-DT001-L - может пинговать и SSH ABC-DT001-L-VM0, может пинговать ABC-NB001
- ABC-DT001-L-VM0 - может пинговать и SSH ABC-DT001-L, может пинговать ABC-NB001
Кроме того, я могу пинговать и получать доступ к веб-консоли ABC-DT001-L с наших серверов Windows (тех, которые мы будем конвертировать в Linux в будущем). Мои коллеги, работающие в домашнем офисе, также могут (через нашу VPN) пинговать и получать доступ ABC-DT001-L.
Вот что не работает:
- Доступ к ABC-DT001-L-VM0 с наших серверов включая даже просто пинг
- Доступ к ABC-DT001-L-VM0 с машин моих коллег через VPN
Таким образом, кажется, что что-либо за пределами коммутатора не может получить доступ к виртуальным машинам любым возможным способом. Одна вещь, которую я заметил, чего, я думаю, и следовало ожидать, заключается в том, что за коммутатором я также могу просто использовать имя хоста вместо полного имени, чтобы получить доступ ко всем моим машинам.
Оказывается, проблема в мосте. Прежде чем я начну ткнуть медведя (нашего ИТ-отдела), я хотел бы попробовать решить проблему (конечно, с вашей помощью).