L2 SwitchとPCとでTrunk接続

# L2 SwitchとPC上とをTrunkでつなぐ
もともとはGNS3で実現したかったのだが、その前に確認したこと。リアルなL2 SwitchとWindows PCとをTrunkで接続し、L2 Switchに接続したPCとVirtual Box上のVMとを通信させる。

## 環境
下記のようなもの。

![Hyper-V.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/d77db754-6483-fdf7-6c99-d15181cb126d.png)

- 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を利用。下記設定を実施。

![VLANsetting1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/8cdd9dfe-ae12-be22-cbfc-07b12150b051.png)
![VLANsetting2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/5f8f3caa-2587-abed-bd5f-18636406d145.png)

- 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](https://taeffner.net/2022/04/multiple-vlans-windows-10-11-onboard-tools-hyper-v/)
- Microsoft Hyper-Vサイト
    - [Get-NetAdapter](https://learn.microsoft.com/ja-jp/powershell/module/netadapter/get-netadapter?view=windowsserver2022-ps)
    - [New-VMSwitch](https://learn.microsoft.com/ja-jp/powershell/module/hyper-v/new-vmswitch?view=windowsserver2022-ps)
    - [Add-VMNetworkAdapter](https://learn.microsoft.com/ja-jp/powershell/module/hyper-v/add-vmnetworkadapter?view=windowsserver2022-ps)

まずは、Hyper-Vの有効化（Windowsコンポーネント）の実施。

![有効化.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/9245d0af-903d-c986-fe82-dfed19f3d3bf.png)
- 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で確認すると下記となる。

![All-NetAdapterのコピー.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/9a097445-8cfe-d067-7c5c-cfc0f71a5855.png)

次に、VirtualBoxのVMでのネットワークアダプタの設定を行う。VLAN10 VMは下記。ブリッジアダプタでVLAN10用仮想ネットワークアダプタを選択する。

![AntiX_VLAN10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/669ba062-d09a-4269-a688-511e2f729717.png)

VLAN20 VMは下記。VLAN20用仮想ネットワークアダプタを選択。

![Bodhi_VLAN20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/1ea6613e-8ee0-f564-33c6-2af3ded44515.png)

## 検証
ping実行時のWiresharkで取得したデータで確認。

### PC1とVM1とのping
PC1とL2 Switchとの間の状況は下記。

![VLAN10-Accessのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/79777d50-f164-da74-04f2-966b0a41ffc3.png)

ここは説明不要。Trunk（L2 SwitchとPC3との間）の状況は下記。

![VLAN10-Trunkのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/185e0fee-f006-45b0-b912-a859b3c39fe2.png)

VLANタグIDの10が見える。

### PC2とVM2とのping
PC2とL2 Switchとの間の状況は下記。

![VLAN20-Accessのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/8869a8bc-f4cc-ae3e-006c-2f0b87947f98.png)

こちらも説明不要。Trunk（L2 SwitchとPC3との間）の状況は下記。

![VLAN20-Trunkのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/a4b90c53-d825-534b-05af-22f68fefbf52.png)

VLANタグIDの20が見える。

## おまけ
ネットワークアダプタの削除は下記にて実施。

```
> Remove-VMNetworkAdapter -ManagementOS -Name "VLAN10" -SwitchName "VM-Switch"
```

ネットワークブリッジの削除は下記。

```
> Remove-VMSwitch -name "VM-Switch"
```

EOF