Настраиваем Windows для работы с VLAN - АлтунинВВ.Блог - всё об IT-технологиях!
Четверг, 03 сентября 2020 09:37

Настраиваем Windows для работы с VLAN

Россия
Оцените материал
(0 голосов)

Если вы пытались работать с 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

Как показано на рисунке:

2020-09-02_15-20-27.png

После этого обязательно перезагрузите ПК.

Вот и всё, после загрузки ПК у вас должен заработать VLAN, например, в GNS3.

Единственным недостатком можно назвать появление «мусора» в дампе Wireshark на настроенном интерфейсе, например, такого:

147231	114.119306	172.16.1.253	172.16.1.254	HTTP	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 появился.

Прочитано 297 раз Последнее изменение Четверг, 03 сентября 2020 10:30