2009年4月17日 星期五

VirtualBox 2.1 的新網路功能!

在 Linux 上面用過 VirtualBox 的人都知道它的好。雖然和 VMWare 比起來又穩又快,唯獨網路功能的部份卻缺少了 bridge mode選項,而且也沒有支援 Host LAN。不過這些都在 2.1 版以後開始改變了。

VirtualBox 2.1 之後支援 bridge mode,可以和 Host 共用一張網卡上網。除了使用無線網卡做 bridge 的時候無法自動取得 IP 外(Guest 為 Windows),其他大致上都正常。從此可以跟那些會讓自己建立到腦羞又不方便的 br0/tap0 裝置說掰掰囉。 2.2 以後更加入了以往所缺乏的 Host LAN,host 終於是可以和 quest 直接透過內部虛擬網路互相連線了。

除了有新的網路模式可以選擇外,新的 VirtaulBox 還有 3D 加速等等新功能。跑起來有比以前快了一些些。在 Windows 上可以選擇使用 VMWare,不過在 Linux 上還是強烈建議使用 VirtualBox。

NetworkManager-0.6.6 重新連線失敗的問題

NetworkManager 算是 Linux 的桌面環境上管理無線網路連線最方便的工具之一。他提供了自動化的 AP 列表、自動連接 AP 、以及根據是否有插網路線自動切換有線/無線網路。但是 0.6.6 版的 NetworkManager 卻發生了重新連線(例如我要換個 AP )時無法取得 IP 的問題。

出現問題的時候,系統 log 會出現以下的錯誤訊息:
Couldn't send DHCP 'up' message because: name 'com.redhat.dhcp.OperationInProgress', message 'interface wlan0 is being released. Please try again later.'.
其實這個不是 NetworkManager 的問題,反而是他的相依套件 dhcdbd-3.0 的 Bug。 據說是因為 NetworkManager 命令 dhcdbd 釋放網路裝置後, dhcdbd 沒有正確的更新他自己的狀態,而是停留在"釋放中"的狀態。所以導致 NetworkManager 再次向 dhcdbd 要求取得 IP 時被拒絕。

由於 NetworkManager-0.7 以後不會繼續使用 dhcdbd,所以不知道會不會有人去把這個問題修好。目前用來作為替代方案的問題解決方法就是重新啟動 dhcdbd 服務以後再用 NetworkManager 重新連線。在 Gentoo 上就是下面這個指令:
/etc/init.d/dhcdbd restart