- Вопрос или проблема
- Ответ или решение
- Формулирование проблемы
- Проблема в том, что ВМ, хотя и получает IP через DHCP и работает нормально в сети 192.168.107.0/24, не может взаимодействовать с сервисами на интерфейсах enp35s0 и enp36s0, например, не выполняет ICMP и TCP. При этом с другими устройствами в сети 192.168.102.0/24 она взаимодействует корректно.
- Анализ возможных причин
- Некоторое руководство по устранению
- Заключение
Вопрос или проблема
У меня такое ощущение, что я упускаю что-то в области сетей Linux.
У меня есть хост с двумя сетевыми интерфейсами, enp35s0 и enp36s0, которые находятся в одной сети (192.168.102.0/24). На этом хосте также есть несколько интерфейсов, которые я создал для VLAN. Релевантный здесь – это enp36s0.107, который находится в сети 192.168.107.0/24. У меня есть виртуальная машина, работающая в QEMU/KVM с одним сетевым интерфейсом, “Host device enp36s0.107 macvtap”, и я пробовал режимы источника bridge и VEPA.
ВМ получает IP-адрес через DHCP без проблем и работает точно так же, как и любое другое устройство в сети 192.168.107.0/24, за исключением одной странной вещи. Она не может получить доступ к любым службам, работающим на интерфейсах enp35s0 и enp36s0 (я пробовал ICMP и TCP). Она может получить доступ к другим службам в сети 192.168.102.0/24, так что можете мне поверить, это не проблема маршрутизатора/фаервола, и DNS работает как ожидалось.
Я ожидаю, что эти пакеты отправляются к шлюзу, маршрутизируются и возвращаются на хост. Однако, действительно кажется, что хост делает с пакетами что-то странное, и, насколько я могу судить (через логирование на маршрутизаторе), они вообще не видны шлюзом. Я хотел бы, чтобы моя ВМ (192.168.107.100) могла получить доступ к службе на хосте (192.168.102.200).
Надеюсь, кто-нибудь сможет понять, что здесь происходит. Всем спасибо!
Ответ или решение
Конечно, давайте подробно рассмотрим вашу проблему с гостевой виртуальной машиной в QEMU/KVM и сложностями с сетевым подключением через macvtap и VLAN на Linux.
Формулирование проблемы
Ваш сервер имеет две сетевые карточки: enp35s0
и enp36s0
, которые находятся в одной сети (192.168.102.0/24). Кроме того, на сервере настроены VLAN-интерфейсы, из которых важен интерфейс enp36s0.107
, настроенный на сеть 192.168.107.0/24. Вы используете виртуальную машину (ВМ) с единственным сетевым интерфейсом через "Host device enp36s0.107 macvtap", и пробовали режимы source bridge и VEPA.
Проблема в том, что ВМ, хотя и получает IP через DHCP и работает нормально в сети 192.168.107.0/24, не может взаимодействовать с сервисами на интерфейсах enp35s0
и enp36s0
, например, не выполняет ICMP и TCP. При этом с другими устройствами в сети 192.168.102.0/24 она взаимодействует корректно.
Анализ возможных причин
-
Особенности работы macvtap: Macvtap работает подобно мосту, но имеет ключевые отличия, которые могут вызывать изоляцию трафика. Режимы bridge и VEPA способны ограничивать трафик из-за специфики обработки пакетов, особенно если ваши пакеты обходят шлюз.
-
Проблемы маршрутизации: Если маршруты настроены неправильно, пакеты могут не покинуть хоста. Удостоверьтесь, что у вас правильно настроена маршрутизация для взаимодействия между сетями 192.168.107.0/24 и 192.168.102.0/24.
-
Фильтрация пакетов и L2 ограничение: Поскольку вы используете vlan, возможны ограничения на уровне канала данных (L2). Проверьте настройки коммутатора и правил на вашем хосте.
-
ARP-фильтрация: Может возникать проблема с обновлением ARP-кэша. Проверьте ARP-таблицы в вашей ВМ и на хосте.
Некоторое руководство по устранению
-
Используйте стандартный Linux Bridge: Попробуйте создать стандартный Linux bridge на хосте, добавьте в него
enp36s0.107
и используйте его для подключения виртуальной машины. Это должно более правильно обрабатывать трафик. -
Настройки iptables/nftables: Проверьте, что фильтрация межсетевых служб настроена корректно и не блокирует необходимый трафик.
-
Логирование и анализ: Проведите дополнительное логирование сетевого трафика с использованием tcpdump или Wireshark, чтобы понять, куда исчезают пакеты.
Заключение
Настройка сложных сетевых схем в случае использования macvtap и VLAN требует тщательного анализа всех уровней модели OSI. Проблемы взаимодействия могут быть вызваны специфичными особенностями сетевых адаптеров виртуализации, маршрутизацией или фильтрующими правилами. Изучите вышеуказанные аспекты, чтобы найти наиболее вероятную причину проблемы.