VLANの設定 ipコマンド

ipコマンドでVLANデバイスを設定する方法について説明します。ホストを再起動すると設定が消えるため、永続的に設定したい場合は、nmcliコマンドなどを利用して下さい。

ネットワークデバイスの確認

まずは、ip linkコマンドで現状を確認します。ip addressでも構いません。

ip link
1: lo:  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:  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

ネットワークデバイスeth0UPの状態になっていることが確認出来ました。

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.100192.168.100.10/24を設定します。

ip addr add dev eth0.100 192.168.100.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.168.100.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