Linux管理・運用の基本
システム管理者のための実践ガイド
システム管理者のための実践ガイド
Linux管理・運用の基本シリーズ、第46回となる今回は、ネットワークの応用的な設定について解説します。サーバーの冗長化が求められるデータセンターや、仮想マシン環境(KVM/VMware/Proxmoxなど)の構築現場では、これらの技術が不可欠です。ネットワークボンディング(Bonding)、VLAN、ネットワークブリッジ(Bridge)の3つの技術を深く掘り下げていきましょう。
これらの技術を理解し、適切に設定することで、システムの信頼性や柔軟性を大幅に向上させることができます。本記事では、CentOS/RHEL系での設定例を中心に紹介しますが、Ubuntu/Debian系の場合も概念は同じです(設定ファイルやコマンドが異なるため、別途公式ドキュメントを参照してください)。
ネットワークボンディングは、複数の物理ネットワークインターフェース(NIC)を論理的に1つに束ねる技術です。Webサーバーやデータベースサーバーなど、ネットワーク障害がサービス停止に直結する場面でよく使われます。これにより、ネットワーク帯域の増加や、片方のNICに障害が発生した場合でも通信を継続する冗長化を実現します。
ボンディングには複数のモードがあり、用途に応じて使い分けます。主要なモードを以下に示します。
モード名 | 番号 | 説明 | 用途 |
---|---|---|---|
balance-rr |
0 | ラウンドロビン方式。複数のNICでパケットを順番に送信し、負荷分散と帯域増加を実現します。 | 帯域増加が最優先される場合 |
active-backup |
1 | アクティブ・バックアップ方式。通常は1つのNIC(アクティブ)を使用し、障害が発生した場合に別のNIC(バックアップ)に切り替えます。 | 冗長化(フェイルオーバー)が最優先される場合 |
balance-xor |
2 | 送信元/送信先MACアドレスに基づき負荷分散します。特定の宛先へのトラフィックは常に同じNICから送信されます。 | 負荷分散と冗長化を両立させたい場合 |
802.3ad |
4 | LACP(Link Aggregation Control Protocol)とも呼ばれます。対向機器(スイッチ)との連携が必要です。 | 高度な負荷分散と冗長化を両立させたい場合 |
ネットワーク設定ファイル(
ifcfg-
)を使用します。
1. ボンディングインターフェースの作成
/etc/sysconfig/network-scripts/ifcfg-bond0
を作成します。
DEVICE=bond0
TYPE=Bond
NAME=bond0
BOOTPROTO=none
ONBOOT=yes
BONDING_MASTER=yes
IPADDR=192.168.1.100
PREFIX=24
BONDING_OPTS="mode=1 miimon=100"
BONDING_OPTS
:
ボンディングモードや監視間隔などを指定します。mode=1
はactive-backup
モード、miimon=100
はNICの状態を100ミリ秒ごとに監視します。BONDING_MASTER=yes
:
このインターフェースがボンディングマスターであることを示します。2. 物理インターフェースの設定
ボンディングに含める物理NIC(例:
ens33
、
ens34
)の設定ファイルを編集します。
/etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes
/etc/sysconfig/network-scripts/ifcfg-ens34
TYPE=Ethernet
BOOTPROTO=none
NAME=ens34
DEVICE=ens34
ONBOOT=yes
MASTER=bond0
SLAVE=yes
MASTER
:
束ねるボンディングインターフェース名を指定します。SLAVE
:
このインターフェースがボンディングの一部であることを示します。3. サービスの再起動
設定を反映させるためにネットワークサービスを再起動します。
sudo systemctl restart network
RHEL 8/9以降では、
ifcfg-*
よりも
nmcli
や
nmtui
、または
keyfile
形式(
/etc/NetworkManager/system-connections/
)での設定が推奨されます。RHEL 10ではifcfg形式は非サポートとなり、NetworkManagerはkeyfileのみをサポートします。
VLANは、物理的なネットワーク構成に関係なく、論理的にネットワークを分割する技術です。複数部署のネットワークを物理的に分離せず、セキュリティを確保したいときに有効です。これにより、異なるセグメントの端末を同じスイッチに収容したり、部署や用途ごとにネットワークを分離してセキュリティを向上させることができます。
VLANを使用するために、別途パッケージのインストールは不要です。
iproute2
が提供する
ip
コマンドと、Linuxカーネルの
8021q
モジュール(通常は自動で有効)で設定が可能です。
コマンド例
sudo ip link add link ens33 name ens33.10 type vlan id 10
sudo ip addr add 192.168.10.200/24 dev ens33.10
sudo ip link set dev ens33.10 up
ip link add ...
:
物理NIC (ens33
) を親インターフェースとして、VLAN ID 10
の論理インターフェース (ens33.10
)
を作成します。ip addr add ...
:
作成したVLANインターフェースにIPアドレスを割り当てます。8021q
モジュールがロードされていない場合は、sudo modprobe 8021q
コマンドで手動で有効化してください。
設定ファイル例
/etc/sysconfig/network-scripts/ifcfg-ens33.10
を作成します。
DEVICE=ens33.10
BOOTPROTO=none
ONBOOT=yes
VLAN=yes
IPADDR=192.168.10.200
PREFIX=24
VLAN=yes
:
このインターフェースがVLANであることを示します。ネットワークブリッジは、複数のネットワークセグメントを透過的に接続し、あたかも一つのネットワークであるかのように見せる技術です。KVMやLXCなど仮想化基盤でゲストOSに「外部と同じIP」を与える場合に必須となります。特に、仮想化環境においてホストOSとゲストOSの間のネットワーク通信を仲介するために広く使われます。
ブリッジは、仮想的なスイッチの役割を果たします。ホストOSの物理NICと、ゲストOSに割り当てられた仮想NICをブリッジに接続することで、ゲストOSがホストOSと同じネットワーク上に存在するように振る舞います。
1. ブリッジインターフェースの作成
/etc/sysconfig/network-scripts/ifcfg-br0
を作成します。
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
BOOTPROTO=none
(=staticの意味)を推奨します。
static
を使う例も見かけますが、NetworkManagerのifcfgプラグインの表現に合わせnone
が無難です。2. 物理インターフェースをブリッジに接続
ブリッジに接続する物理NIC(例:
ens33
)の設定ファイルを変更します。
/etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
BRIDGE=br0
BRIDGE=br0
:
このインターフェースをbr0
ブリッジに接続します。これにより、ens33
はIPアドレスを持たず、通信はブリッジを介して行われます。ボンディングとVLAN、ブリッジは併用されることが多いです。例えば、仮想化環境で冗長化とネットワーク分離を両立させたい場合、以下のような構成が考えられます。
bond0
)して冗長化を図る。bond0
上にVLANインターフェース(bond0.10
、bond0.20
など)を作成して論理的にネットワークを分離する。br10
、br20
など)に割り当てる。この構成により、ホストの物理的な通信路を冗長化しつつ、仮想マシンを目的のネットワークに柔軟に配置できます。
💡 注意: LACP (
mode=4
)を利用する場合は、対向側のスイッチでもリンクアグリゲーションの設定が必須です。設定が一致しないと通信できません。
ネットワーク設定で問題が発生した際に役立つコマンドとTipsをいくつか紹介します。
cat
/proc/net/bonding/bond0
で、現在のモードやアクティブなNICを確認できます。dmesg
| grep bond
で、ボンディングのインターフェースの状態変化やエラーメッセージを確認できます。ip
-d link show
コマンドは、vlan
やbond
などの詳細な情報を表示します。bridge
link
または ip link show type bridge
で、どのインターフェースがどのブリッジに接続されているかを確認できます。forward_delay
既定15秒)が発生します。ループがない構成であればSTPを無効化するか、forward_delayを下限の2秒まで短縮してください。
ip/bridge
でSTP無効化(ループがないことを確認のうえ)sudo ip link set dev br0 type bridge stp_state 0
sudo ip link set dev br0 type bridge stp_state 1
sudo ip link set dev br0 type bridge forward_delay 2
※forward_delay
は0秒は不可(有効範囲 2~30秒)。
今回は、Linuxのネットワークにおける応用技術、ボンディング、VLAN、ブリッジについて解説しました。これらの技術は、サーバーの可用性を高めたり、仮想環境を構築したりする上で非常に重要なものです。それぞれの技術が持つ役割と設定方法を理解し、システムの要件に合わせて適切に活用してください。
この記事が、あなたのLinuxネットワークに関する理解を深める一助となれば幸いです。ご覧いただきありがとうございました。