qemu-kvm Nat方式联网 NAT+iptables做端口映射

Bridge方式之前已经配置过

3217258983902866637.png

NAT分两种,DNAT和SNAT即目的NAT和原NAT,前者是把数据包的目的地址改为指定地址,后者是把数据包的源地址改为指定地址。

SNAT的做用是在宿主机的内部构造一个独立的虚拟子网。当子网机器发送数据出来时数据源地址将被改为宿主机器实际地址,可以把宿主机器看作网关。
使用
#brtcl show
查看网络配置文件,如果需要修改可以直接添加新建网络
新建网络方法:
在/etc/libvirt/qemu/network/中新建*.xml文件编辑网络规则

<network>
    <name>new</name>
    <bridge name='virbr1'/>
    <forward mode='route' dev='eth0'/>
    <ip address="192.168.132.1" netmask="255.255.255.0">//定义网段
    <dhcp>
        <range start="192.168.132.2" end="192.168.132.254"/>//定义dhcp方式分配ip区间
    </dhcp>
    </ip>
</network>

使用virsh对虚拟网络进行管理
#virsh

virsh # net-create /etc/libvirt/qemu/networks/new.xml
virsh # net-autostart new

这时用ifconfig命令查看网络,可以看到virbr1网络设备,同时生成/var/lib/libvirt/network/local.xml配置文件

修改vm的配置文件或在图形界面中选择联网方式选择new
重启libvirt就可以使用新规则
设置iptables规则 实现访问主机8000端口时转发至虚拟机80端口
假设宿主机ip:192.168.1.100
虚拟机ip:192.168.132.3

# iptables -A INPUT -p tcp --dport 8000 -j ACCEPT
#  iptables -t nat -A PREROUTING -d 192.168.1.100 -p tcp -m tcp --dport 8000 -j DNAT --to-destination 192.168.132.3:80   
#  iptables -t nat -A POSTROUTING -s 192.168.132.0/255.255.255.0 -d 192.168.132.3 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.132.1
赞 (13)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址