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

KVM Windows Guest Vlan Tagging

Прямо сейчас я пробую нового облачного провайдера, который упрощает частную сеть, это функция, на которой вы можете запускать несколько vlan. Поскольку платформа, которую мы собираемся построить, является платформой linux / windows и имеет несколько env, мы собираемся разделить их конструкцией vlan. До этого момента это довольно просто.

Лучший способ использовать теги vlan под Windows - это «инструмент диагностики realtek ethernet» в сочетании с картой realtek 8139, который дает вам возможность создать интерфейс vlan.

Интерфейс развивается правильно, я его настраиваю, но теперь начинается самое интересное. Другая машина в том же vlan (10) принимает netbios, arp и другие UDP-соединения. Я заметил это с помощью простой команды tcpdump:

19:32:44.247964 IP 10.0.10.30.netbios-ns > 10.0.10.255.netbios-ns: NBT UDP PACKET(137): REGISTRATION; REQUEST; BROADCAST
19:32:44.248057 IP 10.0.10.30.netbios-ns > 10.0.10.255.netbios-ns: NBT UDP PACKET(137): REGISTRATION; REQUEST; BROADCAST
19:32:44.310334 IP 10.0.10.30.netbios-ns > 10.0.10.255.netbios-ns: NBT UDP PACKET(137): REGISTRATION; REQUEST; BROADCAST
19:32:44.509278 IP6 fe80::a1dd:64c9:ae27:5659.60116 > ff02::1:3.hostmon: UDP, length 24
19:32:44.509955 IP 10.0.10.30.63646 > 224.0.0.252.hostmon: UDP, length 24
19:32:44.606923 IP6 fe80::a1dd:64c9:ae27:5659.60116 > ff02::1:3.hostmon: UDP, length 24

Если я полностью отключу брандмауэр Windows, остановив службу или добавив интерфейс в частную группу и разрешив все, ничего не произойдет. Я использовал wirehark на машине с Windows, чтобы увидеть, принимаются ли мои пакеты ICMP сервером, но этого не замечено в wirehark.

Еще одна странность заключается в том, что если я пингую с машины Windows на машину Linux, первый тайм-аут задается с локального IP, а остальные 3 тайм-аута задаются с внешнего адреса (по умолчанию GW). Таким образом, похоже, что окна не могут обрабатывать интерфейс для пакета, кроме UDP.

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

Я надеюсь, что кто-то может мне помочь, моя цель - иметь несколько интерфейсов vlan в Windows 2008R2, каждый со своим собственным тегом vlan.

Прежде всего, вам действительно нужно использовать virtio_net, а не e1000 или rtl, потому что оба последних эмулируются, а это в основном означает медленный. В Windows, поскольку сама ОС не имеет возможности добавлять теги vlan, вы обычно создаете тегированный интерфейс на хосте, добавляете мост поверх и присоединяете свою виртуальную машину к этому мосту, который уже передает тегированный трафик.