CentOS/Fedora/RHELでVLANインターフェースを追加・設定する方法
本記事では、CentOS/Fedora/Red Hat Enterprise Linux(RHEL)上で、Linux標準のツールを使用してタグ付きVLANインターフェースを設定する方法を解説します。サブインターフェース方式、独立したvlanXファイル方式に加え、NetworkManagerやvconfigといったツールを使った設定方法まで、具体的なコマンド例とともに紹介します。
VLANとは
VLAN(Virtual Local Area Network)は、OSI参照モデルのデータリンク層(レイヤー2)において、ネットワークを複数の隔離されたブロードキャストドメインに分割する技術です。VLANを利用することで、サーバーの同一物理インターフェース上に複数のネットワークを構成できます。
802.1Q VLANを使用する場合、ルーターやスイッチ、サーバーは、ネットワークパケットに対してVLAN番号(VLAN ID:0〜4095)を含む特別なタグを付与する必要があります(タグ付きトラフィック)。
CentOS/Fedora/RHELでは、VLANの設定方法として主に以下の2つの選択肢があります。
- サブインターフェースを使用する方法(例:
eth0.7) - 独立したvlanXXファイル(
vlan7など)を使用する方法
サブインターフェースを使ったVLANの作成方法
タグ付きインターフェースを設定するには、サーバー上でLinuxカーネルの8021qモジュールが有効になっている必要があります。モジュールを読み込むには、次のコマンドを実行します。
# modprobe 8021q
すでにモジュールが読み込まれている場合は、次のようなエラーが表示されます。modprobe: ERROR: could not insert '8021q': Module already in kernel
8021qモジュールの確認と自動読み込み設定
モジュールが正しく読み込まれたかどうかを確認しましょう。
# lsmod | grep 8021q
8021q 33080 0 garp 14384 1 8021q mrp 18542 1 8021q
このように表示されれば、8021qモジュールは正常にシステムに存在しています。
さらに、サーバー起動時に自動的にモジュールが読み込まれるよう、システムの起動設定に追加しておきます。
# echo 8021q >> /etc/modules-load.d/8021q.conf
サブインターフェース用設定ファイルの作成
ここでは、物理インターフェースeth0に対して、VLAN ID 7のVLANを作成します。設定ファイルifcfg-eth0.7(ドットの後の「7」がVLAN番号)を作成します。このファイルには、VLANサブインターフェースの定義を記述します。
# nano /etc/sysconfig/network-scripts/ifcfg-eth0.7
ファイルに以下の内容を追加します。
ONBOOT=yes TYPE=Ethernet VLAN=yes DEVICE=eth0.7 BOOTPROTO=static IPADDR=10.61.20.10 NETMASK=255.255.255.0
この設定ファイルにより、仮想インターフェースeth0.7が物理インターフェースeth0に関連付けられます。設定ファイル作成後、ネットワークサービスを再起動します。
# systemctl restart network
ネットワーク設定を確認します。
# ip a
実行結果を見ると、VLAN 7のサブインターフェースが追加されていることがわかります。
VLANの状態確認と疎通テスト
現在のインターフェースとVLANの関連付けは、次のコマンドで表示できます。
# cat /proc/net/vlan/config
インターフェースの統計情報を取得するには、次のコマンドを使用します(パケットカウンターを確認することで、VLANインターフェースがタグ付きトラフィックを受信しているかどうかを検証できます)。
# cat /proc/net/vlan/eth0.7
特定のVLANインターフェースからpingを実行して疎通を確認するには、次のコマンドを使用します。
# ping -I eth0.7 192.168.1.22
vlanXXファイルを使ったVLAN設定
次に、独立した設定ファイルを使用して、VLAN ID 8のVLANを作成してみましょう。
# nano /etc/sysconfig/network-scripts/ifcfg-vlan8
ファイルに以下の行を追加します。
ONBOOT=yes TYPE=Ethernet VLAN=yes VLAN_NAME_TYPE=VLAN_PLUS_VID_NO_PAD DEVICE=vlan8 PHYSDEV=eth0.8 VLAN_ID=8 BOOTPROTO=static IPADDR=10.6.120.10 NETMASK=255.255.255.0
この設定ファイルは、前述のサブインターフェース方式とは少し異なる点に注意してください。この方式では、PHYSDEVの行で物理ネットワークインターフェースを指定し、設定ファイルを紐づけます。
設定が完了したら、ネットワークサービスを再起動します。
# systemctl restart network
ネットワークサービスの再起動時にNo suitable device found for this connectionというエラーが表示される場合は、ifcfg-vlan8内のVLAN_IDオプションに正しい値が指定されているかを確認してください。
インターフェースの状態は次のコマンドで確認できます。
ip l ls
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff 6: vlan8@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:1d:4b:67 brd ff:ff:ff:ff:ff:ff
VLAN8のネットワークインターフェースも正常に作成されています。
NetworkManagerを使ったVLANインターフェースの設定
CentOS 8(RHEL 8)以降では、ネットワーク接続の管理にNetworkManagerが使用されます。このツール自体はそれ以前から提供されていましたが、多くの管理者は従来のnetworkサービスを使い続けていました。
ここでは、nmcli(NetworkManagerのコマンドラインツール)を使ってVLANを設定する方法を見ていきましょう。物理インターフェースens3上に、VLAN 7用の仮想インターフェースens3.7を作成し、IPアドレスを設定します。
# nmcli con add type vlan con-name ens3.7 ifname VLAN7 id 7 dev ens3 ip4 10.1.10.11/24 gw4 10.1.10.1
サーバー上のネットワーク接続を確認するには、次のコマンドを実行します。
# nmcli con show
NAME UUID TYPE DEVICE ens3 8bd5cfbc-5ffc-4554-8ae1-9e02e4b57ceb ethernet ens3 virbr0 e64e63a5-76ae-4661-91ae-009f566c5e66 bridge virbr0 ens3.7 e5e91557-49a8-4389-bdfc-c9bfc099714b vlan VLAN7
設定後、NetworkManagerを再起動します。
# systemctl restart NetworkManager
NMサービスの再起動後も、作成したインターフェースは維持されています。
現在のVLAN設定内容を表示するには、次のコマンドを使用します。
# nmcli connection show ens3.7
vconfigを使った一時的なVLANの設定方法
テスト目的でネットワーク/VLAN設定を検証する場合は、vconfigツールの利用が便利です。vconfigはテストや学習の際に非常に有用なツールです。誤ったネットワーク設定によってサーバーへのアクセスを失った場合でも、単純に再起動するだけで元の設定に戻せるためです。
このツールはEPELリポジトリで提供されているため、yum(またはdnf)でインストールします。
# yum install epel-release -y && yum install vconfig
VLAN9のインターフェースを作成します。
# vconfig add eth0 9
Added VLAN with VID == 9 to IF -:eth0:-
次に、作成したネットワークインターフェースにIPアドレスを割り当てます。
# ifconfig eth0.9 10.1.0.15 netmask 255.255.255.0 up
これで、一時的なVLANインターフェースの作成は完了です。
まとめ
CentOS/Fedora/RHEL環境におけるVLANインターフェースの設定には、サブインターフェース方式、vlanXXファイル方式、NetworkManager(nmcli)、vconfigという複数の方法があり、用途に応じて使い分けることができます。恒久的な運用環境にはサブインターフェースやNetworkManagerを、一時的なテストにはvconfigを選択するとよいでしょう。
最後に注意点として、サーバー側でVLANを設定する際は、ネットワーク機器(スイッチなど)側でも対応するVLANの設定を行わないと、通信が確立されない点にご留意ください。
-
Fedora vs. openSUSE vs. CentOS:どのLinuxディストリビューションを選ぶべき?
先日、LinuxファミリーにおけるDebian系の三大ディストリビューション(Debian、Ubuntu、Linux Mint)についての記事をお届けしました。しかし、本物のLinux好きとして、RPMファミリーとも呼ばれるLinuxファミリーのもう一方の勢力を見過ごすわけにはいきません。これらのディストリビューションはすべて、Debian系が採用する.debファイルではなく、.rpmファイルをインストール用パッケージとして使用しています。それでは早速、それぞれの特徴を見ていきましょう!FedoraFedoraは、多くの面でRPMファミリーの「大黒柱」と言える存在です。ちょうどDebian系に
-
RHEL・CentOS・Fedoraの違いを徹底解説!特徴と選び方のポイント
Linuxディストリビューションは、よく車のモデルにたとえられます。選択肢が非常に多く、新しいものが日々登場するため、それぞれの違いを見極めるのは容易ではありません。中でも、Red Hat社が所有・支援する3つの主要ディストリビューションについては、混同されがちです。本記事では、RHEL、CentOS、Fedoraの違いを明確にし、それぞれがどんな用途に向いているのかをわかりやすく解説します。 RHEL、CentOS、Fedoraの共通点 まず、3つのディストリビューションの共通点から見ていきましょう。いずれも、2004年に開発が終了したRed Hat Linuxをベースとしています。Re