1.QEMU 會在你的 Linux 產生一個 bridge 虛擬裝置 "virbr0" .virbr0 不只是個單純的 NAT 而已,他是一個 NAT + DHCP 的架構,所有的 Virtual machine 都會透過 virbr0 來指派一個私人網域 (private IP).預設為 192.168.122.2 ~ 192.168.122.254 (在他的設定檔中可以定義其 DHCP 可指定的 IP 範圍).
2.其預設的 default gateway 為 192.168.122.1/24 ,所有在這架構下的 Virtual Machine 虛擬機器的封包都必須透過這 NAT 去連結到其他的網路.
3. 如同一般的 NAT 所有的 Virtual Machine 虛擬機器都是被隱藏在 private 私人網域,所以外部不能直接連接到 Virtual Machine 虛擬機器上.
這一個是由 Qemu 所產生所以設定檔存放在 /etc/libvirt/qemu/networks/default.xm
1.目標是用 eth0 來產生一個 bridge(bri0)
[root@benjr ~]# ifconfig eth0 0.0.0.0 [root@benjr ~]# brctl addbr bri0 [root@benjr ~]# brctl addif bri0 eth0 |
2.看這一些 eth 是在哪一個 bridge 上.
[root@benjr ~]# brctl show bridge name bridge id STP enabled interfaces bri0 8000.001517785dd6 no eth0 virbr0 8000.000000000000 yes |
3.設定一組 IP ,方便遠端管理使用.
[root@benjr ~]# ifconfig bri0 192.8.1.3 [root@benjr ~]# ifconfig bri0 bri0 Link encap:Ethernet HWaddr 00:15:17:78:5D:D6 inet addr:192.8.1.3 Bcast:192.8.1.255 Mask:255.255.255.0 inet6 addr: fe80::215:17ff:fe78:5dd6/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:14767 errors:0 dropped:0 overruns:0 frame:0 TX packets:34 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:679328 (663.4 KiB) TX bytes:9626 (9.4 KiB) |
4.最後 Allow IP forwarding
[root@benjr ~]# vi /etc/sysctl.conf net.ipv4.ip_forward = 1 [root@benjr ~]#sysctl –p |
之後所有設定在 eth0(bri0) 的 Virtual Machine 都可以互通了!!可以將剛剛的步驟寫在 /etc/rc.local,讓他在開機時候就會生效.
5.reload libvirt
[root@benjr ~]# service libvirtd reload |
如果要讓 Virtual Machine 可以立即選擇 "Shared physical device" 需將 libvirtd 的服務重新載入設定.