
Настраиваем Windows для работы с VLAN
Если вы пытались работать с VLAN под Windows, особенно при попытке получить доступ к VLAN на физическом оборудовании из виртуальных машин под Hyper-V или VMware, у вас, скорее всего, ничего не получилось.
Всё дело в том, что раньше Windows не имел встроенного механизма работы с VLAN, но в последних версиях Windows Server он появился.
Драйвера сетевых адаптеров, по умолчанию, обрезают в пакетах все VLAN-тэги и внешние VLAN становиться недоступными.
В этой статье мы рассмотрим, как настроить windows 10 таким образом, чтобы адаптер не обрезал VLAN-тэги у пакетов, приходящих на заданный интерфейс.
В Windows 10 есть возможность указать VLAN в настройках адаптера, но это вариант, для отдельных случаев и нам он не подходит, если мы работаем с эмуляторами ЛВС, например, GNS3. У нас может быть сколько угодно виртуальных сетей с разными VLANID и каждый раз менять в настройках адаптера VLAN нам не подходит.
В Wireshark эта проблема давно известна, и они создали в своей wiki страницу, на которой описали варианты решения проблемы для нескольких производителей чипов для сетевых адаптеров.
Я использую адаптер - D-Link DUB-E100 USB2.0, и всё описанное ниже, помогло заставить работать VLAN в GNS3.
Настройка адаптера
Сперва нам нужно узнать GUID нашего адаптера, в моем случае это USB-адаптер, для этого запускаем PowerShell с правами админа и запускаем команду:
PS C:\WINDOWS\system32> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
Ethernet 2 D-Link DUB-E100 USB2.0 to Fast Ether... 14 Up C8-22-19-11-8D-CB 100 Mbps
Ethernet Realtek PCIe GBE Family Controller 8 Up 70-85-44-22-94-82 1 Gbps
VMware Network Adapte...8 VMware Virtual Ethernet Adapter for ... 7 Up 00-50-56-C0-00-08 100 Mbps
VMware Network Adapte...1 VMware Virtual Ethernet Adapter for ... 4 Up 00-50-56-C0-00-01 100 Mbps
Смотрим ifIndex нужного устройства, у меня он равен 8.
Запускаем regedit с правами администратора.
Откройте в нём следующий путь (просто вставьте в строку поиска на самом верху и нажмите Enter):
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\
В списке справа найдите раздел с номером своего адаптера, в моем случае это 008.
Всё что нам осталось это изменить значения нескольких значений:
MonitorModeEnabled - 1
MonitorMode - 1
*PriorityVLANTag - 0
SkDisableVlanStrip - 1
Как показано на рисунке:
После этого обязательно перезагрузите ПК.
Вот и всё, после загрузки ПК у вас должен заработать VLAN, например, в GNS3.
Единственным недостатком можно назвать появление «мусора» в дампе Wireshark на настроенном интерфейсе, например, такого:
1514 [TCP Spurious Retransmission] Continuation
147232 114.122191 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400568275 Win=1051136 Len=0
147233 114.122235 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400571195 Win=1051136 Len=0
147234 114.122252 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400574115 Win=1051136 Len=0
147235 114.122265 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400577035 Win=1051136 Len=0
147236 114.122275 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400579955 Win=1051136 Len=0
147237 114.122284 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400582875 Win=1051136 Len=0
147238 114.122298 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400585795 Win=1051136 Len=0
147239 114.122310 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400588715 Win=1051136 Len=0
147240 114.122319 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400591635 Win=1051136 Len=0
147241 114.122330 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400594555 Win=1051136 Len=0
147242 114.122345 172.16.1.254 172.16.1.253 TCP 60 [TCP ACKed unseen segment] 51752 → 3080 [ACK] Seq=433 Ack=400597475 Win=1051136 Len=0
Но его можно и отфильтровать, так что это не такая большая проблема. Именно поэтому я и использую сетевой usb-адаптер, чтобы эксперименты не вредили реальной ЛВС.
Заключение
Сегодня мы рассмотрели настройку Windows с целью разрешить доступ к физическим VLAN из виртуальных серверов.
Мы узнали Id нашего адаптера и внесли изменения в реестр Windows.
После перезагрузки Windows доступ к VLAN появился.
Добавить комментарий