はじめに
この実験では、Linux システム上にネットワークブリッジが構成されているかどうかを確認する方法を学びます。brctl show コマンドを使用して既存のブリッジとそれに関連付けられたインターフェイスを一覧表示し、ip link コマンドを使用してこれらのブリッジインターフェイスの状態を確認します。最後に、/etc/network の一般的な設定ファイルを調べて、ブリッジが永続的に定義される方法を理解します。この実験は、特に仮想化やコンテナ化を利用する環境におけるネットワーク構成を理解するための重要なスキルを提供します。
brctl show でブリッジを一覧表示する
このステップでは、brctl コマンドを使用して Linux システム上のネットワークブリッジを一覧表示する方法を学びます。ネットワークブリッジは、データリンク層で複数のネットワークセグメントを接続するソフトウェアデバイスです。これらは、仮想マシンやコンテナが相互に通信し、外部ネットワークと通信できるようにするために、仮想化やコンテナ化で一般的に使用されます。
brctl コマンドは、ネットワークブリッジを構成および管理するために使用されるコマンドラインツールです。
まず、システム上で brctl コマンドが利用可能かどうかを確認しましょう。ターミナルに以下のコマンドを入力します。
which brctl
コマンドが見つかった場合、次のような出力が表示されます。
/usr/sbin/brctl
コマンドが見つからない場合は、bridge-utils パッケージをインストールする必要があるかもしれません。ただし、この LabEx 環境では、brctl は事前にインストールされているはずです。
では、既存のネットワークブリッジを一覧表示しましょう。brctl show コマンドを使用します。
brctl show
構成されたブリッジに関する情報を表示する、次のような出力が表示されるはずです。
bridge name bridge id STP enabled interfaces
br-xxxxxxxxxxxx 8000.xxxxxxxxxxxx no vethxxxxxxxx
vethxxxxxxxx
docker0 8000.xxxxxxxxxxxx no
この出力は、各ブリッジに関する以下の情報を提供します。
bridge name:ブリッジの名前(例:br-xxxxxxxxxxxx、docker0)。bridge id:ブリッジの一意の識別子。STP enabled:スパニングツリープロトコル(Spanning Tree Protocol)が有効になっているかどうかを示します(通常、シンプルな設定では 'no')。interfaces:このブリッジに接続されているネットワークインターフェイス。
例の出力では、コンテナネットワーキングのために Docker が作成することが多い docker0 という名前のブリッジが表示されています。環境の設定によっては、他のブリッジも表示される場合があります。
Docker のようなコンテナ化技術や仮想化プラットフォームを使用する際に、ネットワークブリッジを理解することは重要です。
ip link でブリッジインターフェイスを確認する
前のステップでは、brctl show を使用してネットワークブリッジを一覧表示しました。今度は、ip link コマンドを使用して、ブリッジインターフェイスを含むネットワークインターフェイスに関するより詳細な情報を取得しましょう。
ip コマンドは、Linux でネットワーク構成を行うための強力なユーティリティです。link サブコマンドは、ネットワークインターフェイスを表示および操作するために使用されます。
ブリッジインターフェイスを含むすべてのネットワークインターフェイスを一覧表示するには、以下のコマンドを入力します。
ip link show
システム上のすべてのネットワークインターフェイスのリストが表示されます。brctl show で見たブリッジ名と一致する名前のインターフェイスを探してください(例:docker0、br-xxxxxxxxxxxx)。
ブリッジインターフェイスの出力は次のようになります。
X: br-xxxxxxxxxxxx: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
いくつかの重要な情報の解説は次の通りです。
X:インターフェイスのインデックス番号。br-xxxxxxxxxxxx:ブリッジインターフェイスの名前。<BROADCAST,MULTICAST,UP,LOWER_UP>:インターフェイスの状態と機能を示すフラグ。UPはインターフェイスがアクティブであることを意味し、LOWER_UPは物理リンクがアップしていることを意味します。mtu 1500:最大転送単位(Maximum Transmission Unit)で、送信できる最大のパケットサイズです。qdisc noqueue:キューイング規則(queuing discipline)。state UP:インターフェイスの管理状態。mode DEFAULT:動作モード。group default:インターフェイスが属するグループ。link/ether xx:xx:xx:xx:xx:xx:インターフェイスの MAC アドレス。
ip link show の出力を grep にパイプすることで、ブリッジインターフェイスのみを表示するように出力をフィルタリングすることもできます。たとえば、「br-」を含む行を検索するには、次のようにします。
ip link show | grep br-
または、「docker0」を含む行を検索するには、次のようにします。
ip link show | grep docker0
ip link show を使用することで、ネットワークインターフェイスとその状態に関するより包括的な情報が得られ、brctl show からの情報を補完します。
/etc/network のブリッジ設定を確認する
このステップでは、Ubuntu のような Debian ベースのシステムで、ブリッジ設定を含むネットワークインターフェイス設定が通常保存される場所を調べます。これらの設定は、システム起動時にネットワークインターフェイスがどのように設定されるかを定義します。
ネットワークインターフェイス設定は、通常 /etc/network/interfaces ファイルにあり、場合によっては /etc/network/interfaces.d/ ディレクトリ内のファイルにもあります。
cat コマンドを使用して、メインのネットワークインターフェイスファイルの内容を表示しましょう。cat はファイルの内容を表示するために使用されます。
cat /etc/network/interfaces
次のような内容が表示されるかもしれません。
## interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
このファイルは、lo(ループバック)インターフェイスと eth0 インターフェイスを定義しており、eth0 は DHCP を使用するように設定されています。
では、/etc/network/interfaces.d/ ディレクトリの内容を確認しましょう。このディレクトリは、個々のインターフェイスやブリッジの個別の設定ファイルを保存するためによく使用され、メインの interfaces ファイルをすっきりさせます。
このディレクトリ内のファイルを一覧表示するには、ls コマンドを使用します。
ls /etc/network/interfaces.d/
ここには、特にブリッジが手動でまたは他のソフトウェアによって設定された場合、ブリッジ設定に関連するファイルが表示されるかもしれません。たとえば、50-cloud-init.cfg などの名前のファイルがあり、そこにブリッジの定義が含まれている可能性があります。
このディレクトリにファイルがある場合、cat を使用してその内容を表示できます。たとえば、my-bridge.cfg という名前のファイルがある場合、次のようにします。
cat /etc/network/interfaces.d/my-bridge.cfg
これらの設定ファイルを調べることで、ネットワークブリッジがシステム上でどのように定義され、永続的に設定されているかを理解するのに役立ちます。Linux ディストリビューションやバージョンによってネットワーク設定方法は異なることに注意してください(たとえば、新しい Ubuntu バージョンでは Netplan を使用する)が、多くのシステムで /etc/network/interfaces と /etc/network/interfaces.d/ は一般的な場所です。
まとめ
この実験では、Linux で設定されたネットワークブリッジを確認する方法を学びました。brctl show コマンドを使用して、既存のブリッジ、その ID、STP 状態、および関連するインターフェイスを一覧表示しました。このコマンドは、システム上のブリッジ設定の概要を提供します。
また、ネットワークブリッジは、特に Docker のような仮想化およびコンテナ化環境において、ネットワークセグメントを接続するために不可欠であることも学びました。これらのブリッジを識別し、調査する方法を理解することは、このような設定でネットワーク構成を管理するための基本的なスキルです。



