Proxmox VE建立虛擬區域網路 (VLAN) 方案 (2) 環境配置
繼前一篇講方案說明之後,這一篇則是講Proxmox VE的環境配置。基本上這些配置只要做一次,之後建立虛擬機器時就不用重複再做。步驟有點複雜,如果有講錯的地方,請不吝指正。
Proxmox VE建立虛擬區域網路(VLAN)方案目錄:
1. 安裝Proxmox VE
Proxmox VE是採空機安裝的方式,你可以從官方網站下載ISO光碟映像檔,燒錄成CD光碟,然後就可以像是安裝一般作業系統一樣地安裝Proxmox VE。為了測試方便,我是安裝在VirtualBox 4.1.0虛擬機器中。
安裝過程中,他會要你配置網路與root管理者密碼。網路的部份,本文配置的IP為192.168.11.13。
本文是用Proxmox VE 1.8-60版安裝,不過目前Proxmox VE已經出到1.9版。變更功能並不大。
安裝完之後可以看到以下登入畫面,請用root跟剛剛設定的密碼來登入吧。
2. 安裝vim編輯器
在確認網路能夠正常連線之後,我會習慣先安裝vim編輯器,以取代Proxmox VE原本的vi編輯器。安裝的指令為
apt-get install vim
關於vim的操作方式,請參考鳥哥的Linux私房菜。
3. 網路卡設定調整成NAT模式
安裝Proxmox VE時,它會要求你設定網路。這個設定是寫入在/etc/network/interfaces檔案中,預設的內容如下:
auto lo
iface lo inet loopback
auto vmbr0
iface vmbr0 inet static
address 192.168.11.13
netmask 255.255.255.0
gateway 192.168.11.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
你應該可以輕易發現到該檔案的address、netmask、gateway的參數都是在安裝Proxmox VE的過程中輸入的資料。為了避免之後修改發生錯誤,請先備份/etc/network/interfaces檔案。
為了要讓Proxmox VE具備NAT的網路功能,我們要把eth0實體網路卡跟虛擬交換器vmbr0分開設定。設定參考自Proxmox VE的說明,具體設定細節如下:
# network interface settings
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.11.13
netmask 255.255.255.0
gateway 192.168.11.1
post-up echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
post-up iptables-restore < /etc/iptables.up.rules #Webmin的Firewall的設定
auto vmbr0
iface vmbr0 inet static
address 10.10.10.254
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o eth0 -j MASQUERAD
eth0配置IP為192.168.11.13,而vmbr0則配置成不同網段,設IP為10.10.10.254。這兩者不同的網路裝置之間是以iptables傳遞封包,vmbr0接收或送出到的封包都會轉給eth0。
eth0最後一行iptables-restore設定是Webmin加上去的,稍後會繼續說明。
整個網路設定完之後,不能只靠/etc/init.d/networking restart重新啟動就能生效,必須要將整個Proxmox VE重新開機才行。
附帶說明的是,這些設定並不會影響網路類型是venet的虛擬機器,請安心。
4. Webmin安裝
儘管SSH指令列操作可以完成大部分的功能,但我個人仍希望有簡單易用的網頁介面作為管理網路與防火牆的工具。
在本文中使用的是知名的Linux伺服器管理工具Webmin。Proxmox VE的作業系統為Debian,安裝方式可以參考Installing on Debian的說明。
簡單來說,步驟如下:
- wget http://prdownloads.sourceforge.net/webadmin/webmin-1.570_all.deb
- apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
- dpkg --install webmin_1.570_all.deb
順利的話,就能夠看到Webmin安裝完成的訊息。
如果webmin-1.570_all.deb已經不能下載,那也可以下載我傳到SkyDrive的備份。SkyDrive無法用wget直接連線,請以網頁下載之後,再上傳到Proxmox VE吧。
5. 進入Webmin
安裝完成之後,就能夠以https://192.168.11.13:10000/進入Webmin的管理介面。登入帳號與密碼如同Proxmox VE的使用者,你可以用預設的root使用者與之前設定的密碼來登入Webmin。
一開始常常會被他複雜的功能弄得不知所措。不過並不是所有功能都需要學習,本文主要是關注在Firewall防火牆與DHCP伺服器這兩個功能。以下一一說明要使用的功能。
6. 安裝Webmin模組
Webmin安裝完預設只有基本功能,如果要其他的功能,則必須安裝模組(module)。
安裝Webmin模組的位置在左側導覽列 > Webmin > Webmin Configuration > Webmin Modules,如上圖。
以下的模組是要從www.webmin.com下載。請選擇Install from Standard module from www.webmin.com ,然後再按右邊「…」按鈕開啟選單。
接著請安裝以下模組。
7. 安裝firewall模組
firewall模組是用iptables設定Linux的防火牆,能夠編輯所有的表格(table)、鏈(chain)、規則(rule)與選項(option)。
上面網路卡設定NAT模式時也使用了iptables,iptables可說是非常強大、靈活的防火牆工具。然而也由於他太複雜的,光靠指令操作實在難以管理,因此我才希望仰賴Webmin透過網頁管理。
關於iptables的功能,可以參考鳥哥的介紹。之後也會有詳細的介紹。
8. 安裝dhcpd模組
dhcpd模組是管理分享的網路(network)、子網路(subnet)與ISC DHCPS群組的工具。
安裝dhcpd模組時,因為Proxmox VE並沒有安裝dhcpd-server,所以Webmin會顯示提示,並指引你一起安裝dhcpd-server3。所有操作都是在網頁端進行,一下子就完成。我也對Webmin的高整合性感到相當的驚艷。
關於dhcpd-server的功能,一樣可以參考鳥哥的DHCP伺服器介紹。下一節則會講述如何從Webmin設定。
9. 設定DHCP Server
安裝完dhcpd模組之後,我們就可以馬上來設定DHCP Server,以便之後提供虛擬機器DHCP服務。
9-1. 進入DHCP Server設定
DHCP Server可從左邊導覽列 > Servers > DHCP Server進入。首先,我們先來Add a new subnet (新增子網域)。
9-2. 新增子網域 Create Subnet
在Create Subnet中,我們要設定的參數主要有四項,其他都用預設值即可:
- Subnet description: vlan
- Network address: 10.10.10.0
- Netmask: 255.255.255.0
- Address ranges: 10.10.10.101- 10.10.10.200
Subnet description任意名稱皆可,而Address ranges表示這個子網域的電腦可以從10.10.10.101分配到10.10.10.200,可提供100臺伺服器。根據OpenVZ的介紹來看,一臺配備良好的Proxmox VE應該可以架設100臺提供Apache靜態網頁的伺服器。
至於為何IP是從10.10.10.101開始呢?那是因為10.10.10.1到10.10.10.100是留給靜態分配IP的伺服器使用,而使用DHCP服務的伺服器則是用101後面的IP。
這部份都可以自行規劃。
9-3. 編輯預設路由器與DNS伺服器
新增完子網域之後,接著還要編輯子網域中各個客戶端(client)的選項。請編輯剛剛新增的子網域,並按下面的「Edit Client Option」按鈕進入編輯客戶端選項介面中。
在這邊要編輯的只有兩個選項:
- Default routers: 10.10.10.254
- DNS Servers: 140.119.1.110
這邊的路由器(router)是指虛擬交換器vmbr0,也是負責與外面網際網路交接的閘道(gateway)。DNS Servers則是配置你所在網路環境的DNS伺服器即可。由於我在政大網路中,DNS就是配置140.119.1.110。
接著按「Save」一路回到DHCP Server管理模組。
9-4. 選擇網路介面 Edti Network Interface
在DHCP Server模組下面,請點「Edit Network Interface」按鈕進入編輯網路介面的畫面。
在此我們只針對連接到vmbr0的客戶端提供DHCP服務。請選擇vmbr0,然後按下「Save」儲存。
9-5. 套用變更 Apply Changes
在DHCP Server模組下面,請點選「Apply Changes」按鈕以套用剛剛的設定。
10. 安裝Pound
為了提供反向代理伺服器(reverse proxy)的功能,在此我使用的是Pound。以下介紹安裝前注意事項、安裝方式、設定方式。
10-1. 關閉Apache2的80連接埠
由於Proxmox VE網頁管理介面的Apache2伺服器佔用了80連接埠,這會導致Pound無法使用80連接埠做反向代理伺服器,因此在此要先調整Apache2伺服器的設定。
請編輯/etc/apache2/port.conf,並將「Listen 80」設定註解掉,改成「#Listen 80」。僅保留「Listen 443」就好。
由於Proxmox VE的管理介面本來就是用443連接埠以https提供服務,所以80連接埠不使用也無所謂。
10-2. 安裝Pound
安裝Pound的指令為:
apt-get install pound
沒意外的話應該可以順利安裝完成。不過安裝的時候他會提示你要設定Pound,否則無法順利運作。
10-3. 設定Pound自動啟動
請編輯/etc/default/pound,設定「startup=1」。
10-4. 重新啟動Pound
指令為:
/etc/init.d/pound restart
沒有任何錯誤訊息的話,就代表設定成功。
當然,這樣子還不算是完成,這只是基本環境配置而已。下一篇建立虛擬機器時,會介紹如何設定一個FQDN,並透過Pound轉遞到虛擬機器,讓虛擬機器提供服務。
11. 重新開機
上述設定完成之後,接著是把Proxmox VE重新開機,以便讓所有設定確實生效(特別是網路的部份)。
重新啟動的指令為「reboot」。
如果順利重新啟動的話,那Proxmox VE的環境配置就差不多完成囉。