VirtualBoxのproxmox 5.1のLXCコンテナからインターネットにアクセスする

VirtualBoxのproxmox 5.1のLXCコンテナからインターネットにアクセスする

macOS(10.12)のVirtualBoxにProxmox VE 5.1をインストールしました。

オペレーティングシステムはDebian Strech(Proxmoxはdebianに基づいて構築されています)、2つの「物理」ネットワークインターフェイス(VirtualBoxで構成されています)を持ち、Host-OnlyNATNATインターフェイスを介してインターネットにアクセスできます。

root@proxmox:~# traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 60 byte packets
 1  10.0.3.2 (10.0.3.2)  0.792 ms  0.694 ms  0.625 ms
 2  1dot1dot1dot1.cloudflare-dns.com (1.1.1.1)  2.829 ms  2.818 ms  3.318 ms

Debian ホストの /etc/network/interfaces には以下が含まれます:

auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet static
    address  192.168.56.101
    netmask  255.255.255.0

auto enp0s8
iface enp0s8 inet static
    address  10.0.3.15
    netmask  255.255.255.0
    gateway  10.0.3.2
#NAT

auto vmbr0
iface vmbr0 inet static
    address  172.16.1.1
    netmask  255.255.255.0
    bridge_ports dummy1
    bridge_stp off
    bridge_fd 0

「Guest」、debianは2つのインターフェース(macOS IP:192.168.56.1、10.0.3.2)でmacOS(「Host」)を表示します。

vmbr0proxmox LXCコンテナ用の仮想インターフェイスが作成され、vmbr0のすべてのトラフィックをそのenp0s8インターフェイス(VirtualBoxのNATインターフェイス)に送信するiptablesルールが追加されました。

iptables -A POSTROUTING -s 172.16.1.0/24 -o enp0s8 -j MASQUERADE -t nat

これ質問問題は、vmbr0ネットワークインターフェイスを使用してproxmox内にLXCコンテナを作成すると、LXCコンテナがインターネットにアクセスできず、proxmox "master"(IP:172.16.1.1)にpingを送信できるが、それ以外には何もないことです。

bridge_portsまた、同じ結果としてenp0s8をパラメータとして使用してみました。

/etc/network/interfacesLXCコンテナ(Ubuntu 16.04)のファイルには、次のものが含まれています。

auto eth0
iface eth0 inet static
        address 172.16.1.100
        netmask 255.255.255.0
        gateway 172.16.1.1

他のproxmoxサーバーにも非常に似た構成がありますが(VirtualBoxインストールではなくベアメタルサーバーでは)正常に動作します。

コンテナがインターネットにアクセスできるように、ネットワーク構成に何が間違っているか見つからないかを教えてください。

答え1

仮想マシンのルーティングが機能するには、次のものが必要です。

  1. ホストの正しいルーティング設定(ここでそうです)
  2. 通常、ルーティングを有効にします/proc/sys/net/ipv4/ip_forward(配電ネットワークツールを使用して恒久的に実行するか、から直接実行できます/etc/sysctl.*)。
  3. パケットルーティングを許可するiptables(例:filter/FORWARDチェーンおよび/または対応するサブチェーン)

関連情報