KVM安裝完成後,有兩種網絡配置連接模式 —— 一種是nat上網方式(virbr0網卡連接),一種是bridge(br0、br1等方式連接)方式。由於虛擬機安裝後,一般我們都會配置一個連接virbr0的一個nat網卡用於共享上網,所以這裏主要說下通過宿主機的iptables配置實現192.168.122.X網段的KVM虛擬機在配置完成後可以直接上網操作。
1、開啓路由轉發
打開/etc/sysctl.conf文件,找到ip_forward項,將其改爲如下:
net.ipv4.ip_forward = 1
2、更改iptables配置如下:
[root@localhost qemu]# cat /etc/sysconfig/iptables *nat :PREROUTING ACCEPT [193:185421] :POSTROUTING ACCEPT [177:10242] :OUTPUT ACCEPT [4:320] -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535 -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE COMMIT # Completed on Tue Jul 9 11:23:56 2013 # Generated by iptables-save v1.4.7 on Tue Jul 9 11:23:56 2013 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [549:80184] -A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT -A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT -A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT -A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -d 192.168.122.0/24 -i br1 -j ACCEPT -A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT -A FORWARD -i virbr0 -o virbr0 -j ACCEPT -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Tue Jul 9 11:23:56 2013 # Generated by iptables-save v1.4.7 on Tue Jul 9 11:23:56 2013 *mangle :PREROUTING ACCEPT [56905:10171652] :INPUT ACCEPT [553:43971] :FORWARD ACCEPT [56352:10127681] :OUTPUT ACCEPT [549:80184] :POSTROUTING ACCEPT [56901:10207865] -A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill COMMIT # Completed on Tue Jul 9 11:23:56 2013 # Generated by iptables-save v1.4.7 on Tue Jul 9 11:23:56 2013
更改完iptables的配置後,重啓iptabls服務加載生效。
最後這裏也順帶提下bridge橋接模式的配置,啓用橋模式只需要在虛擬機的相應的xml文件中,將虛擬機對應的網卡配置更改爲如下即可:
<interface type='bridge'> <mac address='52:54:00:f9:bd:b8'/> <source bridge='br0'/>
其中br0爲宿主主機物理網口(如eth0) bridge的接口。
如果不需要nat方式的virbr0網口,也可以通過下面的方式刪除(不推薦刪除):
# virsh net-destroy default # virsh net-undefine default # service libvirtd restart
各網絡接口橋接對應關係也可以通過下面的命令查看:
[root@localhost qemu]# brctl show bridge name bridge id STP enabled interfaces br0 8000.c81f66bbe018 no em1 virbr0 8000.52540081c656 yes virbr0-nic vnet0 vnet1