CentOSでTrunk(タグVLAN)を実装
CentOS7でタグVLANを実装する方法を確認。
CentOS上にタグVLANを設定したことがなかったので試してみる。
最初の確認(タグなし)
まずはタグなし状態で接続できるか確認する。
SwitchのGi0/0ではNativeVLANはVLAN1,
Gi0/1のAccessポートもVLAN1となっている。
つまりCentOS1<=>CentOS2ではタグなしでやり取りするので問題ない。
#### Switch ####
(config)#int g0/0
(config-if)#switchport trunk encapsulation dot1q
(config-if)#switchport mode trunk
(config-if)#switchport trunk native vlan 1
(config-if)#int g0/1
(config-if)#switchport mode access
(config-if)#switchport access vlan 1
#### CentOS1 ####
[root@centos1]#ip a
~
inet 192.168.1.1/24 **
~
#### CentOS2 ####
[root@centos1]#ip a
~
inet 192.168.1.2/24 **
~
これらの設定では問題なくPingが通る。
次にタグをつけて通信してみる。
このように設定する。
SwitchのGi0/1ではVLANが10に設定されており、
Gi0/0のNativeVLAN(タグなし)はVLAN1に設定されている。
したがって、CentOS1とSwitchの間ではVLAN10のタグをつける必要がある。
CentOS1でタグVLANの設定が必要になる。
以下のように設定する。
802.1qモジュールを読み込む
# modprobe 8021q
interfaceの追加
# nmcli con add type vlan con-name <name> dev <parent_dev> id <vlan_id>
# nmcli con
NAME UUID TYPE DEVICE
eth0 **** ethernet eth0
# nmcli con add type vlan con-name eth0-vlan10 dev eth0 id 10
Connection 'eth0-vlan10' (****) successfully added.
# nmcli con add type vlan con-name eth0-vlan20 dev eth0 id 20
Connection 'eth0-vlan20' (****) successfully added.
interfaceの設定
# nmcli con
NAME UUID TYPE DEVICE
eth0-vlan10 **** vlan eth0.10
eth0-vlan20 **** vlan eth0.20
eth0 **** ethernet eth0
// 固定IPに。
# nmcli con mod eth0-vlan10 ipv4.method manual
# nmcli con mod eth0-vlan20 ipv4.method manual
// IPアドレスの設定
# nmcli con mod eth0-vlan10 ipv4.addresses 192.168.10.1/24
# nmcli con mod eth0-vlan20 ipv4.addresses 192.168.20.1/24
interfaceの有効化
# nmcli con up eth0-vlan10
Connection successfully activated
# nmcli con up eth0-vlan20
Connection successfully activated
# nmcli dev
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
eth0.10 vlan connected eth0-vlan10
eth0.20 vlan connected eth0-vlan20
lo loopback unmanaged --
確認
CentOS2にPingを送ってみる。
正常に届くことを確認。
Wiresharkで確認してみる。
下のパケットはSwitchのGi0/0をキャプチャしたもの。
802.1Qのヘッダが付いてるのが確認できる。