ipコマンドでVLANを設定する方法について説明します。
ホストを再起動するとこれらの設定は無効になるため、永続的に設定したい場合は、nmcliコマンドなどを利用して下さい。
ネットワークデバイスを確認する
まずは、ip linkコマンドで現状を確認します。ip addressでも構いません。
# 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:38:3c:fb brd ff:ff:ff:ff:ff:ff
ネットワークデバイスeth0がUPの状態になっていることが確認出来ました。
VLANデバイスを作成する
ここでは、eth0に対してVLAN ID 100を設定したVLANデバイスeth0.100を作成します。
# ip link add link eth0 name eth0.100 type vlan id 100
VLANデバイスが作成されたか確認します。
# ip link
(一部省略)
3: eth0.100@eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:0c:29:38:3c:fb brd ff:ff:ff:ff:ff:ff
作成直後はデバイスがDOWNの状態になっているため、利用する前にip link setコマンドでリンクアップさせます。
# ip link set dev eth0.100 up
VLANデバイスを確認する
ip linkコマンドに-dオプションを付けてデバイスの詳細を表示します。
# ip -d link show dev eth0.100
3: eth0.100@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:38:3c:fb brd ff:ff:ff:ff:ff:ff promiscuity 0
vlan protocol 802.1Q id 100 addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535
VLANデバイスeth0.100がUP状態になりました。また、vlan protocol 802.1Q id 100とあるように、デバイスにはVLAN ID 100が設定されています。
/proc/net/vlan/configでもVLANの設定が確認できます。
# cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.100 | 100 | eth0
VLANデバイスにIPアドレスを設定する
VLANデバイスにIPアドレスを設定して疎通確認することができます。ここではeth0.100に192.0.2.10/24を設定します。
# ip addr add dev eth0.100 192.0.2.10/24
デバイスにIPアドレスが設定されていることを確認します。
# ip addr show eth0.100
3: eth0.100@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:38:3c:fb brd ff:ff:ff:ff:ff:ff
inet 192.0.2.10/24 scope global eth0.100
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe38:3cfb/64 scope link
valid_lft forever preferred_lft forever
あとはpingコマンドなどで疎通を確認してください。
デバイスに複数のVLANタグを設定する
ネットワークデバイスに対して複数のVLANデバイスを作成できます。
# ip link add link eth0 name eth0.200 type vlan id 200
# ip link add link eth0 name eth0.300 type vlan id 300
# ip link set dev eth0.200 up
# ip link set dev eth0.300 up
VLAN ID 100に加えて200と300を設定しました。VLANデバイスeth0.200とeth0.300が作成されます。
# cat /proc/net/vlan/config
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.100 | 100 | eth0
eth0.200 | 200 | eth0
eth0.300 | 300 | eth0