王溧
【摘要】對不同虛擬機各種網絡連接類型進行研究,加以綜合應用,通過一個具體實例將不同類型的操作系統主機互聯,并配置系統中各種需要的服務,構成較復雜的網絡實訓環境,與真實環境一致。結果表明,在計算機網絡教學中,綜合應用這些網絡連接模式,可營造現實條件不容易實現的實訓環境,提高教學效果,增強學生學習熱情。
【關鍵詞】虛擬機;Hyper-V;VMware;VirtualBox;bridged;host-only;nat;網絡連接;服務
虛擬機服務在當今企業級網絡中得到越來越廣泛的應用,對于中職學校學生技能競賽項目“企業網搭建與應用”而言,虛擬機從來都是一個必考的內容。
在2010年及以前,該競賽項目考察的虛擬機為VMware。從2011年起,已經轉變為考察windows server 2008的Hyper-V和Oracle的VirtualBox。
正因如此,對于當前的中職計算機網絡專業學生而言,熟練掌握虛擬機的使用至關重要。這倒并不是出于競賽的需要(畢竟只有少數同學可以參加競賽),而是因為兩點:
(一)可以與社會生產崗位的實際技能需求對接;
(二)當前絕大部分的中職學校,很難實現為每位學生提供三、四臺物理主機來做網絡實訓的實訓環境,但至少能提供一臺主機,如果學生能熟練使用虛擬機,那么一臺主機也已足夠,在這一臺主機中通過虛擬環境就可以實現多個主機的網絡實訓。
學生在這樣的虛擬環境中做網絡實訓時,只要時刻清醒這個虛擬環境與真實環境相對應的網絡拓撲結構(不至于迷路),那么就可以非常平滑地過渡到真實的網絡環境,不會有任何的生澀感。本人所帶的幾屆參加過“企業網搭建與應用”的學生,畢業后都在網絡公司充當骨干力量,他們的經歷可證明此點。
我認為虛擬機的要點乃是掌握其各種網絡連接類型的綜合使用,其他特點均要退居其次。熟練掌握了虛擬機的各種網絡連接類型,就可以在一臺(或數臺)物理主機中模擬出與真實環境相同的網絡拓撲結構。這個網絡可以是十分復雜的,可能是多個不同操作系統的異構環境,包括各個操作系統配置的服務,多個網段,各網段之間的路由,各網段與外網的通信等等。可以在這樣的模擬環境中,實現網絡設計和規劃,進行網絡測試。
所示的網絡環境是由Hyper-V實現的(在VMware和VitrtualBox中同樣可以實現),其中只有一臺物理主機、一臺交換機、一臺路由器是真實的,其他均為虛擬機,要能夠在該虛擬環境中設置各種服務(如DNS、FTP、WEB)并為相互之間和外界所訪問,實現全網互通。這是一個較復雜的由不同操作系統組成的虛擬異構網絡環境,本文以實現這樣一個實例來說明在中職的計算機網絡專業教學中,應當讓學生熟練掌握虛擬機的使用,這樣學生就可以擺脫當前實訓條件的束縛,在一臺主機中,自由地構建各種網絡環境,自由地在這個環境中學習各種網絡知識。當然,任何學習都要遵循循序漸進的原則,我不建議開始就讓學生來做這個實例,但在最后階段,優秀的學生能夠完成本實例的配置。
一、各種網絡連接類型簡要分析
虛擬機中各種網絡連接類型都可以等效為一個非網管型交換機。凡是網絡連接類型設置相同的虛擬機,都相當于連接到一個相同的等效交換機上。我們知道,當幾臺主機連接到同一個交換機(非網管型)上時,只要其IP地址設置在相同網段,則主機之間就可以正常通信了。這對于虛擬機也完全是一樣的。至于虛擬機能否與外界通信,就要看這等效交換機是怎樣與外部相連的了。
因為虛擬機中的網絡連接類型基本差不多(相同或相似),所以在描述這些網絡連接類型時,以Hyper-V為主,然后指出VMware workstation及VirtualBox中相同(或相似)的類型。篇幅所限,本文只作扼要說明。
1.Hyper-V中的“外部”(external)網絡連接類型
注:VMware及VirtualBox中與之對應的連接類型為:橋接(bridged)。
當Hyper-V中虛擬機的網卡連接類型設置為“外部”時,此時虛擬機的網卡(如圖1虛擬機6的1接口)與物理主機的網卡相當于連接到同一個等效的交換機上,此等效交換機再與物理主機所連的真實交換機相連。
2.Hyper-V中的“內部”(internal)網絡連接類型
注:VMware及VirtualBox中與之對應的連接類型為:NAT。
當Hyper-V中虛擬機的網卡連接類型設置為“內部”時,此時這些虛擬機(如圖1的虛擬機1)之間的關系仍然相當于連接到一個等效于“內部”網絡連接的交換機上,但該等效交換機不再直接與外部交換機相連,而是與物理主機上一個新建的接口相連。
網絡連接類型為“內部”的虛擬機,可以通過物理主機的路由與遠程訪問服務來實現與外部網絡的互聯互通。詳見文后實例的實現過程。
3.Hyper-V中的“專用虛擬機網絡”(pri-vate)網絡連接類型
注:VMware及VirtualBox中與之對應的連接類型為:host-only。
當Hyper-V中虛擬機的網卡連接類型設置為“專用虛擬機網絡”時,此時這些虛擬機(如圖1的虛擬機2、3、4)之間的關系相當于連接到一個等效于“專用虛擬機網絡”連接的交換機上,但若要與外部主機相連,需要借助其他虛擬機(如圖1的虛擬機5——routeros)的路由功能,詳見文后實例的實現過程。
二、本實例(如圖1所示)的實現
1.實例網絡拓撲簡要說明
本實例在一臺運行windows server 2008 R2的物理主機中,通過其Hyper-V服務創建6個虛擬機(數量視物理主機硬件性能而定),綜合運用前述三種網絡連接類型,構建出一個較復雜的異構網絡,并要求此網絡中的所有主機(包括所有物理主機及虛擬機)能夠互相通信。
物理主機及各虛擬機的具體信息如下所述:
①虛擬機1,操作系統為CentOS,擔任的主要服務為郵件服務,接口1連接到“內部internal-130”,IP為192.168.130.10/24。
②虛擬機2,操作系統為Windows Server 2008,擔任的主要服務為只讀域控制器(rodc)及DNS服務(內部),接口1連接到“專用private-61”,IP為192.168.61.10/24。
③虛擬機3,操作系統為Windows Server 2008,擔任的主要服務為域控制器、DNS(內部)、WEB,接口1連接到“專用private-62”,IP為192.168.62.10/24。
④虛擬機4,操作系統為Windows Server 2003,擔任的主要服務為FTP,接口1連接到“專用private-63”,IP為192.168.63.10/24。
⑤虛擬機5,操作系統為RouterOS,擔任的主要服務為路由,接口1連接到“專用private -51”,IP為192.168.51.254/24;2連接到“專用private-61”,IP為192.168.61.1/24;3連接到“專用private-62”,IP為192.168.62.1/24;4連接到“專用private-63”,IP為192.168.63.1/24。
⑥虛擬機6,操作系統為CentOS,擔任的主要服務為NAT路由器及DNS(內部和外部),接口1連接到“外部external-12”,IP為192.168.12.250/24;2連接到“專用private-51”,IP為192.168.51.1/24。
⑦物理主機,接口1對應創建“外部”網絡連接類型的接口(命名為:external-12),IP為192.168.12.181/24,網關為192.168.12.1;接口2對應著創建“內部”網絡連接類型的接口(命名為:internal-130),IP為192.168.130.1,網關為空。本物理主機可以正常上網。
2.實例的配置與實現
由于本文重點在于闡述虛擬機網絡連接類型綜合應用的實現,因此對于虛擬機本身網絡操作系統中相關服務的配置,只能簡要說明,無法詳述。讀者若對其具體實現的細節有疑問和興趣,可參閱相關內容的書籍或文獻。
(1)在Hyper-V中創建虛擬網絡
在Hyper-V的“虛擬網絡管理器”中,創建專用虛擬網絡private-51、private-61、private-62、private-63,內部網絡internal-130,外部網絡external-12。
(2)創建并配置虛擬機1(CentOS)
安裝虛擬機1,操作系統為CentOS,擔任郵件服務器。注意給其添加的網卡最好選擇“舊版網絡適配器”,否則系統可能無法識別(如果是windows的虛擬機,則沒有這個限制,下同)。配置該網絡適配器接入網絡“internal-130”, IP地址設置為192.168.130.10/24,網關為192.168.130.1。
在該系統上根據需要配置郵件服務sendmail及dovecot;配置squirrelmail并結合httpd服務,以支持通過網頁收發電子郵件,網址為: http://mail.wanglibm.com;建立所需要的用戶帳戶。
(3)配置物理主機的“路由和遠程訪問”服務
①配置接口
進到“網絡與共享中心/更改適配器設置”中,將新建的內部接口重命名為internal-130,IP設置為192.168.130.1/24,網關為空;外部接口重命名為external-12,IP設置為192.168.12.181/24,網關為192.168.12.1。
②配置路由與遠程訪問
在物理主機中,啟用路由與遠程訪問,只需將其配置為一臺啟用了NAT功能和端口映射的路由器即可。在“IPv4/NAT”中配置internal-130為專用接口連接到專用網絡,external-12為公用接口連接到Internet,并勾選“在此接口上啟用NAT(E)”。
此時在虛擬機1中已經可ping通外部網絡的主機。
由于虛擬機1擔任郵件服務器且需要能夠通過WEB頁面進行郵件收發,所以需要在“external-12”接口屬性的“服務和端口”選項中,分別進行SMTP、POP、HTTP、IMAP(dovecot支持IMAP)協議的NAT端口映射的配置。
VMware workstation中配置NAT端口映射的方法為:打開“edit”/“virtual network editor…”,選中網絡連接類型為NAT的網絡,單擊“nat settings…”,在彈出的對話框中單擊“add”,然后設置要映射的端口。
VirtualBox中配置NAT端口映射的方法為:打開虛擬機的設置對話框,選中“網絡”,將adapter的連接方式選擇為“NAT”,展開“高級”選項,單擊“Port Forwarding”,然后在彈出的對話框中進行端口映射的設置。
(4)創建并配置虛擬機5
虛擬機5的主要作用是擔任路由器,負責聯結private-51、private-61、private-62、private-63四個網絡區域的主機通信。其操作系統不限,只要能夠實現要求的路由功能即可。此處選用軟路由RouterOS是因為其耗用的資源少,內存32M,硬盤100M已經足夠。另外,也可使本實例網絡操作系統異構化得到最大程度的體現。
其配置只需下述兩方面:
①配置接口IP地址
由于要聯結四個網絡,因此虛擬機5至少要具備4個虛擬網卡。
給虛擬機5添加的網卡的類型仍然必須為“舊版網絡適配器”。添加網卡時,最好一次添加一塊,進入系統修改此接口的名字,然后關閉系統,再添加另外一塊,再修改名字,如此反復。如果一次全部添加4塊網卡,則進入到系統中時,可能很難分清哪塊網卡是接入到哪個網絡區域的,因而也就很難正確配置各接口的IP地址。
本實例中,給RouterOS接口命名的規則為:網卡接入到哪個區域,就以哪個區域的名字命名。
例如,如果網卡連接到專用區域private -51,則以private-51命名該網卡接口。修改接口的名字后,可通過命令“interface print”顯示目前接口信息。
然后設置IP地址信息,接口private-51的IP設為192.168.51.254/24,private-61為192.168.61.1/24,private-62為192.168. 62.1/24, private-63為192.168.63.1/24。
②添加默認路由:
本實例在RouterOS中添加默認路由的命令為:
ip route add dst-address=0.0.0.0/0 gateway=192.168.51.1
路由添加完畢,可在routeros中通過命令“ip route print”顯示當前路由信息。
(5)創建并配置虛擬機2、3、4
創建虛擬機2、3、4,配置網絡適配器連接類型,使其分別連接至專用網絡區域private-61、private-62、private-63;按前述虛擬機信息配置IP地址及網關。至此,在虛擬機2、3、4防火墻未禁ping的情況下,相互之間已經可以ping通了。
將虛擬機3配置為域控制器,域名為wang-libm.com。在配置域控制器的過程中,DNS服務可以設置為自動按要求進行配置。將虛擬機2的DNS服務器地址設置為虛擬機3(域控制器)的IP(192.168.62.10),并以只讀域控制器(RODC)的身份加入此域。配置虛擬機3的WEB服務,網址為:http://www.wanglibm.com。配置虛擬機4的FTP服務,網址為:ftp:// ftp.wanglibm.com。
(6)創建并配置虛擬機6
虛擬機6的作用有兩個:其一為實現了NAT功能的路由器,這與物理主機的“路由與遠程訪問”相似;其二為DNS服務,為全網提供域名解析服務(虛擬機2、3的DNS服務只作為內部DNS服務,且主要為加入到域“wanglibm.com”的主機提供解析)。
首先創建虛擬機6,為其添加兩塊網卡,一塊接至橋接區域external-12,對應的名稱為eth0,配置IP為192.168.12.250/24,網關為192.168.12.1;另一塊接至專用網絡區域private-51,對應的名稱為eth1,配置IP為192.168.51.1/24,網關為空。
①配置虛擬機6為實現了NAT功能的路由器
將配置文件“/etc/sysctl.conf”中的“net.ipv4.ip_forward”值改為1(默認為0),即:net.ipv4.ip_forward=1,以啟用其IP分組轉發功能(即使其成為一臺路由器)。需要重啟系統方可生效。
在文件夾“/etc/sysconfig/network-scripts/”下建立一個名為“route-eth1”的文件,在此文件中添加下列內容(以建立到“private-61”、“private-62”、“private-63”這三個網絡區域的路由表:
192.168.61.0/24 via 192.168.51.254
192.168.62.0/24 via 192.168.51.254
192.168.63.0/24 via 192.168.51.254
重啟network服務(service network restart)以使新添加的路由生效。
當然也可以用“ip route add 192.168. 61.0/24 via 192.168.51.254”這樣的命令添加,只不過要注意這種用命令添加的路由是非永久的,重啟系統或network服務時都將消失。
至此,虛擬機6已經可以ping通虛擬機2、3、4。
運行下述命令啟用SNAT功能(這里使用MASQUERADE,屬SNAT的一種),使private -51、private-61、private-62、private-63四個網絡區域的主機可以與外部聯通:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.51.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.61.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.62.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.63.0/24 -j MASQUERADE
至此,虛擬機2、3、4已經可以訪問外部主機。
運行下述命令啟用DNAT功能(進行端口映射),使外部網絡能夠訪問到內部網絡private-61、private-62、private-63中的WEB服務:
iptables -t nat -A PREROUTING -p tcp -d 192.168.12.250 --dport 80 -j DNAT --to-destination 192.168.62.10:80
對于FTP服務,只需將上述命令中目的端口(--dport)分別改為20和21并運行即可。注意,虛擬機6本身不能啟用上述已映射端口(即20、21、80)。
運行“service iptables save”以保存設置。
②配置虛擬機6的DNS服務
虛擬機6的另一個重要作用是為所有主機擔任域名解析任務。對于該虛擬機而言,其所連接的網絡可分為兩大部分:內部網絡和外部網絡。內部網絡包括private-51、private-61、private-62、private-63四個網絡,其余均為外部網絡。
內部網絡主機及外部網絡主機對域名解析的要求是不一樣的。例如,處于private-63中的主機,在請求解析主機名www.wanglibm.com時,獲得的對應IP地址應為192.168.62.10,因為內部主機在請求服務器(虛擬機3)的WEB服務時,不需要經過NAT轉換,而外部網絡主機所獲得的對應IP地址應為192.168.12.250。對于主機名ftp.wanglibm.com,情況相同。
可以使用linux DNS服務的水平分割功能來實現。其配置文件named.conf的view節可以實現上述解析要求。
在named.conf配置文件中,將響應內部網絡主機域名解析的區域(zone節)放在“view “local” IN {match-clients {127.0.0.1;192.168.51.0/24; 192.168.61.0/24; 192.168.62.0/24; 192.168.63.0/24;}; ……}””節中,將響應外部網絡主機域名解析的區域(zone節)放在“view “public” IN {match-clients {0.0.0.0/0;}; ……}””節中。注意,local節一定要放在public節的前面,否則沒有效果。
對應local的wanglibm.com域名解析文件名為“wanglibm.com.local”,其中www及ftp的主機記錄如下所示:
www.wanglibm.com IN 1H A 192.168.62.10
ftp.wanglibm.com IN 1H A 192.168.63.10
對應public的wanglibm.com域名解析文件名為“wanglibm.com.public”,其中www及ftp的主機記錄如下所示:
www.wanglibm.com IN 1H A 192.168.12.250
ftp.wanglibm.com IN 1H A 192.168.12.250
對于其他記錄,兩個區域文件的內容都一樣,如下所示:
mail.wanglibm.com IN 1H A 192.168.12.181
pop.wanglibm.com IN 1H A 192.168.12.181
smtp.wanglibm.com IN 1H A 192.168.12.181
imap.wanglibm.com IN 1H A 192.168.12.181
再將此DNS服務的轉發器設置為210.73.44.1(這是internet上一臺真實可用的DNS服務器),將虛擬機3(IP為192.168.62.10)的DNS服務轉發器設置為192.168.51.1(本虛擬機6連接內網接口的IP)。如此一來,內部網絡所有主機的DNS服務可設置為192.168.62.10(當然,還可將192.168.51.1設置為次選DNS服務器),而外部網絡所有主機(包括物理主機)的DNS服務均設置為192.168.12.250(本虛擬機6連接外網接口的IP)。
至此,全部網絡配置完畢。所有主機均可相互通信,均可連接互聯網,所有服務均可通過完全資格域名(FQDN)訪問。
本實例在Hyper-V、VMware workstation和VirtualBox中,均通過測試。
三、總結
本實例綜合運用了虛擬機的三種網絡連接類型,構建出了一個比較復雜的虛擬網絡。在此網絡中,包括多種操作系統,并對多種服務進行了配置,包括路由服務(windows的路由與遠程訪問,CentOS的iptables,RouterOS的路由功能)、WEB服務(windows的IIS,CentOS的httpd)、FTP服務、郵件服務(CentOS的sendmail及dovecot)、DNS服務(windows的DNS,CentOS的named)、windows的域活動目錄服務等。如果需要,還可以在此網絡中啟用更多服務,例如ssh、samba、nfs等,它們都將如真實環境中一樣運作。
在教學中,如果能夠讓學生明白虛擬機網絡連接類型的精髓,那么學生就可以靈活地設計自己所需的網絡拓撲,學習各種網絡配置,而不會受到實際硬件條件的限制,學生可以將其學習熱情最大限度地釋放出來。
參考文獻
[1]Mark G.Sobell.Red Hat Linux指南-服務器設置與程序設計篇[M].人民郵電出版社,2008,11.
[2]張慶玉,劉軍萬.基于Hyper-V R2的服務器虛擬化資源分配優化[J].電腦知識與技術,2011(3).
[3]王慨.Hyper-V Server 2008 R2的服務器虛擬化應用研究[J].南通職業大學學報,2011(6).
[4]楊志彬.高校實驗教學用服務器資源虛擬化部署[J].實驗室研究與探索,2010,29(7).
[5]崔北亮.Router OS全攻略[M].電子工業出版社,2010,05.
[6]vmware corporation.VMware Workstation Help File.vmware corporation,2011,2.
[7]oracle corporation.Virtualbox User Manual.oracle corporation,2011,4.