Ubuntuでネットワークブリッジを構成する方法


Linuxは、2つ以上の通信ネットワークまたはネットワークセグメントを相互接続して単一のネットワークとして機能する方法を提供するネットワークデバイスであるネットワークブリッジの機能を再現するためのソフトウェアネットワークブリッジの実装をサポートしています。これはほとんどネットワークスイッチのように機能し、ソフトウェアの意味では、「仮想ネットワークスイッチ」の概念を実装するために使用されます。

ソフトウェアネットワークブリッジングの一般的な使用例は、仮想マシン(VM)をホストサーバーネットワークに直接接続する仮想化環境です。このようにして、VMはホストと同じサブネットにデプロイされ、DHCPなどのサービスにアクセスできます。

この記事では、Ubuntuでネットワークブリッジをセットアップし、仮想化環境内でそれを使用して、VirtualBoxとKVMの下でブリッジモードで仮想ネットワークを作成し、仮想マシンをホストと同じネットワークに接続するさまざまな方法を学習します。

  1. How to Install Network Bridge Utilities in Ubuntu
  2. How to Create a Network Bridge Using NetPlan
  3. How to Create a Network Bridge Using Nmcli
  4. How to Create a Network Bridge Using nm-connection-editor Tool
  5. How to Use the Network Bridge in a Virtualization Software

図のように、aptパッケージマネージャーを使用してUbuntuイーサネットブリッジを構成するためのユーティリティを含むbridge-utilsパッケージをインストールすることから始めます。

$ apt-get install bridge-utils

次に、図のようにIPコマンドを使用してイーサネットデバイスのインターフェイス名を特定します。

$ ip ad
OR
$ ip add

Netplanは、YAML形式を使用してLinuxでネットワークを構成するためのシンプルで使いやすいフロントエンドユーティリティです。現在、バックエンドツールとしてNetworkManagerとsystemd-networdをサポートしています。

ブリッジなどのインターフェイスのネットワークを構成するには、/ etc/netplan /ディレクトリにあるnetplan構成ファイルを編集します。

以下は設定ファイルの例です。レンダラーはデフォルトのsystemd-networdです(enp1s0をイーサネットインターフェイス名に置き換えてください)。

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: no
  bridges:
    br0:
      dhcp4: yes
      interfaces:
	     - enp1s0

次のコマンドを実行して、構成ファイルを保存し、構成を適用してブリッジネットワークを有効にします。

$ sudo netplan apply

次に、brctlコマンドを使用して、システム上のすべてのブリッジを表示します。この場合、イーサネットインターフェイスはブリッジへのポートとして自動的に追加されます。

$ sudo brctl show

作成したネットワークブリッジを停止または非アクティブ化する場合は、次のコマンドを使用して削除します。

$ sudo ip link set enp1s0 up
$ sudo ip link set br0 down
$ sudo brctl delbr br0
OR
$ sudo nmcli conn up Wired\ connection\ 1
$ sudo nmcli conn down br0
$ sudo nmcli conn del br0
$ sudo nmcli conn del bridge-br0

nmcliは、NetworkManagerを管理(ネットワーク接続の作成、表示、編集、削除、アクティブ化、および非アクティブ化)し、ネットワークデバイスのステータスを表示するために広く使用されているネットワークマネージャーコマンドラインツールです。

nmcliを使用してネットワークブリッジを作成するには、次のコマンドを実行します。

$ sudo nmcli conn add type bridge con-name br0 ifname br0

次に、図のようにイーサネットインターフェイスをブリッジのポートとして追加します( enp1s0 をデバイス名に置き換えることを忘れないでください)。

$ sudo nmcli conn add type ethernet slave-type bridge con-name bridge-br0 ifname enp1s0 master br0

次に、すべてのネットワーク接続を表示して、ブリッジが作成されたことを確認します。

$ sudo nmcli conn show --active

次に、次のようにブリッジ接続をアクティブにします(接続/インターフェイス名またはUUIDのいずれかを使用できます)。

$ sudo nmcli conn up br0
OR
$ sudo nmcli conn up e7385b2d-0e93-4a8e-b9a0-5793e5a1fda3

次に、イーサネットインターフェイスまたは接続を非アクティブ化します。

$ sudo nmcli conn down Ethernet\ connection\ 1
OR
$ sudo nmcli conn down 525284a9-60d9-4396-a1c1-a37914d43eff

次に、アクティブな接続をもう一度表示してみます。次のスクリーンショットに示すように、イーサネットインターフェイスがブリッジ接続のスレーブになっているはずです。

$ sudo nmcli conn show --active

nm-connection-editorアプリケーションを開くには、ターミナルから次のコマンドを実行します。

$ nm-connection-editor

ネットワーク接続エディタウィンドウで、 + 記号をクリックして、新しい接続プロファイルを追加します。

次に、ドロップダウンから接続タイプとして[ブリッジ]を選択し、[作成]をクリックします。

次に、ブリッジ接続名とインターフェース名を設定します。

次に、[追加]ボタンをクリックして、次のスクリーンショットに示すように、ブリッジスレーブポート(イーサネットインターフェイス)を追加します。接続タイプとしてイーサネットを選択し、[作成]をクリックします。

次に、好みに応じて接続名を設定し、[保存]をクリックします。

ブリッジ接続の下に、新しい接続が表示されます。

ここで、ネットワーク接続エディターをもう一度開くと、次のスクリーンショットに示すように、新しいブリッジインターフェイスとスレーブインターフェイスが存在するはずです。

次に、nmcliコマンドを使用して、ブリッジインターフェイスをアクティブにし、イーサネットインターフェイスを非アクティブにします。

$ sudo nmcli conn up br0
$ sudo nmcli conn down Ethernet\ connection\ 1

ネットワークブリッジ(仮想ネットワークスイッチ)を設定した後、Oracle VirtualBoxやKVMなどの仮想化環境で使用して、VMをホストネットワークに接続できます。

VirtualBoxを開き、VMのリストからVMを選択して、その設定をクリックします。設定ウィンドウから、[ネットワーク]オプションに移動し、アダプター(アダプター1など)を選択します。

次に、[ネットワークアダプターを有効にする]オプションをオンにし、フィールドに接続されている値を[ブリッジアダプター]に設定してから、次のスクリーンショットに示すように、ブリッジインターフェイスの名前(br0など)を設定します。次に、[OK]をクリックします。

virt-installコマンドを使用して、新しい仮想マシンを作成するときに -network u003d bridge u003d br0 オプションを追加することにより、KVMで新しいネットワークブリッジを使用できます。

# virt-install --virt-type=kvm --name Ubuntu18.04 --ram 1536 --vcpus=4 --os-variant=ubuntu18.04 --cdrom=/path/to/install.iso --network=bridge=br0,model=virtio --graphics vnc --disk path=/var/lib/libvirt/images/ubuntu18.04.qcow2,size=20,bus=virtio,format=qcow2

Webコンソールから自動的に選択されます。さらに、virshコマンドラインツールとVMのXML構成ファイルを使用してネットワークブリッジを構成することもできます。

詳細については、netplanとnmcliのマニュアルページ( man netplan man nmcli を実行することによる)、およびlibvirtの仮想ネットワークとVirtualBoxの仮想ネットワークをお読みください。以下のコメントセクションから質問を投稿できます。