久しぶりにGNS3（その26：VMをL2 Switch化）

# 仮想マシン（VM：Lubuntu）をトランクポート対応L2 Switch化
GNS3上の仮想マシン（VM：Lubuntu）をL2 Switch化し、トランクポート対応させる。

## ネットワーク
![topology2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/6e1df917-9f50-228a-2cbd-52371f86d09e.png)
- L2 Switch化するLubuntuのI/F-esp0s3に、GNS3提供のL2 Switchを、VLANトランク（802.1Q）にて接続
- LubuntuのI/F-esp0s8およびesp0s9とはアクセスポート
- 上側がVLAN13（タグID：13）、下側がVLAN24（タグID：24）
- PCのIPアドレスは記載のとおり（あえて、上側と下側とで同じIPアドレスを使用）

## 設定
### L2 Switch
![L2SW_Confのコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/a80cd4ae-c548-db1b-aaf2-d4e61585612e.png)
- Port0:トランクポート（802.1Q）
- Port1:アクセスポート（VLAN13:上側）
- Port2:アクセスポート（VLAN24:下側）

### VM:Lubuntu
#### VirtualBox VM設定
VirtualBoxのネットワークアダプタをGNS3が操作できるように設定。
![AllowGNS3のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/d4a24dc0-8f57-5dd0-d094-9f645c3842c3.png)

#### LinuxにおけるBridgeやVLAN設定
下記記事をほぼそのまま利用。
- [VLAN Bridging (802.1q)](https://docs.bisdn.de/network_configuration/vlan_bridging.html)

```
# ip link add name swbridge type bridge vlan_filtering 1　vlan_default_pvid 0
# ip link set swbridge up
```
”swbridge”というBridgeを作成し、有効化する。

```
# ip link set enp0s8 master swbridge 
# ip link set enp0s8 up
# ip link set enp0s9 master swbridge
# ip link set enp0s9 up
# ip link set enp0s3 master swbridge
# ip link set enp0s3 up
```
すべてのネットワークI/F（enp0s8、enp0s9、enp0s3）をBridge”swbridge”に属させ、有効化する。

```
# bridge vlan add vid 13 dev enp0s8 pvid untagged
# bridge vlan add vid 24 dev enp0s9 pvid untagged
# bridge vlan add vid 13 dev enp0s3
# bridge vlan add vid 24 dev enp0s3
```
- enp0s8にタグID13を割り当て、I/F自体にはタグを付加しない
- enp0s9にタグID24を割り当て、I/F自体にはタグを付加しない
- enp0s3にタグID13およびタグID24を割り当てる（タグを付加）

ここまでで、設定は完了。ネットワークI/Fの状況は下記となる。
```
$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master swbridge state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:03:35:3c brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master swbridge state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:d2:97:f2 brd ff:ff:ff:ff:ff:ff
4: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master swbridge state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:7f:54:7d brd ff:ff:ff:ff:ff:ff
5: swbridge: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether 08:00:27:03:35:3c brd ff:ff:ff:ff:ff:ff
```
作成したBridge”swbridge”が見える。”swbridge”の状況は下記となる。
```
$ brctl show
bridge name     bridge id               STP enabled     interfaces
swbridge                8000.08002703353c       no              enp0s3
                                                        enp0s8
                                                        enp0s9
```
”swbridge”に属しているネットワークI/Fの"enp0s3"、"enp0s8"、"enp0s9"が見える。VLANの状況は下記となる。
```
$ bridge vlan
port    vlan ids
enp0s3   13
         24

enp0s8   13 PVID Egress Untagged

enp0s9   24 PVID Egress Untagged

swbridge        None
```
PCと接続されているI/F（enp0s8、enp0s9）には”Untagged”が見え、アクセスポート化されていることがわかる。また、L2 Switchと接続されているI/Fであるenp0s3はトランク化されている。また、両者にアサインされているタグIDが見える。

## 検証
上側のPC1および下側のPC2から、”ping 192.168.10.2”した時の、トランク部のネットワークキャプチャデータが下記となる。

### PC1(VLAN13)
![VLAN13のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/b2a4747b-3ce6-7848-0802-c47398e2f798.png)
802.1QフィールドにタグID13が見える。

### PC2(VLAN24)
![VLAN24のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/ad44a8b1-8479-bb2a-6f83-e25d3cd9d0de.png)
802.1QフィールドにタグID24が見える。

EOF