Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

10.3. コマンドラインツール nmcli を使った 802.1Q VLAN タグの設定

システム上で利用可能なインターフェイスを表示するには、以下のコマンドを実行します。
~]$ nmcli con show
NAME         UUID                                  TYPE            DEVICE
System enp2s0  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  802-3-ethernet  enp2s0
System enp1s0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  enp1s0
出力の NAME フィールドは常に接続 ID を表すことに留意してください。これはインターフェイス名と同じように見えますが、異なるものです。nmcli connection コマンドで ID を使用して接続を識別できます。firewalld などの他のアプリケーションで DEVICE 名を使用します。
VLAN インターフェイス VLAN10 および ID 10 のイーサネットインターフェイス enp1s0 で 802.1Q VLAN インターフェイスを作成するには、以下のコマンドを実行します。
~]$ nmcli con add type vlan ifname VLAN10 dev enp1s0 id 10
Connection 'vlan-VLAN10' (37750b4a-8ef5-40e6-be9b-4fb21a4b6d17) successfully added.
VLAN インターフェイスに con-name を指定しなかったため、接続名がインターフェイス名の前に種類を追加したものとなっていることに留意してください。別の方法では、以下のように con-name オプションで名前を指定します。
~]$ nmcli con add type vlan con-name VLAN12 dev enp1s0 id 12
Connection 'VLAN12' (b796c16a-9f5f-441c-835c-f594d40e6533) successfully added.

VLAN インターフェイスにアドレスを割り当てる

同じ nmcli コマンドを使用して、他のインターフェイスと同様に静的および動的インターフェイスアドレスを割り当てることができます。
たとえば、静的 IPv4 アドレスとゲートウェイを持つ VLAN インターフェイスを作成するコマンドは以下のようになります。
~]$ nmcli con add type vlan con-name VLAN20 dev enp1s0 id 20 ip4 10.10.10.10/24 \
gw4 10.10.10.254
動的アドレスを割り当てる VLAN インターフェイスを作成するには、以下のコマンドを実行します。
~]$ nmcli con add type vlan con-name VLAN30 dev enp1s0 id 30
nmcli コマンドを使用してインターフェイスを設定する例は、「nmcli を使用したネットワーク接続」 を参照してください。
作成した VLAN インターフェイスを表示するには、以下のコマンドを実行します。
~]$ nmcli con show
NAME         UUID                                  TYPE            DEVICE
VLAN12         4129a37d-4feb-4be5-ac17-14a193821755  vlan            enp1s0.12
System enp2s0  9c92fad9-6ecb-3e6c-eb4d-8a47c6f50c04  802-3-ethernet  enp2s0
System enp1s0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  enp1s0
vlan-VLAN10    1be91581-11c2-461a-b40d-893d42fed4f4  vlan            VLAN10
新規に設定した接続の詳細情報を表示するには、以下のコマンドを実行します。
~]$ nmcli -p con show VLAN12
===============================================================================
                      Connection profile details (VLAN12)
===============================================================================
connection.id:                          VLAN12
connection.uuid:                        4129a37d-4feb-4be5-ac17-14a193821755
connection.interface-name:              --
connection.type:                        vlan
connection.autoconnect:                 yes

-------------------------------------------------------------------------------
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     auto

vlan.interface-name:                    --
vlan.parent:                            enp1s0
vlan.id:                                12
vlan.flags:                             0 (NONE)
vlan.ingress-priority-map:
vlan.egress-priority-map:
-------------------------------------------------------------------------------
===============================================================================
      Activate connection details (4129a37d-4feb-4be5-ac17-14a193821755)
===============================================================================
GENERAL.NAME:                           VLAN12
GENERAL.UUID:                           4129a37d-4feb-4be5-ac17-14a193821755
GENERAL.DEVICES:                        enp1s0.12
GENERAL.STATE:                          activating
[output truncated]
VLAN コマンドのその他のオプションは、nmcli (1) man ページの VLAN セクションに記載されています。man ページでは、VLAN が作成されるデバイスは、parent device と呼ばれています。上記の例では、デバイスはインターフェイス名 enp1s0 で指定されており、接続 UUID または MAC アドレスで指定することもできます。
イーサネットインターフェイス np2s0 上で、イングレス優先度マッピングを使用して 802.1Q VLAN 接続プロファイル (名前 VLAN1 ID 13 で、以下のコマンドを実行します。
~]$ nmcli con add type vlan con-name VLAN1 dev enp2s0 id 13 ingress "2:3,3:5"
上記で作成された VLAN に関連するすべてのパラメーターを表示するには、以下のコマンドを実行します。
~]$ nmcli connection show vlan-VLAN10
MTU を変更するには、以下のコマンドを実行します。
~]$ nmcli connection modify vlan-VLAN10 802.mtu 1496
MTU 設定は、ネットワーク層パケットの最大サイズを決定します。リンク層フレームが送信可能なペイロードの最大サイズは、ネットワーク層 MTU を制限します。通常のイーサネットフレームの場合、1500 バイトの MTU になります。VLAN 設定の際には、802.1Q タグを受け入れるためにリンク層ヘッダーのサイズが 4 バイト拡大されるので、MTU を変更する必要はありません。
執筆時点では、connection.interface-namevlan.interface-name は同じでなければなりません(設定されている場合)。したがって、nmcli のインタラクティブモードを使用して同時に変更する必要があります。VLAN 接続名を変更するには、以下のコマンドを実行します。
~]$ nmcli con edit vlan-VLAN10
nmcli> set vlan.interface-name superVLAN
nmcli> set connection.interface-name superVLAN
nmcli> save
nmcli> quit
nmcli ユーティリティーを使用すると、802.1Q コードの動作を変更する ioctl フラグを設定および消去できます。次の VLAN フラグが NetworkManager でサポートされています。
  • 0x01 - 出力パケットヘッダーを並び替えます。
  • 0x02 - GVRP プロトコルを使用します。
  • 0x04 - インターフェイスとそのマスターのバインディングを外します。
VLAN の状態は、親もしくはマスターインターフェイス (VLAN が作成されているインターフェイスもしくはデバイス) に同期されます。親インターフェイスがdownの管理状態に設定されていると、関連するすべての VLAN もダウンに設定され、ルートもすべてルーティングテーブルからフラッシュされます。フラグ 0x04 は、loose binding モードを有効にします。このモードでは、動作状態のみが親から関連付けられた VLAN に渡されますが、VLAN デバイスの状態は変更されません。
VLAN フラグを設定するには、以下のコマンドを実行します。
~]$ nmcli connection modify vlan-VLAN10 vlan.flags 1
nmcli の概要は、「nmcli を使用する IP ネットワークの設定」 を参照してください。