2015年12月2日 星期三

把 OpenVZ 虛擬機的 venet 裝置升級成 veth 網卡

刪除 venet 裝置 Proxmox 用戶在設定 container (以下簡稱 CT) 的網路裝置時, 有 venet 跟 veth 兩個選項。 只求連線、 沒有特殊網路需求的新手先可以選用簡單/安全/高效率的 venet。 如果 研究過兩者差異 之後, 才反悔想改用功能較完整的 veth 裝置呢? 那就要先把舊的 venet 裝置刪掉囉。

  1. CT 關機。
  2. (從網頁介面) 先選取這個 CT、 點選 「network」 分頁、 點選想刪除的 venet 裝置、 點一下上方的 「Remove」, 把它刪掉。
  3. 在同一頁面點 「Add」、 選 「Network Device (veth)」、 填入網卡名稱 (就填 eth0 吧)、 選取 bridge (就選預設的 vmbr0 吧)。
  4. 從 host 下 vzctl start 208 重新啟動 CT (假設你的 CT 的 vmid 是 208) 。 然後 vzctl enter 208 進入 CT。 進行 一般的網路設定。 重新啟動網路服務 service networking restart 或重開機 reboot

進行以上變動之前, 下 ifconfig -a 會看到 CT 的 ip 是綁在 venet0:0 這個裝置上; 變動之後再下 ifconfig -a 應該要看到 CT 的 ip 現在變成綁在 eth0 (或是第三步所取的其他網卡名稱) 這個裝置上才對。

本篇其實只是 這個問答 的整理。 先前我在 host 裡從命令列新增 veth (很囉嗦) 所以沒注意到舊的 venet 還在。 後來用 ifconfig -a 才發現 ip 還是綁在 venet 裝置上。 搜尋到 這篇 才知道如果手動改 /etc/vz/conf/208.conf 不只要新增一句 (對應到 veth 的) NETIF=... 還要刪掉 (對應到 venet 的) IP_ADDRESS=...。 結論: 有時 GUI 真的比較簡單; 堅持用命令列有時會繞遠路 -- 然後也會順便學比較多。 又, 備份/搬家/還原/大量複製 openvz 虛擬機 這篇也跟著更正了。

以下是 proxmox 網路設定的其他相關參考資料。 veth 與 venet 的比較表格大致抄自第二篇。 (翻譯自 OpenVZ 官網) 例如架設 openvpn 伺服器等等跟 routing 有關的應用, 有時可能就非用 veth 不可。

  1. proxmox 的 host 網路環境設定
  2. 用 OpenVZ 安裝 Zentyal 失敗記錄
veth 跟 venet的差異
Feature
特徵
veth venet
可使用的虛擬機器類型 OpenVZ
KVM
OpenVZ
可透過網頁管理
直接配置網路IP
No Yes
MAC address
網卡位置
Yes No
Broadcasts inside CT
封包會在虛擬機器間廣播
Yes No
Traffic sniffing
封包攔截
Yes No
Network security
網路安全
Low High
Can be used in bridges
可否用於橋接器
Yes No
IPv6 ready
可否使用IPv6
Yes Yes
Performance
效能
Fast Fastest

沒有留言:

張貼留言

因為垃圾留言太多,現在改為審核後才發佈,請耐心等候一兩天。