王高利:Kvm虛擬化(3)__nat方式上網

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章