從 lxc 容器為動態網路設備設置永久網橋?
TL:DR 如何在不向 /etc/network/interfaces 中的網橋配置添加網路設備的情況下使網橋永久化(在重新啟動後倖存)?
嗨,我剛開始在 ubuntu 14.04 上玩 lxc。
我想要完成的設置是,一個帶有 haproxy 的容器,一個帶有 nginx 的容器。
我將通過 iptables 將外部請求 dnat 到 haproxy 並從那裡到 nginx。
所有容器都將位於它們自己的子網中。容器之間的路由/數據包過濾將由主機完成。
到目前為止,我已經完成了一半的設置。
我用 brctl 創建了兩個網橋,並將 IP 添加到網橋中。
br-haproxy: 10.100.0.1/24 br-nginx: 10.100.3.1/24
然後我通過 lxc 配置將相應的橋添加到相應的容器中。
nginx got br-nginx haproxy got br-haproxy
然後我在容器中配置了 IP 地址。
haproxy: 10.100.0.10/24 GW 10.100.0.1 nginx: 10.100.3.10/24 GW 10.100.3.1
我現在能夠在兩個容器之間進行 ping 操作,依此類推。我現在通過將 iptables 的轉發策略設置為拒絕來拒絕訪問。我現在能夠通過 iptables 控制兩個容器之間的流量。
好的,到目前為止一切都很好。我現在想要實現的是,使橋樑永久化。我將 bridgeconfig 添加到 /etc/network/interfaces 但由於我沒有要添加到網橋的網路設備,因此我將這部分省略了。
當我現在嘗試啟動網橋時,我收到一條錯誤消息,指出找不到設備,例如 br-haproxy。
我發現問題出在網橋配置中缺少設備。當我將主機中的 eth0 添加到網橋配置中時,我可以啟動網橋,並且效果非常好。但這不是我需要的。
LXC 在容器啟動時動態創建容器介面並將其添加到相應的網橋。
所以我的問題來了。如何在啟動時不向網橋添加網路設備的情況下使網橋永久化?
希望我以某種方式明確了問題所在。:-)
提前致謝。
如果您使用
bridge_ports none
它在啟動時讓它工作,而不需要向這個介面添加成員,那會怎樣?auto br-haproxy iface br-haproxy inet static bridge_ports none bridge_fd 0 bridge_waitport 0 address 10.100.0.1 netmask 255.255.255.0
bridge_fd
並waitport
設置為避免成員埠上線時的轉發延遲,並避免等待埠上線時的延遲。