歡迎您光臨本站 註冊首頁

配置VirtualBox 虛擬網路環境

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

本文假設Host系統是Ubuntu 7.04,Guest系統是CentOS 5.0,其他Linux類系統的配置應該與此類似。

首先確保安裝了網橋工具(bridge-utils)和用戶模式Linux工具(uml-utilities),如果沒有可運行如下命令安裝:

# apt-get install bridge-utils uml-utilities

並確保普通用戶可訪問虛擬網卡設備,

# chmod 0666 /dev/net/tun

1. NAT方式

VirtualBox軟體在內部虛擬出NAT網路,該網路在Host系統不可見,更不可配置,Guest系統設置DHCP方式獲取網路地址,即可直接訪問Host網路。

需要注意的是啟動Guest系統之前必須確保網路是連通的,否則Guest系統起來后無法訪問Host系統後來連通的網路,比如ADSL撥號上網。

2. 路由方式

首先給Host系統創建一塊虛擬網卡,

# tunctl -t vb0 -u marchday

網卡的名稱是vb0,授權使用的用戶是marchday。

然後創建Guest,指定Host Interface,並指定Host Interface Name為vb0,即上面我們創建的虛擬網卡。Guest系統啟動后其網卡相當於和vb0相連,然後我們就可以分別配置Host和Guest的網卡,使其 可相互連通,並使Guest系統訪問外部網路。

需要注意的是一塊虛擬網卡同時只能連接一個Guest系統,如果你同時啟動了好幾個Guest系統,需要為每個Guest創建虛擬網卡。

3. 橋接方式

網橋工作在TCP/IP的第二層,數據鏈路層。它只能感知MAC地址,對IP及以上層是無法感知的。你可以把網橋想象成交換機,一般情況下有兩個 口,數據在兩個口之間轉發,Linux下的橋接設備可以加入很多介面,真正地像一個多口的交換機,而且還支持STP( spanning tree protocol )。

在Linux下,網橋介面和第一個加入的介面MAC地址保持一致。

這裡我們考慮兩種結構的網路拓撲。

3.1 Guest系統的網卡直接和公司區域網相連

假設 Host系統的 eth0 和公司區域網相連,通過dhcp獲取IP地址,並通過區域網接入Internet。在這種網路拓撲下,Guest系統的網卡相當於直接接入公司的區域網,這種接入是通過橋接實現的,我們看看怎麼做。

添加虛擬網卡介面
# tunctl -t vb01 -u marchday
添加網橋設備介面
# brctl addbr br0
把物理網卡eth0配置為promisc模式
# ifconfig eth0 0.0.0.0 promisc
把物理網卡eth0加入網橋
# brctl addif br0 eth0
獲取網橋設備的IP地址
# dhclient br0
把虛擬網卡加入網橋
# brctl addif br0 vb01
激活虛擬網卡
# ifconfig vb01 up

這是最快捷的虛擬機上網方式,啟動虛擬機就跟啟動區域網的一台物理機器一樣,馬上就可以獲取IP地址上網。

3.2 Guest系統的網卡和網橋設備相連,配置路由接入區域網

有時候你並不想把虛擬機暴露給區域網,可以把若干台虛擬機加入某個網橋,通過網橋介面配置路由和區域網連接。

添加虛擬網卡介面
# tunctl -t vb01 -u marchday
添加網橋設備介面
# brctl addbr br0
配置網橋的IP地址
# ifconfig br0 10.0.0.1 netmask 255.255.255.0
添加主機到虛擬機的路由
# route add -net 10.0.0.0/24 dev br0
把虛擬網卡加入網橋
# brctl addif br0 vb01
激活虛擬網卡
# ifconfig vb01 up

啟動虛擬機后,配置Guest系統的網卡與br0網段一致,就可以和Host系統通信了,如要上網還的配置NAT。

INTIF="br0"
EXTIF="eth0"
echo 1 > /proc/sys/net/ipv4/ip_forward

# clear existing iptable rules, set a default policy
iptables -P INPUT ACCEPT
iptables -F INPUT
iptables -P OUTPUT ACCEPT
iptables -F OUTPUT
iptables -P FORWARD DROP
iptables -F FORWARD
iptables -t nat -F

# set forwarding and nat rules
iptables -A FORWARD -i $EXTIF -o $INTIF -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE

加入網橋的Host介面沒必要配置IP地址,當然配置也沒錯,不過是多餘的,浪費。

通過網橋和VirtualBox可實現複雜的網路拓撲,以後做相關實驗時再玩玩。

[火星人 ] 配置VirtualBox 虛擬網路環境已經有630次圍觀

http://coctec.com/docs/linux/show-post-202678.html