Windows環境でOpenWrt機のNAT速度を計測する際、普段PC 1台のみで計測を行うためにVLANを用いる。しかし、Windows 10 October 2018 Update (1809)更新後VLANを作成する際にハマったので備忘録。
- 2019/05/23 追記:
1903は再びドライバが正式対応していないため、VLANは正常動作しない模様。 - 2019/06/23 追記: "インテル®イーサネット アダプタ コンプリート ドライバ パック バージョン: 24.0" でWindows 10 1903にてVLANが機能することを確認。
- 2020/02/03 追記: この記事は今後ドライバの新しいバージョンが公開されるに合わせて追従することはしないため、各自新しいバージョンが無いか確認してください。
- 2023/03/12 追記: Windows 11については、IntelがVLANを含むAdvanced Network Service (ANS)はサポートされないことを明言。
発端
昨年のWindows 10 October 2018 Update(1809)後、作成済みのVLANが正常に動作しなくなった。
既に存在するVLANは無効になったまま有効にすることができず、一旦全てのVLANを削除するとNIC自体は正常に通信できるものの、再度作成したVLANは無効のまま有効化できず。
その後公開された新しいバージョンのドライバ(バージョン23.4)に更新したところ、NICのプロパティからVLANの管理タブが無くなってしまい、どうにもできなくなってしまった。
Windows 10 1809でVLANを作成する
参考: インテル® イーサネット Forum - Intel® Community Forum
現在Intelでは新しいWindowsのドライバ構造へ切替を行っているため、VLAN管理はGUIの提供が無くなっている模様。このため、PowerShellでの作成/削除が必要になる。
また、VLANのGUIが提供されていた古いバージョンのIntel NICドライバ(バージョン22.10以前)がインストールされたままWindows 10 October 2018 Updateをインストールした場合、以下の手順を行ってもVLANの作成ができなかった。恐らくゴミが残り上手くいかなくなっていると予想してWindowsの再インストールをしてから最新のIntel NICドライバ(バージョン23.5.2)をインストールしたところ、正常にVLANを追加できるようになった。
- PowerShellを管理者権限で起動
- Windowsキー + Xキー → AキーなどでPowerShellを管理者権限で起動する。VLAN管理機能はPowerShellモジュールとして提供されているため、コマンドプロンプトでは恐らく不可。
- モジュールをインポート
- Intel NIC関連の機能を提供するモジュールをインポートして使用可能にする。ただ、この手順はやらなくても問題無く使えた気もする。
Import-Module -Name "C:\ProgramFiles\Intel\Wired Networking\IntelNetCmdlets\IntelNetCmdlets"
- ネットワークアダプタ名を取得
- PC上にあるVLANを作成したいNICの名前を取得する。PowerShell上で
Get-IntelNetAdapter
を実行し、表示されたアダプタの中から目的のアダプタの "Name
" 列をコピーする。 - VLANを追加
- 1つ前の手順で得たアダプタ名を使用して、VLANを追加する。
Add-IntelNetVLAN
を実行して対話モードを開始し、 "ParentName[0]:
" にアダプタ名を入力。PS C:\WINDOWS\system32> Add-IntelNetVLAN コマンド パイプライン位置 1 のコマンドレット Add-IntelNetVLAN 次のパラメーターに値を指定してください: ParentName[0]: Intel(R) Ethernet Connection (2) I219-V ParentName[1]:
次のParentName[1]:
では何も入力せずEnterキーを押下し、VLAN番号への入力へと進む。 "VLANID[0]:
" から1行に1つ作成したいVLANのIDを入力していき、入力が終わったら何も入力せずEnterを押下すると、VLANの作成が開始される。PS C:\WINDOWS\system32> Add-IntelNetVLAN コマンド パイプライン位置 1 のコマンドレット Add-IntelNetVLAN 次のパラメーターに値を指定してください: ParentName[0]: Intel(R) Ethernet Connection (2) I219-V ParentName[1]: VLANID[0]: 0 VLANID[1]: 1 VLANID[2]: 2 VLANID[3]: 3 VLANID[4]: 4 VLANID[5]: 5 VLANID[6]: (Enter)
この時、タグ無しVLAN (untagged)を作成したい場合は "0
" を入力する。また、数字を昇順など順番に入力する必要は無い。要らないVLAN IDは飛ばしても問題ない。 - 完了
- 指定したVLANが作成され、完了。この際、物理アダプタが無効にされたままいくら待っても(5~10分程度)VLANが作成されず反応が無い場合、VLAN管理機能が正常に機能していないこともあり得る。
余談: Windows 10 1809でVLANを削除する
Remove-IntelNetVLAN
を用い、Addと同じように指定して削除する。
PS C:\WINDOWS\system32> Remove-IntelNetVLAN コマンド パイプライン位置 1 のコマンドレット Remove-IntelNetVLAN 次のパラメーターに値を指定してください: ParentName[0]: Intel(R) Ethernet Connection (2) I219-V ParentName[1]: VLANID[0]: 0 VLANID[1]: 2 VLANID[2]: 5 VLANID[3]: (Enter)
その他
現在最新のドライバでは、デバイスのプロパティとは別にNICの管理アプリケーションが提供されており、VLANの管理GUIは今後そちらに実装される予定というのをどこかで見たような気がする。
また、手元のIntel 82579V辺りのNICを搭載する環境では、最新ドライバのインストール時にインストーラがアダプタを見つけられず、インストールに失敗することが何度かあった。この場合、Intelのサイトからダウンロードしたインストーラを実行するとファイルが %userprofile%\AppData\Local\Temp\RarSFX0\
以下に展開されるので、デバイスマネージャからアダプタのドライバ更新をこのディレクトリを指定して先に行い、そのうえでインストーラを進めると問題無くインストールが完了した。