來源: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