帶有 Openvswitch 網橋的 Proxmox
全部,
我正在嘗試為我創建一種能夠在我的 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
內部和外部網路現在都在工作!