0. 整體架構圖
我們要將網路規劃為下圖,
由網際網路(Internet) 連到實體機網卡(eth0),
從實體機網卡(eth0) 建立一個橋接網路(br10),
最後將橋接網路連接到 QEMU 虛擬機( 設 192.168.10.20 ),
並在虛擬機上面建個 Web Server !
其中,從實體機到虛擬機可以互相 ping ,
且實體機開瀏灠器可以連到虛擬機架的 Web Server。
1. 使用 runarm.sh 開啟虛擬機
參考文章 用 QEMU 來開機 arm.img ,
vi runarm.sh
# !/bin/bash # # Run arm.img qemu-system-arm -M versatilepb -m 512 \ -kernel ~qemu_image/vmlinuz-3.2.0-4-versatile \ -initrd ~qemu_image/initrd.img-3.2.0-4-versatile \ -hda ~qemu_image/arm.img \ -append "root=/dev/sda1" &
2. 安裝 Web server
於虛擬機,安機:
sudo apt-get install apache2
虛擬機關機
halt
3. 備份並修改 runarm.sh
cp runarm.sh runarm.sh.org vi runarm.sh
qemu-system-arm -M versatilepb -m 512 \ -kernel ~qemu_image/vmlinuz-3.2.0-4-versatile \ -initrd ~qemu_image/initrd.img-3.2.0-4-versatile \ -hda ~qemu_image/arm.img \ -net nic,macaddr=" MAC Address " -net bridge,br=br10 \ -append "root=/dev/sda1" &
4. 安裝 bridge 套件
於實體機
sudo apt-get install bridge-utils uml-utilities
5. 編輯設定 br10 (以 P503 教室為例)
於實體機
vi /etc/network/interfaces
## ==== 本機端 lo ==== auto lo iface lo inet loopback ## ==== 實體網卡 eth0 ==== allow-hotplug eth0 #iface eth0 inet dhcp iface eth0 inet static address 120.117.72.XX netmask 255.255.255.128 gateway 120.117.72.126 dns-nameserver 120.117.2.1 ## ==== 橋接 br10 ==== auto br10 iface br10 inet static address 192.168.10.1 netmask 255.255.255.0 # 這邊 gateway 是用實體機 eth0 的 ip gateway 120.117.72.XX bridge_ports tap0 bridge_fd 9 bridge_hello 2 bridge_maxage 12 bridge_stp off
6. 重啟網卡並確認網路連線
於實體機
/etc/init.d/networking restart brctl show ifconfig ping 192.168.10.1 ping 8.8.8.8
7. 設定 QEMU 設定檔
於實體機
sudo chmod u+s /usr/local/libexec/qemu-bridge-helper sudo vi /usr/local/etc/qemu/bridge.conf allow br10
8. 執行修改好的 runarm.sh 重啟虛擬機
於實體機
sh runarm.sh
9. 修改虛擬機網路設定
於虛擬機
vi /etc/network/interfaces
auto lo iface lo inet loopback ## ==== 虛擬機的 eth0 ==== allow-hotplug eth0 iface eth0 inet static address 192.168.10.20 netmask 255.255.255.0 # 這邊 gateway 要設實體機所建的 br10 之 ip gateway 192.168.10.1 # 這邊以學校為例,nameserver 要用同實體機一樣 dns-nameserver 120.117.2.1
10. 重啟虛擬機網卡並測試
於虛擬機
/etc/init.d/networking restart
測試 br10 ping 192.168.10.1 測試實體機 eth0 ping 120.117.72.XX 啟動 Web Server /etc/init.d/apache2 restart
11. 至實體機測試
於實體機
ping 192.168.10.20
開啟瀏灠器 -> 192.168.10.20
可以看到 「It's works!!」
12. 設定防火牆,讓虛擬機連到外網
於實體機
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A INPUT -i br10 -j ACCEPT iptables -t net -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
Reference:
http://pominglee.blogspot.tw/2014/12/br10.html
沒有留言:
張貼留言