在Redhat Enterprise Linux 5 (RHEL5)上设置KVM虚拟机时有两种网络选项:1. Virtual network 2.Shared physical device 但预设的只有 Virtual network.
先来看看在 RHEL5 KVM 的环境预设会建立一个 bridge,由 QEMU 所提供出的 virbr0 预设安装 Virtual machine 时网络卡的选择也就是这种 Virtual network .
? Virtual network - virbr0
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.xml
<network>
<name>default</name>
<uuid>49a0ceb-5662-4a61-8149-98ea750d393b</uuid>
<bridge name="virbr0" />
<forward/>
<ip address="192.168.122.1" netmask="255.255.255.0">
<dhcp>
<range start="192.168.122.2" end="192.168.122.254" />
</dhcp>
</ip>
</network>
其中的 ip address 是 default gateway IP,range 则是 DHCP clients 所能使用的范围,都可以依据需求做改变.
- Shared physical device
如果要使用第二种 "Shared physical device" 时需要经过手动设定才能使用.此时所有的 Virtual machine 的网络装置就会像是串接在一个 Hub 或是 Switch 上,只要是同区段的 IP 都可以互通. 在 Linux 下网络的模式有一个东西叫做 Bridge mode,有点像将多个 NIC Adapter ports 透过一个虚拟出来的 Bridge(Switch) 全部串在一起,再透过一个虚拟出来的网络装置出去,这就像是把 Linux 当成一个 switch 来使用了.
在一般的 Linux 环境下的方法也很简单:我们也可以透过下面几个简单的指令来产生自己所需要的 Bridge 装置出来.下面的图示你可以很清楚的看出来虚拟 NIC 和实体 NIC 是如何透过 bridge 模式串接在一起.
如何配置共享网络(shared physical device)
1. 停止物理网卡eth0
ifdown eth0
2. 修改eth0的网卡配置 /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
# change the hardware address to match the hardware address your NIC uses
HWADDR=00:16:76:D6:C9:45
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
3. 创建一个新的网络接口br0
#动态IP配置
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes
Delay=0
#静态IP配置
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=<Static IP address>
NETMASK=<Netmask>
GATEWAY=<Gateway>
ONBOOT=yes
4. 启动网络
ifup eth0
ifup br0
5. 配置Iptables,编辑/etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -i br0 -j ACCEPT
参考资料:
http://kbase.redhat.com/faq/docs/DOC-19071