六,管理虛擬網絡
- [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] 查看虛擬機的網絡配置
#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