コンテキスト
以前は「箱から出して」動作していましたが、数週間前に停止しました。 Ubuntuのアップデート後だと思いますが、それはLXCまたはVirtualboxでしたか、それとも「ネットワーク関連」のアップデートでしたか?私はそれらのテストを毎日実行していないので、私にはわかりません。
¹さまざまで複雑なプラットフォームを偽造し、実際に必要なリソースのみを使用するため。
²Windowsブラウザでテストします。
質問:
VirtualboxゲストからLXCコンテナー上のWebサイトにアクセスするには、Virtualbox/LXC/Hostネットワーク構成をどのようにセットアップする必要がありますか?
これまでにやったこと
私の現在のvirtualboxセットアップは、2枚のネットワークカードを持つことです。
wlan0
の橋(インターネットにアクセスするため)lxcbr0
(コンテナーにアクセスするため)奇妙なこと:Windows VMからLXCコンテナーにpingを実行できますが、HTTP(ブラウザーまたはポート80のtelnet)でそれらにアクセスできません。
実際に開始されたコンテナのみがpingに応答します。
私は他の多くのセットアップを試しましたが、何が起こっているのかを理解するよりも「推測」しています。
私の現在の回避策
ネットワーク全体でコンテナに到達できるようにするのと同じように、iptablesを使用してホストにポートフォワードを設定します(実際にはそれが実行されます)。
そうすると、WindowsVMから転送されたコンテナにアクセスできます。
しかし、これは間違いなくクリーンな解決策ではありません:
User228273の提案に従って、問題を解決する構成を見つけることができました。最初に、tap0という名前のtapインターフェイスを作成し、それを起動しました。
ip tuntap add mode tap tap0
ip link set tap0 up
前のコマンドの1つが失敗した場合は、おそらくtap0
インターフェイスがすでにあることが原因です。コマンドを使用する
ip link show
状況を評価し、最終的にインターフェイス名を変更します。これで、Ubuntuではtap0
という名前のデフォルトのブリッジにlxcbr0
インターフェースを追加できます。
brctl addif lxcbr0 tap0
次に、以下に示すように、インターフェースtap0
で「ブリッジアダプター」を使用するようにVirtualBoxを構成しました。
そして、VirtualBoxインスタンスとLXCはお互いを「見る」ことができます。
2019 Update:NetworkManagerを使用している場合は、nmcliを使用してこの追加を行うことができます:
nmcli connection add type tun ifname tap0 con-name tap0 mode tap master lxcbr0
まったく同じ問題がありました。ほぼ確実に、VirtualBoxの「障害」は、独自の方法でブリッジネットワークを実行しているようであり、おそらくさまざまなプラットフォーム(Mac、Solaris、その他)間で一貫性を保っています。証拠:
ICMPが通過しているのは本当に奇妙ですが、TCP(そしておそらく他の人)はそうではありません...
ただし、ドキュメントには「特定の高度なセットアップに引き続きTAPインターフェイスを使用できる」と記載されているため、新しいTAPをブリッジに接続することを検討しました。
# ip tuntap add mode tap
# brctl addif brY tapX
# ip link set tapX up
次に、brYの代わりにtapXを使用するようにVBoxネットワーク設定を調整すると、すべてうまくいきました(ゲストを再起動した後)。
同じtapXを共有する2人のゲストで実験しましたが、うまく機能するかどうかはわかりません。 VBoxゲストごとに1回タップするのがおそらく最も安全です。
ターゲットにpingを実行できるが、そこでアプリケーションにアクセスできない場合は、ほぼ確実にiptablesの問題です。
私の推測では、更新プロセス中にシステムフラグを取得しました"net.bridge.bridge-nf-call-iptables = 1"
チェックイン/etc/systcl.conf
。
もしそうなら、私はそれを削除しませんが、代わりにiptablesの設定を修正します。