• Ubuntu18.04服务器使用netplan网络构建桥接kvm虚拟机


    参考链接
    Ubuntu 18.04 LTS安装KVM虚拟机
    如何在 Ubuntu 18.04 服务器上安装和配置 KVM
    KVM日常管理和克隆
    KVM详解

    1.准备工作

    首先需要检查一下CPU是否支持虚拟化,执行一下命令来检查/proc/cpuinfo文件中是否又虚拟化相关的字眼,如果有的话表明CPU支持虚拟化技术。

    egrep -c '(svm|vmx)' /proc/cpuinfo
    

    上面命令执行结果如果返回0,表示CPU不支持虚拟化技术。当然主板BIOS中的虚拟化技术也可能不是默认开启的,如果没有开启需要手动开启一下。

    2.安装KVM

    #执行以下命令安装KVM
    
    sudo apt update
    sudo apt install qemu qemu-kvm libvirt-bin  bridge-utils  virt-manager
    #将libvirtd添加自启动
    
    sudo systemctl start libvirtd.service
    sudo systemctl enable libvirtd.service
    

    3.选择kvm网络工作模式

    KVM安装完成后,首先需要进行网络设定,KVM支持四种网络模式:

    • 桥接模式
    • NAT模式
    • 用户网络模式
    • 直接分配设备模式

    桥接(Bridge)模式

    原理:
    在桥接模式下,宿主机和虚拟机共享同一个物理网络设备,虚拟机中的网卡和物理机中的网卡是平行关系,所以虚拟机可以直接接入外部网络,虚拟机和宿主机有平级的IP。

    原本宿主机是通过网卡eth0连接外部网络的,网桥模式会新创建一个网桥br0,接管eth0来连接外部网络,然后将宿主机和虚拟机的网卡eth0都绑定到网桥上。

    对于未使用netplan来管理网络服务的ubuntu服务器,如果要使用桥接模式需要进行以下操作:

    编辑/etc/network/interfaces,增加如下内

    auto br0
    iface br0 inet dhcp  # 网桥使用DHCP模式,从DHCP服务器获取IP
    bridge_ports enp3s0  # 网卡名称,网桥创建前连接外部的网卡,可通过ifconfig命令查看,有IP地址的就是
    bridge_stp on  # 避免数据链路出现死循环
    bridge_fd 0  # 将转发延迟设置为0
    

    接下来需要重启networking服务(如果是通过SSH连接到宿主机上的,这一步会导致网络中断,如果出现问题可能导致连不上宿主机,最好在宿主机上直接操作)

    systemctl restart networking.service
    #使用ifconfig命令查看IP是否从enp3s0(网桥创建前的网卡)变到了br0上,如果没有变化则需要重启。如果宿主机ip已经成功变到网桥上,并且宿主机能正常上网而虚拟机获取不到ip,可能是ufw没有允许ip转发导致的,编辑/etc/default/ufw允许ip转发。
    
    DEFAULT_FORWARD_POLICY="ACCEPT"
    #重启ufw服务让设置生效
    
    systemctl restart ufw.service
    

    对于已经使用netplan来管理网络的ubuntu服务器需要修改netplan而非/etc/network/interfaces

    在做修改之前,我本地的ubuntu服务器已经添加静态IP,配置如下

     cat /etc/netplan/50-cloud-init.yaml 
    # This file is generated from information provided by
    # the datasource.  Changes to it will not persist across an instance.
    # To disable cloud-init's network configuration capabilities, write a file
    # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
    # network: {config: disabled}
    network:
        ethernets:
            enp5s0:
                dhcp4: false 
                addresses: [192.168.40.20/24]
                gateway4: 192.168.40.1 
                nameservers:
                    addresses:
                    - 223.5.5.5
                    - 114.114.114.114
                    - 192.168.40.1
            enp6s0:
                dhcp4: true
                nameservers:
                    addresses:
                    - 223.5.5.5
                    - 223.6.6.6
        version: 2
    

    参考参考文章2的描述,将enp5s0桥接到br0网桥,修改后的配置文件如下,我本地有两个物理网卡,这里将enp5s0用来作桥接,enp6s0保留

    cat /etc/netplan/50-cloud-init.yaml 
    # This file is generated from information provided by
    # the datasource.  Changes to it will not persist across an instance.
    # To disable cloud-init's network configuration capabilities, write a file
    # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
    # network: {config: disabled}
    network:
        ethernets:
            enp5s0:
                dhcp4: false 
            enp6s0:
                dhcp4: true
                nameservers:
                    addresses:
                    - 223.5.5.5
                    - 223.6.6.6
        bridges:
          kvmbr0:
            interfaces: [enp5s0]
            dhcp4: no
            addresses: [192.168.40.20/24]
            gateway4: 192.168.40.1
            nameservers:
              addresses: [192.168.40.1,223.5.5.5,223.6.6.6,114.114.114.114]
        version: 2
    

    4.创建kvm虚拟机

    • 使用 virt-manager 图形化界来创建
    • 使用virt-install 命令行创建主机

    本文主要介使用kvm命令行来创建虚拟机的流程

    linuxtechi@kvm-ubuntu18-04:~$ sudo virt-install  -n DB-Server  --description "Test VM for Database"  --os-type=Linux  --os-variant=rhel7  --ram=1096  --vcpus=1  --disk path=/var/lib/libvirt/images/dbserver.img,bus=virtio,size=10  --network bridge:br0 --graphics none  --location /home/linuxtechi/rhel-server-7.3-x86_64-dvd.iso --extra-args console=ttyS0
    
    

    #不创建虚拟磁盘,一次性创建KVM虚拟机(默认为qcow2磁盘格式,网络为桥接模式,在此前最好安装virt-manager):
    virt-install  --virt-type kvm --name CentOS-7-x86_64 --ram 2048  
     -vcpus=1 -s 20 -c /vm/iso/CentOS-7-x86_64-DVD-1511.iso --hvm   
      --os-type=linux -f /vm/CentOS-7-x86_64-tmp.img --graphics vnc,listen=0.0.0.0  
      --noautoconsole
    
  • 相关阅读:
    计算机网络--Socket
    计算机网络-p2p
    ubuntu安装redis
    解决beego在ubuntu下连接mysql与重置mysql密码
    二叉树的结点计算题
    极限之无穷小的比阶
    数据结构上机实验(7)
    线代中两个列向量的小知识
    中值定理结合行列式计算
    n阶行列式计算
  • 原文地址:https://www.cnblogs.com/johnsonjie/p/10876417.html
Copyright © 2020-2023  润新知