Metonymical Deflection

ゆるく日々のコト・たまにITインフラ

Windows10 VLAN Interface設定

PowerShellによるWindows10でのVLAN Interface設定方法について記載します。

以前の記事ではWindowsIntelNICを使用したVLAN Interfaceの設定方法を書きました。しかし、Windows10 1809+Intel PROSet 23.5.2の構成で試したところ、VLANやチームなどのタブが表示されず、困り果てたので、PowerShellによる設定方法を記載します。

2021/06/26Update
GUIによるWindows10でのVLAN Interface設定方法について記載しました。
metonymical.hatenablog.com

1.構成

1-1.環境
OS                               : Windows10pro Ver:1809 Build:17763.437 
NIC                              : Intel I350, I219-V(OnboardNIC)
Driver                           : Intel PROSet 23.5.2

2020/02/15追記
OS                               : Windows10pro Ver:1909 Build:18363.657 
NIC                              : Intel I350
Driver                           : Intel PROSet 25.0.0.0

上記の構成でNICのVLAN設定を行おうとしたら、VLANやチーム化のタブが表示されなかった場合の対処方法となります。

2.Intel PROSetのDL

以下のIntelサイトよりPROSetドライバをDLします。
イーサネット製品」を選択の上、絞り込み条件にて「Windows10」 を選択してください。
downloadcenter.intel.com

以下のような画面でDLします。
f:id:metonymical:20190504060825p:plain

3.Intel PROSetのインストール

exe形式のファイル*1なので、そのまま実行してください。
インストール時の注意点として、セットアップ・オプション時に
「Advanced Network Services」にチェックを入れてください。
f:id:metonymical:20190504061214p:plain

3-1.NICのプロパティを開いて構成画面を確認

構成をクリックします。
f:id:metonymical:20190504061620p:plain
現在は、VLANやチーム化のタブが表示されません。
f:id:metonymical:20190504061717p:plain
ちなみに、以前は以下の画面のように表示されており、ここから設定が可能でした。
f:id:metonymical:20190504055949j:plain

ここから、PowerShellを使って、VLAN設定を行っていきます。

4.PowerShellによるVLAN設定

管理者権限にてPowerShellを起動してください。

4-1.コマンド

以下にコマンドのみ記載しておきます。

IntelNIC用のモジュールをインポート
Import-Module -Name "C:\Program Files\Intel\Wired Networking\IntelNetCmdlets"

GetコマンドにてNICの名前(ParentName)を取得
Get-IntelNetAdapter

NICの名前を-ParentName に指定し、追加したいVLANIDを指定
Add-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection" -VLANID 30

追加したいVLANIDを複数指定の場合
Add-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection" -VLANID 30,35,39

追加したいVLANIDを複数かつ連続指定の場合
Add-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection" -VLANID (300..304)

VLANIDや名前の変更
Set-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection" -VLANID 3 -NewVLANID 300 -NewVLANName "VLAN300"

VLAN Interfaceの削除
Remove-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection" -VLANID 30
4-2.IntelNetCmdletsモジュールのインポート

PowerShellにIntelNetCmdletsモジュールをインポートします。
出力結果は特に表示されません。

PS C:\Windows\system32> Import-Module -Name "C:\Program Files\Intel\Wired Networking\IntelNetCmdlets"
4-3.IntelNICの情報取得

以下のコマンドで現在のIntelNICの状態を取得します。
次項にてNameに表示されたNICの名前をParentNameとして指定するため、テキストエディタなどにコピーしておいてください。

PS C:\Windows\system32> Get-IntelNetAdapter

Location        Name                                                           ConnectionName            LinkStatus
--------        ----                                                           --------------            ----------
0:31:6:0        Intel(R) Ethernet Connection (7) I219-V                       local                     1.00 Gbps ...
5:0:0:0         Intel(R) I350 Gigabit Network Connection                      physical1                 1.00 Gbps ...
5:0:1:0         Intel(R) I350 Gigabit Network Connection #2                   physical2                 1.00 Gbps ...
4-4.VLAN Interfaceの追加 その1

以下のコマンドにてVLAN Interfaceを追加します。
ここでは例として、物理NICIntel(R) I350 Gigabit Network Connectionに、VLANID300のVLAN Interfaceを追加しています。

PS C:\Windows\system32> Add-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection" -VLANID 300

VLANID VLANName                                       ParentName
------ --------                                       ----------
300    VLAN300                                        Intel(R) I350 Gigabit Network Connection
4-5.VLAN Interfaceの追加 その2

以下のコマンドにてVLAN Interfaceを複数追加します。
ここでは例として、物理NICIntel(R) I350 Gigabit Network Connectionに、VLANID300と304のVLAN Interfaceを追加しています。VLANIDはカンマで区切ってください。

PS C:\Windows\system32> Add-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection" -VLANID 300,304

VLANID VLANName                                       ParentName
------ --------                                       ----------
300    VLAN300                                        Intel(R) I350 Gigabit Network Connection
304    VLAN304                                        Intel(R) I350 Gigabit Network Connection
4-6.VLAN Interfaceの追加 その3

以下のコマンドにてVLAN Interfaceを複数かつ連続追加します。
ここでは例として、物理NICIntel(R) I350 Gigabit Network Connectionに、VLANID300から304のVLAN Interfaceを追加しています。VLANIDは(300..304)として指定してください。

PS C:\Windows\system32> Add-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection" -VLANID (300..304)

VLANID VLANName                                       ParentName
------ --------                                       ----------
300    VLAN300                                        Intel(R) I350 Gigabit Network Connection
301    VLAN301                                        Intel(R) I350 Gigabit Network Connection
302    VLAN302                                        Intel(R) I350 Gigabit Network Connection
303    VLAN303                                        Intel(R) I350 Gigabit Network Connection
304    VLAN304                                        Intel(R) I350 Gigabit Network Connection

VLAN Interfaceが一つも作成されていない状態で、上記コマンドを打つと、私の環境ではVLAN Interface作成まで(プロンプトが出力結果を返すまで)に5分程度掛かりました。

4-7.VLAN Interfaceの追加 その4

以下のコマンドにて、UnTag(タグなし)のVLAN Interfaceを追加します。
ここでは例として、物理NICIntel(R) I350 Gigabit Network Connectionに、VLANID0のVLAN Interfaceを追加しています。
また、UnTagのVLAN Interfaceを追加する場合、物理NICに1つ以上のVLAN Interfaceを作成した後に追加してください。

PS C:\Windows\system32> Add-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection" -VLANID 0

VLANID VLANName                                       ParentName
------ --------                                       ----------
0      タグなし                                       Intel(R) I350 Gigabit Network Connection
4-8.VLAN Interfaceの名前編集

以下のコマンドにて、タグなしのVLAN Nameを変更します。
ここでは例として、物理NICIntel(R) I350 Gigabit Network ConnectionのVLANID0のVLAN Nameを変更しています。
2Byte文字は極力使用したくないので。。

PS C:\Windows\system32> Set-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection"  -VLANID 0 -NewVLANName "untag"

VLANID VLANName                                       ParentName
------ --------                                       ----------
0      untag                                          Intel(R) I350 Gigabit Network Connection

また、Set-IntelNetVLANコマンドでは、VLANIDを変更することも可能です。
ここでは例として、物理NICIntel(R) I350 Gigabit Network ConnectionのVLANID300のVLANIDを3に変更しています。
但し、以下のコマンドのみですと、VLAN Nameは変更されないため、先のコマンドにてVLAN Nameも変更しておいてください。また、併用も可能です。

PS C:\Windows\system32> Set-IntelNetVLAN -ParentName "Intel(R) I350 Gigabit Network Connection"  -VLANID 300 -NewVLANID 3

VLANID VLANName                                       ParentName
------ --------                                       ----------
3      VLAN300                                        Intel(R) I350 Gigabit Network Connection

ちなみに、上記のVLAN Nameは以下の画面で表示されます。
実際はレジストリ上に記載されるため、極力2Byte文字は使用したくないと考えています。
f:id:metonymical:20190504071841p:plain

5.設定の確認

5-1.VLAN Interfaceの確認

以下のコマンドにて、設定したVLAN Interfaceを確認することが可能です。

PS C:\Windows\system32> Get-IntelNetVLAN

VLANID VLANName                                       ParentName
------ --------                                       ----------
301    VLAN301                                        Intel(R) I350 Gigabit Network Connection
303    VLAN303                                        Intel(R) I350 Gigabit Network Connection
300    VLAN300                                        Intel(R) I350 Gigabit Network Connection
0      untag                                          Intel(R) I350 Gigabit Network Connection
302    VLAN302                                        Intel(R) I350 Gigabit Network Connection
304    VLAN304                                        Intel(R) I350 Gigabit Network Connection

6.補足

6-1.ヘルプの使用

以下のように、helpと入力した後、コマンドに引数なしで実行するとヘルプが表示されます。

PS C:\Windows\system32> help Add-IntelNetVLAN

名前
    Add-IntelNetVLAN

概要
    アダプターまたはインテル(R) ANS チームのいずれかで VLAN を作成します。


構文
    Add-IntelNetVLAN []

    Add-IntelNetVLAN []


説明
    Add-IntelNetVLAN は、アダプターまたはインテル(R) ANS チームのいずれかに新しい VLAN を追加できます。新しい VLAN は、1 つまたは複数の VLAN ID を指定することによって追加されます。デバイ
    スの名前またはデバイスのオブジェクトのいずれかを使用して、親デバイスを指定できます。テーブル表示で新しい VLAN を表示します。

    アダプターまたはチームに最大 64 個の VLAN を追加できます。

    注:Windows* 10 搭載のシステムでインテル(R) アドバンスト・ネットワーク・サービス (インテル(R) ANS) チームまたは VLAN を作成するには、最新の Microsoft* Windows* 10 更新プログ
    ラムをインストールする必要があります。


関連するリンク
    Get-IntelNetAdapter
    Get-IntelNetTeam

注釈
    例を参照するには、次のように入力してください: "get-help Add-IntelNetVLAN -examples".
    詳細を参照するには、次のように入力してください: "get-help Add-IntelNetVLAN -detailed".
    技術情報を参照するには、次のように入力してください: "get-help Add-IntelNetVLAN -full".
    オンライン ヘルプを参照するには、次のように入力してください: "get-help Add-IntelNetVLAN -online"

さらに、詳細やコマンド例を確認したい場合は、注釈に従って、以下のようにコマンドを入力してください。

get-help Add-IntelNetVLAN -examples
get-help Add-IntelNetVLAN -detailed
get-help Add-IntelNetVLAN -full

初回は以下のようにアップデートを要求されるため、yを入力してアップデートしてください。

PS C:\Windows\system32> get-help Add-IntelNetVLAN -examples

Update-Help を実行しますか?
Update-Help コマンドレットは、Windows PowerShell モジュールの最新のヘルプ
ファイルをダウンロードして、コンピューターにインストールします。Update-Help
コマンドレットの詳細については、https://go.microsoft.com/fwlink/?LinkId=210614 を参照してください。
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y

2020/02/15 追記
Windows10 1809→1909にVersion Upしたところ、VLAN Interfaceの設定が全て消えました。
このため、Version Up後は再度作り直しが必要となります。
また、作り直した後、コンパネ上の名前*2が「イーサネットxx」と表示されます。
これを元々使っていた名前(例えば、vlan300)に変更しようとすると、以下のエラーが表示され、同じ名前に設定することができません。
f:id:metonymical:20200216002705p:plain
このため、「vlan0300」や「v300」など名前を工夫してください。*3


加えて、IntelNICドライバのVersionは24.3以降の方が良さそうです。
情報ソースは以下のURLとなります。
https://forums.intel.com/s/question/0D50P00004Vdz0P/windows-1909?language=ja

私もVer23.5.2のままだったことに起因したのか、VLAN Interfaceの有効化ができなくなりました。
このため、IntelNICドライバをVer25.0.0.0へアップデートしたところ正常に動作することを確認しました。


以上です。

7.最後に

以下のサイトを参考にさせて頂きました。
https://www.intel.co.jp/content/www/jp/ja/support/articles/000023545/network-and-i-o.html

以前は、Windows Server2016かつPowerShellのみでVLAN Interface作成が可能だった時期があったと思います。その後、Intel PROSetのVer22系にてWindows10でもVLAN InterfaceがGUI(NICの構成のプロパティ)で作成可能になりました。

しかし、Windows10でできるようになったものの、VerUpするたびにVLAN Interfaceが消えたりしていたため、一抹の不安を感じていたのですが、Intelのサイトやフォーラムを読んでいくと、いろいろと試行錯誤していた変遷がわかりました。NICの構成のプロパティでは、色々と制約があったようで、今回ご紹介したPowerShellによる設定となったようです。

今後はIntel ACU(Adapter Configuration Utility)上で設定できるみたいなので、それを待ちたいと思います。

また、今回はチーミングについて触れていませんが、上記のIntelサイトにはチーミングコマンドについても記載があるため、興味がある方はヘルプを参照しながら設定してみてください。

*1:32bit版であればPROWin32.exeなど

*2:Power Shellで設定するVLAN Nameではなく、コンパネ上の表示名の方です。

*3:VerUp前の名前はレジストリ上にゴミとして残っていますが、これを消すのリスクの方が大きいと思いますので。