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