らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

vSphere 6.7 上の CentOS8 に VLAN を設定する

vSphere 6.7 上に作成した CentOS8 で VLAN インターフェイスを作成し、仮想マシン間で疎通出来るようにする手順をメモしておきます。

構成

最終的には以下の構成を構築します。 Linux-01 と Linux-02 は同一のポートグループに接続されているものとします。

f:id:sig9:20200425032853p:plain

仮想スイッチと Trunk 接続するには ESX 内の仮想マシン VLAN タギング(VGT モード)のサンプル構成 (1004252) に記載があるように、ポートグループの VLAN ID を 4,095 に設定し、VGT モードとして動作させる必要があります。

仮想マシンは両 Linux ともに CentOS 8.1.1911 を利用しました。

# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)

結論

ポートグループを VGT モード (VLAN ID 4,095) に設定した上で Linux 側では下記のように設定すれば VLAN インターフェイスが利用出来るようになります。

nmcli connection add type vlan con-name vlan10 dev ens192 id 10
nmcli connection modify vlan10 \
    ipv4.method manual \
    ipv4.addresses 10.0.10.1/24 \
    ipv4.gateway 10.0.10.254 \
    ipv4.dns 1.1.1.1
nmcli connection up vlan10

Step.1

初期状態では IP アドレスを設定していない為、IP アドレスが割り当てられていません。

Linux-01

# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:50:56:be:1e:83 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:febe:1e83/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Linux-02

# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:50:56:be:59:d1 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::250:56ff:febe:59d1/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Step.2

VLAN インターフェイスを追加します。 以下のインターフェイスを作成します。

項目
物理インターフェイス ens192
VLAN インターフェイス vlan10
VLAN ID 10

Linux-01/02 共通

nmcli connection add type vlan con-name vlan10 dev ens192 id 10

Step.3

作成した VLAN インターフェイスに IP アドレス、デフォルトゲートウェイDNS サーバの設定を行います。

Linux-01

nmcli connection modify vlan10 \
    ipv4.method manual \
    ipv4.addresses 10.0.10.1/24 \
    ipv4.gateway 10.0.10.254 \
    ipv4.dns 1.1.1.1

Linux-02

nmcli connection modify vlan10 \
    ipv4.method manual \
    ipv4.addresses 10.0.10.2/24 \
    ipv4.gateway 10.0.10.254 \
    ipv4.dns 1.1.1.1

Step.4

この状態ではまだ VLAN インターフェイスが認識されていません。

# nmcli device
DEVICE  TYPE      STATE         CONNECTION
ens192  ethernet  disconnected  --
lo      loopback  unmanaged     --

Step.5

VLAN インターフェイスを認識させます。

Linux-01/02 共通

nmcli connection up vlan10

Step.6

これで VLAN インターフェイスが認識されるようになりました。

# nmcli device
DEVICE     TYPE      STATE                                  CONNECTION
ens192.10  vlan      connected                              vlan10
ens192     ethernet  connecting (getting IP configuration)  System ens192
lo         loopback  unmanaged

Step.7

IP アドレスが設定されました。

Linux-01

# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:50:56:be:1e:83 brd ff:ff:ff:ff:ff:ff
6: ens192.10@ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:50:56:be:1e:83 brd ff:ff:ff:ff:ff:ff
    inet 10.0.10.1/24 brd 10.0.10.255 scope global noprefixroute ens192.10
       valid_lft forever preferred_lft forever
    inet6 fe80::115c:6007:e30:248f/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Linux-02

# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:50:56:be:59:d1 brd ff:ff:ff:ff:ff:ff
3: ens192.10@ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:50:56:be:59:d1 brd ff:ff:ff:ff:ff:ff
    inet 10.0.10.2/24 brd 10.0.10.255 scope global noprefixroute ens192.10
       valid_lft forever preferred_lft forever
    inet6 fe80::7c61:a9c8:d912:8233/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Step.8

しかし、この状態では Linux-01 ~ Linux-02 間で Ping が飛びません。

Linux-01

# ping -c 3 10.0.10.2
PING 10.0.10.2 (10.0.10.2) 56(84) bytes of data.
From 10.0.10.1 icmp_seq=1 Destination Host Unreachable
From 10.0.10.1 icmp_seq=2 Destination Host Unreachable
From 10.0.10.1 icmp_seq=3 Destination Host Unreachable

--- 10.0.10.2 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 67ms

Step.9

ポートグループの設定編集画面を開きます。

f:id:sig9:20200425031909p:plain:w640

Step.10

デフォルト状態では VLAN ID が 0 になっていますが、これを 4095 に設定します。

f:id:sig9:20200425031912p:plain:w640

Step.11

これで Linux0-1 ~ Linux-02 間で Ping が飛ぶようになりました。

Linux-01

# ping -c 3 10.0.10.2
PING 10.0.10.2 (10.0.10.2) 56(84) bytes of data.
64 bytes from 10.0.10.2: icmp_seq=1 ttl=64 time=0.219 ms
64 bytes from 10.0.10.2: icmp_seq=2 ttl=64 time=0.152 ms
64 bytes from 10.0.10.2: icmp_seq=3 ttl=64 time=0.157 ms

--- 10.0.10.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 0.152/0.176/0.219/0.030 ms