来源:https://www.jianshu.com/p/110b60c14a8b,https://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工具实现,或者通过手工方式指定
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