Networking

OVH 伺服器上的 Proxmox VE 4.2 問題,LXC 無法訪問網際網路

  • August 17, 2016

我已將 IP 替換為虛擬 IP。

1.2.3.4 是主 IP 5.6.7.194 是 LXC 專用 IP

主伺服器詳情:

主IP網路介面1.2.3.4

auto lo
iface lo inet loopback

iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto vmbr1
iface vmbr1 inet manual
       bridge_ports dummy0
       bridge_stp off
       bridge_fd 0
       post-up /etc/pve/kvm-networking.sh

auto vmbr0
iface vmbr0 inet static
       address  1.2.3.4
       netmask  255.255.255.0
       gateway  1.2.3.254
       broadcast  1.2.3.255
       bridge_ports eth0
       bridge_stp off
       bridge_fd 0
       network 1.2.3.0

iface vmbr0 inet6 static
       address  2607:5300:120:00cc::
       netmask  64
       gateway  2607:5300:120:00FF:FF:FF:FF:FF
       post-up /sbin/ip -f inet6 route add 2607:5300:120:00ff:ff:ff:ff:ff dev vmbr0
       post-up /sbin/ip -f inet6 route add default via 2607:5300:120:00ff:ff:ff:ff:ff
       pre-down /sbin/ip -f inet6 route del default via 2607:5300:120:00ff:ff:ff:ff:ff
       pre-down /sbin/ip -f inet6 route del 2607:5300:120:00ff:ff:ff:ff:ff dev vmbr0

auto vmbr2
iface vmbr2 inet static
       address  192.168.100.1
       netmask  255.255.255.0
       bridge_ports eth1
       bridge_stp off
       bridge_fd 0

       post-up echo 1 > /proc/sys/net/ipv4/ip_forward
       post-up   iptables -t nat -A POSTROUTING -s '192.168.100.0/24' -o vmbr1 -j MASQUERADE
       post-down iptables -t nat -D POSTROUTING -s '192.168.100.0/24' -o vmbr1 -j MASQUERADE

LXC 容器網路介面文件:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
       address 5.6.7.194
       netmask 255.255.255.255
       broadcast 5.6.7.194
       gateway 1.2.3.254
       post-up ip  route add 1.2.3.254 dev eth0
       post-up ip route add default via 1.2.3.254
       pre-down ip  route del 1.2.3.254 dev eth0
       pre-down ip  route del default via 1.2.3.254

dns-nameservers 213.186.33.99 # OVH DNS Server
dns-search ovh.net # For faster hosts resolution on the OVH network

主IP路由表

Main IP Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         1.2.3.254  0.0.0.0         UG    0      0        0 br0
default         1.2.3.254  0.0.0.0         UG    0      0        0 vmbr0
1.2.3.0    *               255.255.255.0   U     0      0        0 vmbr0
1.2.3.0    *               255.255.255.0   U     0      0        0 br0
192.168.100.0   *               255.255.255.0   U     0      0        0 vmbr2

LXC container Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         1.2.3.254  0.0.0.0         UG    0      0        0 eth0
1.2.3.254  *               255.255.255.255 UH    0      0        0 eth0

我無法解決網路問題。它在OVH伺服器上。有任何想法嗎?

我自己找到了解決方案。就網路配置而言,一切都是正確的。僅缺少虛擬 Mac 地址,因此添加該地址後,虛擬機現在開始響應。

這裡的問題是您的 VM 與您嘗試使用5.6.7.0/24的預設網關位於不同的 IP 網路上。1.2.3.4當然,這可能只是您問題中的一個錯誤。

但是,如果它們位於不同的 IP 網路中,則有兩種修復方法:

  1. 將面向公共網路的介面與 VM 的虛擬介面橋接,並從主 IP 子網為 VM 分配一個公共 IP,例如1.2.3.5。然後,您可以將其分配1.2.3.254為 VM 中的預設網關。此選項要求您有可用的公共 IP。

2)在主機和虛擬機之間建立一個單獨的IP網路。在這種情況下,您不會將面向公共網路的介面與 VM 的虛擬介面橋接,而是將專用網路 IP 分配給主機 VM 介面,例如192.168.121.1.

然後在 VM 中分配192.168.121.2為 IP 地址,並192.168.121.1用作預設網關。

最後,您需要為來自私網的流量添加 SNAT,以便將來自私網的流量更改為來自1.2.3.4IP。對於從外部到 VM 的任何流量,您需要為主機中的這些埠添加 DNAT。

引用自:https://serverfault.com/questions/796864