XEN 新增 xenbr1 的方式
主機上面有兩片網卡 eth0 / eth1, 安裝 xen 後自動產生 xenbr0 會使用 eth0 當 bridge 的共用介面, 如果想要增加 xenbr1 來使用 eth1 當 bridge 的共用介面, 可參考以下處理方式..
編輯 xen 的 script
- 編輯 /etc/xen/xend-config.sxp
- 將原本的 (network-script network-bridge) 前面加上 #
- 增加 (network-script network-multi-bridge)
vi /etc/xen/xend-config.sxp
: : # yourself a wrapper script, and call network-bridge from it, as appropriate. # #(network-script network-bridge) (network-script network-multi-bridge) # The script used to control virtual interfaces. This can be overridden on a # per-vif basis when creating a domain or a configuring a new vif. The :
- 編輯 /etc/xen/scripts/network-multi-bridge
- 讓系統呼叫 network-bridge 兩次, 分別建立出 xenbr1 與 xenbr2
vi /etc/xen/scripts/network-multi-bridge
#!/bin/sh dir=$(dirname "$0") "$dir/network-bridge" "$@" vifnum=0 bridge=xenbr0 netdev=eth0 "$dir/network-bridge" "$@" vifnum=1 bridge=xenbr1 netdev=eth1
- 編輯好要增加可執行權限
chmod +x /etc/xen/scripts/network-multi-bridge
修改原有 VM 的定義檔
- 例如修改 ever-firewall 這個 VM 的設定檔
- 將 bridge=xenbr0 改成 xenbr1
vi /etc/xen/auto/ever-firewall
: vif = [ "mac=00:16:36:34:40:f4,bridge=xenbr1,script=vif-bridge,vifname=vif5.0" ] :
簡易啟動測試
- 手動啟動 xenbr1
/etc/xen/scripts/network-bridge stop vifnum=1 bridge=xenbr1 netdev=eth1 /etc/xen/scripts/network-bridge start vifnum=1 bridge=xenbr1 netdev=eth1
- VM 關閉(stop)後再開啟(start)
- 查看 xenbr1 的狀況
brctl show
: xenbr1 8000.fe0b9703261b no vif10.0 tap0 vif9.0 tap2 vif8.0 tap1 vif0.1 peth1
重新開機測試
sync;sync;sync;reboot