macOS(10.12)のVirtualBoxにProxmox VE 5.1をインストールしました。
オペレーティングシステムはDebian Strech(Proxmoxはdebianに基づいて構築されています)、2つの「物理」ネットワークインターフェイス(VirtualBoxで構成されています)を持ち、Host-Only
NATNAT
インターフェイスを介してインターネットにアクセスできます。
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」)を表示します。
vmbr0
proxmox 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/interfaces
LXCコンテナ(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
仮想マシンのルーティングが機能するには、次のものが必要です。
- ホストの正しいルーティング設定(ここでそうです)
- 通常、ルーティングを有効にします
/proc/sys/net/ipv4/ip_forward
(配電ネットワークツールを使用して恒久的に実行するか、から直接実行できます/etc/sysctl.*
)。 - パケットルーティングを許可する
iptables
(例:filter/FORWARD
チェーンおよび/または対応するサブチェーン)