L2 SwitchとPC上とをTrunkでつなぐ
もともとはGNS3で実現したかったのだが、その前に確認したこと。リアルなL2 SwitchとWindows PCとをTrunkで接続し、L2 Switchに接続したPCとVirtual Box上のVMとを通信させる。
環境
下記のようなもの。
- L2 SwitchとPC3とがTrunkで接続
- L2 Switchには、PC1(VLAN10)とPC2(VLAN20)とが接続
- PC3には、Virtual Box上のVM1(VLAN10)とVM2(VLAN20)とが存在
- PC1とVM1とが通信、PC2とVM2とが通信
- PC3には、ネットワークブリッジが存在し、下記が所属
- L2 Switchと接続するリアルなネットワークアダプタ
- Trunk用の仮想ネットワークアダプタ
- VLAN10用の仮想ネットワークアダプタ
- VLAN20用の仮想ネットワークアダプタ
設定
L2 Switch
TP-LinkのTL-SG105PEを利用。下記設定を実施。
- Port 3: Trunk Port for VLAN10 and VLAN20
- Port 2: Access Port for VLAN10
- Port 4: Access Port for VLAN20
PC3
Hyper-Vを用いると仮想的にTrunk Portを実現できることがわかった。参考サイトは下記など。
- Multiple VLAN’s using Windows 10/11 Onboard Tools
- Microsoft Hyper-Vサイト
まずは、Hyper-Vの有効化(Windowsコンポーネント)の実施。
- Hyper-Vサービス
- Windows PowerShell用Hyper-Vモジュール
次に、PowerShellにて仮想ネットワークアダプタの作成。まずは、ネットワークアダプタの確認。
> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpe
ed
---- -------------------- ------- ------ ---------- -------
イーサネット 4 Intel(R) 82575EB Gigabit Network C...#2 27 Disconnected 6C-B3-11-ss-tt-uu 0 bps
ブリッジの対象となるリアルなネットワークアダプタは”イーサネット 4”である。次に仮想ネットワークブリッジ(名称:VM-Switch)の作成。
> New-VMSwitch -name VM-Switch -NetAdapterName "イーサネット 4" -AllowManagementOS $true
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
VM-Switch External Intel(R) 82575EB Gigabit Network Connection #2
仮想ネットワークアダプタの作成。
> Add-VMNetworkAdapter -ManagementOS -Name "VM-Trunk" -SwitchName "VM-Switch" -Passthru | Set-VMNetworkAdapterVlan -Trunk -AllowedVlanIdList 10-20 -NativeVlanId 1
> Add-VMNetworkAdapter -ManagementOS -Name "VLAN10" -SwitchName "VM-Switch" -Passthru | Set-VMNetworkAdapterVlan -Access -VlanId 10
> Add-VMNetworkAdapter -ManagementOS -Name "VLAN20" -SwitchName "VM-Switch" -Passthru | Set-VMNetworkAdapterVlan -Access -VlanId 20
- VM-Trunk: トランクポート
- VLAN10: アクセスポート
- VLAN20: アクセスポート
ネットワークブリッジの状況は下記となる。
> Get-VMNetworkAdapter -ManagementOS
Name IsManagementOs VMName SwitchName MacAddress Status IPAddres
ses
---- -------------- ------ ---------- ---------- ------ --------
VM-Switch True VM-Switch 6CB311xxyyzz {Ok}
VM-Trunk True VM-Switch 00155Daabbcc {Ok}
VLAN10 True VM-Switch 00155Dddeeff {Ok}
VLAN20 True VM-Switch 00155Dyyooqq {Ok}
Container NIC 3cf6ee83 True Default Switch 00155Dgghhii {Ok}
作成したネットワークアダプタの状況は下記。
> Get-VMNetworkAdapterVlan -ManagementOS
VMName VMNetworkAdapterName Mode VlanList
------ -------------------- ---- --------
Container NIC 3cf6ee83 Untagged
VLAN20 Access 20
VM-Trunk Trunk 1,10-20
VLAN10 Access 10
VM-Switch Untagged
全体の状況は下記(関連部分のみ、Ethernetケーブル接続前)。
> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpe
ed
---- -------------------- ------- ------ ---------- -------
イーサネット 4 Intel(R) 82575EB Gigabit Network C...#2 27 Disconnected 6C-B3-11-xx-yy-zz 0 bps
vEthernet (VM-Switch) Hyper-V Virtual Ethernet Adapter #2 24 Disconnected 6C-B3-11-xx-yy-zz 10 Gbps
vEthernet (VLAN10) Hyper-V Virtual Ethernet Adapter #4 21 Disconnected 00-15-5D-qq-zz-05 10 Gbps
vEthernet (VM-Trunk) Hyper-V Virtual Ethernet Adapter #3 20 Disconnected 00-15-5D-qq-yy-04 10 Gbps
vEthernet (VLAN20) Hyper-V Virtual Ethernet Adapter #5 10 Disconnected 00-15-5D-qq-kk-06 10 Gbps
Ethernetケーブル接続後に、GUIで確認すると下記となる。
次に、VirtualBoxのVMでのネットワークアダプタの設定を行う。VLAN10 VMは下記。ブリッジアダプタでVLAN10用仮想ネットワークアダプタを選択する。
VLAN20 VMは下記。VLAN20用仮想ネットワークアダプタを選択。
検証
ping実行時のWiresharkで取得したデータで確認。
PC1とVM1とのping
PC1とL2 Switchとの間の状況は下記。
ここは説明不要。Trunk(L2 SwitchとPC3との間)の状況は下記。
VLANタグIDの10が見える。
PC2とVM2とのping
PC2とL2 Switchとの間の状況は下記。
こちらも説明不要。Trunk(L2 SwitchとPC3との間)の状況は下記。
VLANタグIDの20が見える。
おまけ
ネットワークアダプタの削除は下記にて実施。
> Remove-VMNetworkAdapter -ManagementOS -Name "VLAN10" -SwitchName "VM-Switch"
ネットワークブリッジの削除は下記。
> Remove-VMSwitch -name "VM-Switch"
EOF