web-dev-qa-db-ja.com

LXD内のVirtualBoxがLXDのホストと通信できない

私はLXDコンテナー(lxd-box)を実行しているUbuntuサーバー(server-box)を実行しており、LXDは this ガイドを使用して設定したイーサネットブリッジを使用しています。 lxd-boxはVirtualBox(vbox-box)のインスタンスを実行しています。 server-box、lxd-box、vbox-boxはすべてUbuntu 16.04サーバーを実行しています。 vbox-boxは、VirtualBoxのイーサネットブリッジングを使用して、lxd-boxのeth0にブリッジします。lxd-box自体は、server-boxのenp5s0にブリッジされます。

3つすべてにLANからIPアドレスが割り当てられています。 3つすべてが他のLANクライアントと通信できます。また、lxd-boxは、server-boxおよびvbox-boxと正常に通信できます。ただし、vbox-boxとserver-boxは通信できません。具体的には、lxd-boxとの間の両方のセッションを開始できる一方で、両方向のSSHセッションをどちらの方向にも開始できません。これはsshだけではなく、netcatでraw TCP接続を開始するだけの少数のポートでテストしました。同じ動作です。sshの方が便利です。

なぜこれが起こっているのか誰でも知っていますか?発生している複数のブリッジングに関係していると思いますが、よくわかりません。さらに重要なことに、これを修正する方法を誰かが知っていますか?

1
lpreams

同様の問題がありましたが(あなたのシナリオとは少し異なります)、ようやく解決しました。

Ara 2ブリッジがある場合、1つ目はlxdブリッジで、2つ目は仮想ボックスが作成するもので、tuntapデバイスを介してそれらに参加すると思います。

詳細はこちら

シナリオ

  • ubuntu 16.04と:
  • lxd 2.0(lxdbr0を含む)とその中のいくつかのコンテナ
  • virtualboxマシン

私のvirtualbox構成では、ネットワークアダプターを使用可能にし、それをブリッジアダプターに接続して、lxdbr0を選択しました。それは機能しているように見えましたが、あなたがしたのと同じ問題を見つけました、ubuntu Hostにsshできなかった、lxcコンテナー(同じブリッジ上にある)にsshできなかった、など。

インターネットで検索した後(申し訳ありませんが、リンクを提供できません)、この解決策を見つけました。

Ubuntu 16.04マシンで、root権限を使用:

root@ubuntu:~# ip tuntap add mode tap tap0
root@ubuntu:~# ip link set tap0 up
root@ubuntu:~# brctl addif lxdbr0 tap0
root@ubuntu:~# brctl show

bridge name bridge id       STP enabled interfaces
lxdbr0      8000.4e76f4d676d5   no      tap0

ブリッジにtap0を追加したら、仮想ボックスマシンの「ブリッジアダプタータイプの接続」を設定して、tap0に接続します(すでに他のブリッジにあります)。

ブリッジにブリッジするのではなく、インターフェースにブリッジする必要があるようです。

このシナリオでは、lxd-boxにtap0を作成する必要があります。このtap0は2つのブリッジに追加されます。1つはlxdにあり、もう1つはvirtualboxにあります。

2
ayito

@ayitoからの回答を構築するために、永続的なtap0デバイスを作成することもできます。 root権限を使用して/etc/network/interfacesを編集し、以下を追加します:

iface tap0 inet manual
    pre-up ip tuntap add mode tap tap0
    up ip link set tap0 up
    post-up brctl addif lxdbr0 tap0
    pre-down brctl delif lxdbr0 tap0
    down ip link set tap0 down
    post-down ip link del tap0

保存後、Sudo ifup tap0を実行します

開始したことを検証するには、brctl showを実行します。 tap0lxdbr0のインターフェースとして表示されます。

コンピューターを再起動してインターフェイスを使用するたびに、Sudo ifup tap0を実行します。注:これを起動スクリプトとして追加することもできますが、lxdbr0の開始後に実行する必要があります。

Virtualboxで、tap0に接続された「ブリッジアダプター」を使用します。

VirtualBox Network

これで、LXDコンテナーと通信して、再起動後にtap0インターフェイスを簡単にセットアップできるようになります。

0
Caleb