Networking

帶有 Openvswitch 網橋的 Proxmox

  • January 12, 2015

全部,

我正在嘗試為我創建一種能夠在我的 Proxmox 基礎架構中使用本地網路的方法。

目前,一切都在 wlan0 的 NAT 之外執行,並且所有內部機器都具有相同的本地 IP 地址——這對我來說根本不是很有用。我正在嘗試用 ovs 解決這個問題。

我的 ovs 設置:

[wlan0] [IP Stack]
 |      |
[maplebridge] -- vport1
             -- vport2 

我的 ovs 配置:

ovs-vsctl add-br maplebridge #Create my bridge
ip link set maplebridge up # Turn on bridge
ovs-vsctl add-port maplebridge wlan0 # Add wlan0
ip addr del 192.168.1.136/24 dev wlan0 # Remove config from wlan0
dhclient maplebridge # DHCP IP addr to maplebridge
ip tuntap add mode tap vport1 # Create vport1
ip tuntap add mode tap vport2 # Create vport2
ip link set vport1 up # Turn on vport1
ip link set vport2 up # Turn on vport2
ovs-vsctl add-port maplebridge vport1 -- add-port maplebridge vport2 # Add ports to bridge

ovs 設置:

root@henesys:/home/mztriz# ovs-vsctl show
55601e1b-928a-454b-9e7f-d5c24ed47fe9
   Bridge maplebridge
       Port maplebridge
           Interface maplebridge
               type: internal
       Port "vport2"
           Interface "vport2"
       Port "vport1"What 
           Interface "vport1"
       Port "wlan0"
           Interface "wlan0"
   ovs_version: "2.3.0"

/etc/network/interfaces 的內容:

root@henesys:/home/mztriz# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
   address  192.168.1.136
   netmask  255.255.255.0
   gateway  192.168.1.1
   wpa-ssid ""
   wpa-psk ""

allow-ovs maplebridge
iface maplebridge inet dhcp
   ovs_type OVSBridge
   ovs_ports vport1 vport2

allow-br0 vport1
iface vport1 inet manual
   ovs_bridge vport1
   ovs_type OVSPort

allow-br0  vport2
iface vport2 inet manual
   ovs_bridge vport2
   ovs_type OVSPort

這是我在網路下的 Web 界面中看到的: 在此處輸入圖像描述

如果我嘗試將我的一個虛擬機設置為使用網路適配器 vport1,就會發生這種情況: 在此處輸入圖像描述

如您所見,我無法將 vports 1 或 2 附加到我的任何 VM。這個設置在 Proxmox 中是如何工作的?

編輯:

有人建議我使用從 Proxmox Web GUI 創建的 ovs 網橋嘗試 NAT over NAT,如下所示:

在 Proxmox 中創建一個新的子網(例如 192.168.2.0/24),即從“maplebridge”中刪除“wlan0”。

所有虛擬機都應該連接到一個虛擬 LAN,但不能連接到 wlan。

流量必須通過 Proxmox 中的內部 NAT 路由,必須在網橋啟動時啟動 NAT(要添加到 /etc/network/interfaces 中):

auto vmbr1
iface vmbr1 inet static
   address  192.168.1.136
   netmask  255.255.255.0
   ovs_type OVSBridge
   pre-up iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j MASQUERADE

但是,如果我這樣做,wlan0 和 vmbr1 的地址不會因為它們相同而發生衝突嗎?

當我使用此配置時,我無法在 192.168.2.0/24 子網跨虛擬機或外部獲得任何連接。我可以為虛擬機選擇 vmbr1 以在其網路介面中使用,但它們也只能 ping 本地主機或其分配的 IP。

我讓內部虛擬機網路正常工作。

將 OVS Bridge vmbr1 添加到 Proxmox 並將 /etc/network/interfaces 更改為以下內容:

auto wlan0
iface wlan0 inet static
       address  192.168.1.136
       netmask  255.255.255.0
       gateway  192.168.1.1
       wpa-ssid ""
       wpa-psk ""

auto vmbr1
iface vmbr1 inet static
   address  10.0.2.1
   netmask  255.255.255.0
   ovs_type OVSBridge
   pre-up iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -o wlan0 -j MASQUERADE

然後,我將網路設備分配vmbr1給我的虛擬機,並為每個虛擬機配置了 10.0.2.x 網路中的靜態 IP。然後我在虛擬機和 Proxmox 主機上的 sysctl.conf 中啟用了 ipv4 轉發。

/etc/sysctl.conf:
net.ipv4.ip_forward = 1

內部和外部網路現在都在工作!

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