• 【云计算 | Openstack】KVM虚机通过dhcp自动获取地址


    环境:
    os:centos7

    1. 背景

    前文 【云计算 | OpenStack】从零开始使用libvirt创建一个kvm虚机 中的虚机使用的是基于Linux网桥的虚拟网卡,如下xml文件中的定义

       #添加网络配置,基于网桥
       <interface type='bridge'>
        <source bridge='br0'/>
        <target dev='vnet1'/>
        <alias name='net1'/>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
       interface>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    那如何给这个虚拟网卡自动分配地址呢?今天围绕这个话题展开实践

    2. 实践

    整体思路就是使用dnsmasq作为DHCP服务端,监听来自网桥br0的DHCP请求;同时修改KVM虚机中虚拟网卡配置信息,使其开机自启并发起DHCP请求。

    2.1 dnsmasq

    Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度;作为DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由

    1、首先使用yum install -y dnsmasq安装dnsmasq
    2、修改配置文件/etc/dnsmasq.conf

    interface=br0
    dhcp-range=192.168.1.70,192.168.1.70,12h
    
    • 1
    • 2
    • interface=br0:表示DHCP服务器监听的接口
    • dhcp-range=192.168.1.70,192.168.1.70,12h :表示dhcp地址池是192.168.1.70(这里地址池仅有一个地址,方便后续观察kvm虚机获取到的地址),12h表示地址释放的时间

    在这里插入图片描述
    注:dnsmasq的配置文件过滤掉空行和注释如上图,最后一行配置项conf-dir是默认的,这里我们就不动它

    3、重启dnsmasq服务
    在这里插入图片描述

    4、确保Linux网桥已分配地址,这里br0的地址是通过配置文件生成的静态ip
    在这里插入图片描述

    2.2 修改kvm虚机网卡配置文件

    在这里插入图片描述

    • BOOTPROTO=dhcp:表示该虚拟网卡通过dhcp动态获取地址
    • ONBOOT=yes:表示该虚拟网卡在os启动时自动激活

    2.3 重启KVM虚机

    1、直接kvm虚机内reboot,待系统启动后,查看虚拟网卡的ip,其地址正好是dhcp地址池内唯一的地址192.168.1.70
    在这里插入图片描述
    2、从vmware虚机中ping kvm虚机,可以正常ping通
    在这里插入图片描述

    3. 总结

    • dnsmasq作为kvm虚机的dhcp服务器,监听网桥,当kvm虚机发起dhcp请求时,可以动态获取ip地址
    • 可以将本次实验后的kvm虚机image单独保存,此后复制该image重新拉起一个kvm虚机时,就可以不用再修改虚拟网卡的配置文件了
  • 相关阅读:
    Java面试题总结
    2022年最新最详细的安装Node.js以及cnpm(详细图解过程、绝对成功)
    PostgreSQL自定义文本检索分词规则
    C#初识async与await
    常用的数字签名,信息加密算法
    import关键字的使用
    opencv可以有多有趣
    【物联网】Arduino+ESP8266物联网开发(一):开发环境搭建 安装Arduino和驱动
    FILE_文件构造方法、创建、删除、遍历等功能、经典三个小题目
    在Jetson Nano上安装ncnn深度学习框架
  • 原文地址:https://blog.csdn.net/weixin_42216109/article/details/126574334