KVM 虚拟机的 NAT 和 Bridge 网络模式的区别及配置


来源:https://www.jianshu.com/p/110b60c14a8bhttps://blog.csdn.net/wenwenxiong/article/details/47343717

1. 网络模式

网桥模式可以:

1、让客户机和宿主机共享一个物理网络设备连接网络

2、也可以让客户机有自己的IP直连与宿主机一摸一样的网络

原理图:

 

使用命令配置的过程:

1. 建立bridge,并绑定到一个可以正常对外访问的网络接口上,同时让bridge成为本机与外部网络的接口

brctl addbr br0          #添加bridge
brctl addif br0 eth0     #将br0和eth0绑定起来 (可能让网络断掉,最好在本机操作,不要通过网络)
brctl stp br0 on         #将br0设置为启用STP协议
ifconfig eth0 0          #将eth0的IP设置为0
dhclient br0             #将br0网络配置好

建立好bridge后的状态是:eth0进入混杂模式,接收网络中所有数据包,网桥br0进入转发状态。

然后在虚拟机中使用该 br0 网桥即可。

 

2. NAT 模式

NAT 即 Network Address Translation, 网络地址转换,将内网IP数据包包头中的源IP地址转换为一个外网的IP地址,因此内部IP对外是不可见的,隐藏了内部结构更加安全,但对外提供服务则是其局限性,目前通常采用iptables工具进行端口映射解决。
1、相比使用网桥共享同一个网络设备,其区别在于virbr0并未直接绑定到实际的物理网卡,数据包经过virbr0,进行nat后转到IP包转发后从实际的物理网络设备中出去
2、在nat模式下,需要在宿主机上运行一个DHCP服务器给内网的机器分配IP地址,可以使用dnsmasq工具实现,或者通过手工方式指定
原理图:

配置命令:

brctl addbr virbr0
brctl stp virbr0 on
brctl setfd virbr0 0 #设置网络转发延时
ifconfig virbr0 192.168.122.1 netmask 255.255.255.0 up


#打开宿主机上的网络转发功能
echo 1> /proc/sys/net/ipv4/ip_forward

#设置iptables 转发规则
iptables -t nat -A POSTROUTING -s 内网ip/24 ! -d  内网ip/24 -j MASQUERADE

 

3. Centos 上配置 bridge 模式

在centos中,需要创建一个 bridge,把原来网卡的IP 地址设置为该网桥的地址,然后去除网卡的地址。这些需要通过配置网络接口脚本来实现。

首先配置网桥 ifcfg-mgtbr:

TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=mgtbr
UUID=2e1a9bac-aaa6-4593-8fd2-7990deaa7803
DEVICE=mgtbr
ONBOOT=yes
IPADDR=192.168.1.10
PREFIX=24
GATEWAY=192.168.1.1
IPV6_PRIVACY=no
ZONE=public

再配置物理网卡 ifcfg-em1:

PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=em1
UUID=2e1a9bac-aaa6-4593-8fd2-7990deaa7803
DEVICE=em1
ONBOOT=yes
BRIDGE=mgtbr

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM