1. 程式人生 > 其它 >KVM建立橋接網路虛擬機器

KVM建立橋接網路虛擬機器

安裝

安裝工具包,虛擬IO裝置、管理虛擬機器等工具
yum install qemu-kvm qemu-kvm-tools libvirt libvirt-client virt-manager virt-install
systemctl status libvirtd.service

預設為NAT模式
[root@17 ~]# ifconfig
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:c1:c3:56  txqueuelen 1000  (Ethernet)
        RX packets 22  bytes 1968 (1.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3  bytes 726 (726.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@17 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 22 packets, 3410 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 15 packets, 3038 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 10 packets, 973 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 10 packets, 973 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        
    0     0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     
    0     0 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
    0     0 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
    0     0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24    

查詢地址
可通過修改/etc/libvirt/qemu/networks/default.xml,修改該地址
[root@17 ~]# grep -R 192.168.122.1 /etc/libvirt/
/etc/libvirt/qemu/networks/autostart/default.xml:  <ip address='192.168.122.1' netmask='255.255.255.0'>
/etc/libvirt/qemu/networks/default.xml:  <ip address='192.168.122.1' netmask='255.255.255.0'>
[root@17 ~]# ll /etc/libvirt/qemu/networks/autostart/default.xml 
lrwxrwxrwx 1 root root 14 Nov  2 06:28 /etc/libvirt/qemu/networks/autostart/default.xml -> ../default.xml

配置橋接網路

[root@17 ~]# ll /etc/sysconfig/network-scripts/ifcfg-*0
-rw-r--r-- 1 root root 143 Nov  2 21:03 /etc/sysconfig/network-scripts/ifcfg-br0
-rw-r--r-- 1 root root 253 Nov  2 21:04 /etc/sysconfig/network-scripts/ifcfg-eth0

註釋或刪除eth0配置檔案的IP地址相關配置
[root@17 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
NAME=eth0
UUID=b1a0546d-7f62-4c44-8c12-1d06441d8b8d
DEVICE=eth0
ONBOOT=yes

BRIDGE=br0

#IPADDR=10.0.0.17
#PREFIX=24
#GATEWAY=10.0.0.254
#DNS1=233.5.5.5
#DNS2=114.114.114.114

新建網橋br0,配置檔案如下
[root@17 ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0 
TYPE=Bridge
BOOTPROTO=static
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=10.0.0.17
PREFIX=24
GATEWAY=10.0.0.254
DNS1=233.5.5.5
DNS2=114.114.114.114

systemct restart network

[root@17 ~]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.17  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::20c:29ff:fe6b:740f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:6b:74:0f  txqueuelen 1000  (Ethernet)
        RX packets 23  bytes 1388 (1.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 21  bytes 1818 (1.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fc54:ff:fed6:99df  prefixlen 64  scopeid 0x20<link>
        ether fe:54:00:d6:99:df  txqueuelen 1000  (Ethernet)
        RX packets 28  bytes 3428 (3.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2191  bytes 115582 (112.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@17 ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c296b740f	no		eth0
virbr0		8000.525400c1c356	yes		virbr0-nic
							vnet0

建立虛擬機器

建立qcow2格式磁碟(類似精簡置備)
[root@17 ~]# qemu-img create -f qcow2 /var/lib/libvirt/images/n50.qcow2 10G
Formatting '/var/lib/libvirt/images/n50.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off 

建立虛擬機器橋接模式虛擬機器(上傳映象到/data/ISOs目錄下)
[root@17 ~]#virt-install  --virt-type kvm --name centos7_n50  --ram 1024 --vcpus 2 --cdrom=/data/ISOs/CentOS-7-x86_64-Minimal-2009.iso   --disk path=/var/lib/libvirt/images/n50.qcow2   --network bridge=br0  --graphics vnc,listen=0.0.0.0 --noautoconsole --autostart

圖形化安裝
[root@17 ~]# virt-manager

![](https://img2020.cnblogs.com/blog/1765433/202111/1765433-20211106154005063-360961168.png)

![](https://img2020.cnblogs.com/blog/1765433/202111/1765433-20211106153938519-626533124.png)

檢視並啟動啟動虛擬機器
[root@17 ~]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 3     centos7_n50_br                 running
 -     centos7_n50                    shut off

[root@17 ~]# virsh start centos7_n50_br 
Domain centos7_n50_br started

[root@17 ~]# ps aux | grep kvm
root        525  0.0  0.0      0     0 ?        S<   22:15   0:00 [kvm-irqfd-clean]
qemu       3541 32.3 10.2 1718428 394800 ?      Sl   23:51   0:38 /usr/libexec/qemu-kvm -name centos7_n50_br -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off,dump-guest-core=off -cpu Broadwell-IBRS,+md-clear,+ssbd,-hle,-rtm,+spec-ctrl -m 1024 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 3ea1dc74-086e-46ab-8a43-adc6b4f2dde0 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-3-centos7_n50_br/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x4.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x4 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x4.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x4.0x2 -drive file=/var/lib/libvirt/images/n50.qcow2,format=qcow2,if=none,id=drive-ide0-0-0 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,id=drive-ide0-0-1,readonly=on -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -netdev tap,fd=27,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:46:49:db,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -vnc 0.0.0.0:0 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 -msg timestamp=on
root       3562  0.0  0.0      0     0 ?        S    23:51   0:00 [kvm-nx-lpage-re]
root       3567  0.0  0.0      0     0 ?        S    23:51   0:00 [kvm-pit/3541]
root       3594  0.0  0.0 112812   964 pts/1    S+   23:53   0:00 grep --color=auto kvm