Linux實戰教學筆記55:開源虛擬化KVM(三)管理虛擬網絡

六,管理虛擬網絡

  • [x] Linux網橋基本概念
  • [x] qemu-kvm支持的網絡
  • [x] 向虛擬機添加虛擬網絡鏈接
  • [x] 基於NAT的虛擬網絡
  • [x] 基於網橋的虛擬網絡
  • [x] 用戶自定義的隔離的虛擬網絡

6.1 Linux網橋與qemu-kvm支持的網絡

Linux網橋基本概念linux

  • [x] 數據鏈路的設備,基於MAC地址進行轉發
  • [x] Redhat/CentOS配置網橋經常使用方法
    • 命令行(推薦)
    • nmtui:NetworkManager的文本用戶接口
    • nmcli:NetworkManager的命令行工具
      # nmcli con add type bridge ifname br0
      # nmcli con show
    • 圖形界面管理工具

qemu-kvm支持的網絡shell

  • [x] 虛擬機的網絡模式:
    • 基於NAT(NetworkAddressTranslation)的虛擬網絡
    • 基於網橋(Bridge)的虛擬網絡
    • 用戶自定義的隔離的虛擬網絡
    • 直接分配網絡設備(包括VT-d和SR-IOV)
  • [x] 虛擬機的網卡:
    • RTL8139,e1000,....
    • virtio
      # /usr/libexec/qemu-kvm -net nic,mode1=?

演示:考察默認的虛擬網絡的配置vim

  • [x] 查看宿主機的網絡配置
  • [x] 查看虛擬機的網絡配置

221.png-20.3kB

222.png-34.3kB

223.png-33.3kB

#qemu-kvm的虛擬網絡配置文件在哪?
[root@localhost ~]# ls /etc/libvirt/    #libvirt的全部配置文件目錄
libvirt-admin.conf  lxc.conf  qemu.conf        virtlockd.conf
libvirt.conf        nwfilter  qemu-lockd.conf  virtlogd.conf
libvirtd.conf       qemu      storage       #storage目錄,全部存儲池的XML配置文件
[root@localhost ~]# ls /etc/libvirt/qemu    #qemu目錄全部qemu有關的配置文件
autostart         centos6.5-2.xml  centos6.5.xml  erp.xml  LNMP.xml  oa.xml
Base_CentOS7.xml  centos6.5-3.xml  crm.xml        hr.xml   networks  vm2.xml
[root@localhost ~]# ls /etc/libvirt/qemu/networks/  #qemu裏存儲全部虛擬網絡配置文件的目錄networks
autostart  default.xml      #default.xml這個就是默認的虛擬網絡的XML配置文件
[root@localhost ~]# cat /etc/libvirt/qemu/networks/default.xml  #查看default.xml內容
<!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: virsh net-edit default or other application using the libvirt API. --> <network> <name>default</name> #虛擬網絡的名字 <uuid>5687d2e1-c14d-42bb-abe2-fcb4bfac2a12</uuid> #UUID號 <forward mode='nat'/> #虛擬網絡的模式NAT <bridge name='virbr0' stp='on' delay='0'/> #虛擬網絡的網橋名稱 <mac address='52:54:00:79:e3:41'/> <ip address='192.168.122.1' netmask='255.255.255.0'> #網橋的IP和掩碼 <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> #DHCP的分發範圍 </dhcp> </ip> </network>

利用virsh 管理虛擬網絡windows

#virsh裏關於網絡部分的命令 [root@localhost ~]# virsh help network Networking (help keyword 'network'): net-autostart 自動開始網絡 net-create 從一個 XML 文件建立一個網絡 net-define define an inactive persistent virtual network or modify an existing persistent one from an XML file net-destroy 銷燬(中止)網絡 net-dhcp-leases print lease info for a given network net-dumpxml XML 中的網絡信息 net-edit 爲網絡編輯 XML 配置 net-event Network Events net-info 網絡信息 net-list 列出網絡 net-name 把一個網絡UUID 轉換爲網絡名 net-start 開始一個(之前定義的)不活躍的網絡 net-undefine undefine a persistent network net-update 更新現有網絡配置的部分 net-uuid 把一個網絡名轉換爲網絡UUID #查看全部虛擬網絡信息 [root@localhost ~]# virsh net-list 名稱 狀態 自動開始 持久 ---------------------------------------------------------- default 活動 是 是 #查看某虛擬網絡詳細信息 [root@localhost ~]# virsh net-info default 名稱: default UUID: 5687d2e1-c14d-42bb-abe2-fcb4bfac2a12 活躍: 是 持久: 是 自動啓動: 是 橋接: virbr0 #查看某虛擬網絡的XML配置文件信息 [root@localhost ~]# virsh net-dumpxml default <network connections='1'> <name>default</name> <uuid>5687d2e1-c14d-42bb-abe2-fcb4bfac2a12</uuid> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:79:e3:41'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network>

什麼叫作網橋?網橋究竟是怎麼回事?centos

[root@localhost ~]# ifconfig -a ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #宿主機的真實網卡接口 inet 192.168.200.132 netmask 255.255.255.0 broadcast 192.168.200.255 inet6 fe80::d302:4c4f:17a0:b161 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:96:3a:c5 txqueuelen 1000 (Ethernet) RX packets 793722 bytes 74452602 (71.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1308099 bytes 2734536899 (2.5 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 #宿主機的lo迴環接口 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 739954 bytes 1460949048 (1.3 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 739954 bytes 1460949048 (1.3 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #虛擬網橋(虛擬交換機)virbr0 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:79:e3:41 txqueuelen 1000 (Ethernet) RX packets 2780 bytes 222708 (217.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3652 bytes 360625 (352.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0-nic: flags=4098<BROADCAST,MULTICAST> mtu 1500 #鏈接到網橋virbr0上的宿主機的虛擬網卡接口 ether 52:54:00:79:e3:41 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ##鏈接到virbr0上的虛擬機的網卡接口 inet6 fe80::fc54:ff:fe0c:8bd2 prefixlen 64 scopeid 0x20<link> ether fe:54:00:0c:8b:d2 txqueuelen 1000 (Ethernet) RX packets 2780 bytes 261628 (255.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 30643 bytes 1764617 (1.6 MiB) TX errors 0 dropped 7222 overruns 0 carrier 0 collisions 0 [root@localhost ~]# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.52540079e341 yes virbr0-nic #鏈接到網橋virbr0上的宿主機的虛擬網卡接口 vnet0 #鏈接到網橋virbr0上的虛擬機的虛擬網卡接口

NAT模式的網橋鏈接概念圖:緩存

QQ截圖20180521231224.png-37.1kB

查看虛擬機的網絡鏈接配置:markdown

[root@localhost ~]# virsh list Id 名稱 狀態 ---------------------------------------------------- 1 centos6.5 running [root@localhost ~]# virsh edit centos6.5 #至關於以vim在內存中即時打開虛擬機的XML配置文件 #############以上省略若干############ <interface type='network'> #虛擬機的網絡接口類型 <mac address='52:54:00:0c:8b:d2'/> #虛擬機的網卡MAC地址 <source network='default'/> #虛擬機的網卡的源網絡名稱 <model type='virtio'/> #虛擬機的網絡接口模式virtio <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> #############如下省略若干############

在宿主機中測試網絡聯通性網絡

231.png-38.9kB

在虛擬機中測試網絡聯通性app

232.png-23.1kB

6.2 基於NAT的虛擬網絡

234.png-312.1kB

[root@localhost ~]# virsh list Id 名稱 狀態 ---------------------------------------------------- 1 centos6.5 running 5 centos6.5-2 running [root@localhost ~]# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.52540079e341 yes virbr0-nic vnet0 vnet1

經過圖形界面向虛擬機中添加一塊NAT網卡less

241.png-31.9kB

[root@localhost ~]# virsh list Id 名稱 狀態 ---------------------------------------------------- 1 centos6.5 running 5 centos6.5-2 running [root@localhost ~]# virsh domiflist centos6.5 #查看虛擬機網絡接口類型 接口 類型 源 型號 MAC ------------------------------------------------------- vnet0 network default virtio 52:54:00:0c:8b:d2 vnet2 network default virtio 52:54:00:ea:57:f7 [root@localhost ~]# virsh domiflist centos6.5-2 #查看虛擬機網絡接口類型 接口 類型 源 型號 MAC ------------------------------------------------------- vnet1 network default virtio 52:54:00:35:29:ea [root@localhost ~]# virsh domifaddr centos6.5 #查看虛擬機網卡IP地址 名稱 MAC 地址 Protocol Address ------------------------------------------------------------------------------- vnet0 52:54:00:0c:8b:d2 ipv4 192.168.122.123/24 [root@localhost ~]# virsh domifstat centos6.5 vnet0 #查看虛擬機指定網卡的狀態 vnet0 rx_bytes 2556553 vnet0 rx_packets 42292 vnet0 rx_errs 0 vnet0 rx_drop 7222 vnet0 tx_bytes 625776 vnet0 tx_packets 6566 vnet0 tx_errs 0 vnet0 tx_drop 0 

6.3 基於網橋的虛擬網絡

QQ截圖20180525212201.png-339.5kB

由上圖可知:

  • NAT模式:經過網橋virbr0將宿主機上的一塊虛擬網卡virbr0-nic與虛擬機的虛擬網卡vnet0進行鏈接,然後虛擬機的數據包經過網橋virbr0發送到宿主機的虛擬網卡virbr0-net上,再進行宿主機網卡間的數據包轉發實現的虛擬機經過宿主機來上網。
  • 橋接模式:經過網橋virbr0將虛擬機的虛擬網卡vnet1直接鏈接在宿主機的真實物理網卡上,而後經過宿主機的真實物理網卡來上網。
    所以,想要實現橋接的上網模式,咱們首先須要學會如何來建立網橋virbr1
#modprobe探測內核對於某個模塊是否加載的命令 [root@localhost ~]# which modprobe /usr/sbin/modprobe #探測bridge模塊是否安裝,若是沒有,那麼--first-time第一時間加載這個模塊 [root@localhost ~]# modprobe --first-time bridge #探測網橋模塊是否被內核加載 modprobe: ERROR: could not insert 'bridge': Module already in kernel #kernel已經加載了 [root@localhost ~]# modinfo bridge filename: /lib/modules/3.10.0-514.el7.x86_64/kernel/net/bridge/bridge.ko alias: rtnl-link-bridge version: 2.3 license: GPL rhelversion: 7.3 srcversion: FF0448CD85C271287DE1963 depends: stp,llc intree: Y vermagic: 3.10.0-514.el7.x86_64 SMP mod_unload modversions signer: CentOS Linux kernel signing key sig_key: D4:88:63:A7:C1:6F:CC:27:41:23:E6:29:8F:74:F0:57:AF:19:FC:54 sig_hashalgo: sha256 

6.3.1 經過命令行進行網橋virbr1的建立

[root@localhost ~]# cd /etc/sysconfig/network-scripts/ #進入宿主機物理網卡配置文件目錄 [root@localhost network-scripts]# cat ifcfg-ens32 #查看宿主機物理網卡配置文件信息 TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens32 UUID=17fb5987-5317-4bca-8514-9e1b73933184 DEVICE=ens32 ONBOOT=yes [root@localhost network-scripts]# mkdir bak #建立備份目錄 [root@localhost network-scripts]# cp ifcfg-ens32 bak/ifcfg-ens32.bak #複製一份網卡配置文件備份 #複製一份物理網卡配置文件進行修改,做爲網橋配置文件 [root@localhost network-scripts]# cp ifcfg-ens32 ifcfg-virbr1 [root@localhost network-scripts]# vim ifcfg-virbr1 [root@localhost network-scripts]# cat ifcfg-virbr1 DEVICE=virbr1 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.200.200 #橋接的網橋IP確定和宿主機要同一網段 NETMASK=255.255.255.0 GATEWAY=192.168.200.2 DNS1=192.168.200.2 ONBOOT=yes #讓物理網卡配置文件能夠識別網橋virbr1 [root@localhost network-scripts]# cat ifcfg-ens32 TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens32 UUID=17fb5987-5317-4bca-8514-9e1b73933184 DEVICE=ens32 ONBOOT=yes BRIDGE=virbr1 #增長本條配置語句 #重啓宿主機的網絡模式 [root@localhost network-scripts]# service network restart

重啓後,同窗們會發現,很大機率咱們的xshell已經掉線了。

QQ截圖20180525223603.png-49.7kB

xshell連不上了,怎麼辦呢?咱們如今修改xshell的鏈接配置。咱們去鏈接virbr1網橋的IP地址。

QQ截圖20180525224117.png-40.1kB

打開virt-manager圖形模式,咱們查看網絡接口狀況

QQ截圖20180525224935.png-26.3kB

打開虛擬機此時咱們發現以前NAT模式鏈接的虛擬機已經沒法鏈接外網了

QQ截圖20180525230153.png-28.2kB

咱們利用virt-manager圖形界面將虛擬機的網卡鏈接模式切換到橋接模式橋接virbr1

QQ截圖20180525230300.png-54.6kB

進入虛擬機咱們重啓網卡的配置文件

QQ截圖20180525230508.png-36.3kB

此時咱們的外部機器也能夠ping通咱們的橋接的虛擬機了

QQ截圖20180525230930.png-23.1kB

6.3.2 經過圖形界面進行網橋virbr1的建立

[root@localhost ~]# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.52540079e341 yes virbr0-nic vnet1 vnet2 virbr1 8000.000c29963ac5 no ens32 vnet0 #以前原本插在virbr0上的網卡(NAT模式),現在插到virbr1上(橋接模式)

如今咱們還原一下virbr1的配置文件。(移走virbr0,還原ens32網卡配置文件等)
若是同窗們還原後,發現virbr1還在,也不要緊,那是還沒清空的緩存致使。
只要圖形界面下沒有了便可。

QQ截圖20180525233152.png-20.4kB

圖形化建立virbr1

311.png-20.7kB

312.png-11.2kB

313.png-22.3kB

314.png-6.2kB

315.png-20.3kB

#驗證virbr1配置 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32 #咱們發現網卡配置文件已經改變 DEVICE=ens32 ONBOOT=yes BRIDGE="virbr1" [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-virbr1 #網橋文件被自動建立 DEVICE="virbr1" ONBOOT="yes" TYPE="Bridge" BOOTPROTO="dhcp" PEERDNS="yes" IPV6INIT="yes" IPV6_AUTOCONF="yes" DHCPV6C="no" STP="on" DELAY="0.0" [root@localhost ~]# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.52540079e341 yes virbr0-nic vnet0 vnet1 vnet2 virbr1 8000.000c29963ac5 no ens32 [root@localhost ~]# service network restart #重啓網絡,激活virbr1網橋配置 Restarting network (via systemctl): [ 肯定 ] [root@localhost ~]# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.52540079e341 yes virbr0-nic vnet0 vnet1 vnet2 virbr1 8000.000c29963ac5 yes ens32 #已經激活 [root@localhost ~]# ifconfig ens32 #查看物理網卡IP已經消失 ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::20c:29ff:fe96:3ac5 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:96:3a:c5 txqueuelen 1000 (Ethernet) RX packets 1146650 bytes 107636905 (102.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1877446 bytes 3852832284 (3.5 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# ifconfig virbr1 #查看網橋IP,已經出現 virbr1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.200.132 netmask 255.255.255.0 broadcast 192.168.200.255 inet6 fe80::20c:29ff:fe96:3ac5 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:96:3a:c5 txqueuelen 1000 (Ethernet) RX packets 164 bytes 11098 (10.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 101 bytes 16483 (16.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 

在工做中,咱們經過網橋鏈接的物理網卡一般都是單點的,所以,咱們須要將網橋綁定到多塊物理網卡上,這就須要咱們學習物理網卡綁定的相關知識。

6.4 配置網卡綁定

QQ截圖20180525234951.png-383kB

實驗:配置多網卡綁定的KVM橋接模式

  • [x] 綁定網卡
    • 啓用Bonding
    • 配置物理網卡
    • 配置綁定接口
    • 從新啓動服務
    • 測試
  • [x] 配置網橋

1.png-151.2kB

2.png-73.5kB

實操(1):建立多網卡bond

咱們給KVM宿主機多天加一塊網卡,並刪除virbr1網橋還原ens32網卡的初始設置

#查看兩塊網卡的初始配置
[root@localhost ~]# ifconfig ens32
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.200.132 netmask 255.255.255.0 broadcast 192.168.200.255 inet6 fe80::d302:4c4f:17a0:b161 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:96:3a:c5 txqueuelen 1000 (Ethernet) RX packets 24084 bytes 13474369 (12.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 323 bytes 28440 (27.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# ifconfig ens36 ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.200.136 netmask 255.255.255.0 broadcast 192.168.200.255 inet6 fe80::7d41:4e00:f272:89d2 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:96:3a:cf txqueuelen 1000 (Ethernet) RX packets 11580 bytes 1266636 (1.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 12852 bytes 22770539 (21.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #查看網池基本狀況 [root@localhost ~]# virsh net-list 名稱 狀態 自動開始 持久 ---------------------------------------------------------- default 活動 是 是 #查看默認網池的xml配置信息 [root@localhost ~]# virsh net-dumpxml default <network connections='2'> <name>default</name> <uuid>5687d2e1-c14d-42bb-abe2-fcb4bfac2a12</uuid> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:79:e3:41'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network> #查看KVM宿主機的物理網絡接口信息 [root@localhost network-scripts]# virsh iface-list 名稱 狀態 MAC 地址 --------------------------------------------------- ens32 活動 00:0c:29:96:3a:c5 lo 活動 00:00:00:00:00:00

咱們發如今查看網絡接口時並無新添加進來的ens36的網卡信息,這是由於尚未相應的網絡接口配置文件,咱們能夠選擇手動在/etc/sysconfig/network-scripts/目錄下建立,也能夠經過virt-manager建立。

經過virt-manager建立網卡接口文件

441.png-20.3kB

442.png-11.5kB

443.png-20kB

[root@localhost network-scripts]# ls ifcfg-ens32 ifcfg-ens36 ifcfg-ens32 ifcfg-ens36 #已經有了 [root@localhost network-scripts]# cat ifcfg-ens36 DEVICE="ens36" HWADDR="00:0c:29:96:3a:cf" ONBOOT="yes" BOOTPROTO="dhcp" [root@localhost network-scripts]# virsh iface-list 名稱 狀態 MAC 地址 --------------------------------------------------- ens32 活動 00:0c:29:96:3a:c5 ens36 活動 00:0c:29:96:3a:cf #已經有了 lo 活動 00:00:00:00:00:00 

查看kernel是否支持網卡綁定

#查看是否支持網卡綁定 [root@localhost network-scripts]# lsmod | grep bonding #激活內核網卡綁定模塊 [root@localhost network-scripts]# modprobe --first-time bonding [root@localhost network-scripts]# lsmod | grep bonding bonding 141566 0 #備份網卡配置文件 [root@localhost network-scripts]# cp ifcfg-ens* bak/ #修改ens32和ens36網卡配置文件讓band0綁定接口爲主,他們爲從 [root@localhost network-scripts]# vim ifcfg-ens32 [root@localhost network-scripts]# cat ifcfg-ens32 TYPE=Ethernet BOOTPROTO=none NAME=ens32 DEVICE=ens32 ONBOOT=yes MASTER=bond0 SLAVE=yes NM_CONTROLLED=no USERCTL=NO [root@localhost network-scripts]# vim ifcfg-ens36 [root@localhost network-scripts]# cp ifcfg-ens32 ifcfg-ens36 cp:是否覆蓋"ifcfg-ens36"? y [root@localhost network-scripts]# vim ifcfg-ens36 [root@localhost network-scripts]# cat ifcfg-ens36 TYPE=Ethernet BOOTPROTO=none NAME=ens36 DEVICE=ens36 ONBOOT=yes MASTER=bond0 SLAVE=yes NM_CONTROLLED=no USERCTL=NO #建立bond0綁定接口配置文件 [root@localhost network-scripts]# vim ifcfg-bond0 [root@localhost network-scripts]# cat ifcfg-bond0 DEVICE=bond0 ONBOOT=yes NM_CONTROLLED=no USERCTL=no BONDING_OPTS="mode=1 miimon=100" #mode=1是主備模式,兩塊從卡不一樣時生效 BOOTPROTO=static IPADDR=192.168.200.132 NETMASK=255.255.255.0 #從新啓動網絡服務 [root@localhost ~]# service network restart #查看bond0綁定接口 [root@localhost ~]# ifconfig bond0 bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet 192.168.200.132 netmask 255.255.255.0 broadcast 192.168.200.255 inet6 fe80::20c:29ff:fe96:3ac5 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:96:3a:c5 txqueuelen 1000 (Ethernet) RX packets 186 bytes 16691 (16.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 122 bytes 22238 (21.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #查看bond0詳細信息 [root@localhost ~]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) #mode=1的模式==>主被動模式 Primary Slave: None Currently Active Slave: ens32 #當前活動中的網卡ens32 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens32 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:96:3a:c5 Slave queue ID: 0 Slave Interface: ens36 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:96:3a:cf Slave queue ID: 0

測試綁定中的網卡:

咱們斷開ens32的網卡

445.png-31.6kB

[root@localhost ~]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: ens36 #ens36被啓動了 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens32 MII Status: down #ens32 down了 Speed: Unknown Duplex: Unknown Link Failure Count: 1 Permanent HW addr: 00:0c:29:96:3a:c5 Slave queue ID: 0 Slave Interface: ens36 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 1 Permanent HW addr: 00:0c:29:96:3a:cf Slave queue ID: 0 

咱們用windows ping KVM宿主機,仍然能通

446.png-10.5kB

實操(2):搭建bond的KVM網橋

406.png-41.2kB

#驗證網橋virbr1狀態 [root@localhost ~]# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.52540079e341 yes virbr0-nic vnet0 vnet1 virbr1 8000.000c29963ac5 no bond0 [root@localhost ~]# ifconfig bond0 bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500 inet6 fe80::20c:29ff:fe96:3ac5 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:96:3a:c5 txqueuelen 1000 (Ethernet) RX packets 3717 bytes 425857 (415.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7004 bytes 12720203 (12.1 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# ifconfig virbr1 virbr1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.200.132 netmask 255.255.255.0 broadcast 192.168.200.255 inet6 fe80::20c:29ff:fe96:3ac5 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:96:3a:c5 txqueuelen 1000 (Ethernet) RX packets 3667 bytes 372147 (363.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 2354 bytes 7601615 (7.2 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 

特別提示,若是利用圖形化方式添加橋接網橋virbr1時遇到以下問題,可嘗試在網卡配置文件中加入NM_CONTROLLED=no和USERCTL=NO解決(ens32,ens36,bond0),若是還未解決,多是因爲以前頻繁作實驗搭建過屢次同名網橋,系統留有緩存,請嘗試reboot重啓操做系統。

447.png-4.4kB

金牌IT職業再教育培訓機構,歡迎來校資源。QQ:215379068
相關文章
相關標籤/搜索