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

环境: os:centos7

1. 背景

前文 中的虚机使用的是基于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>

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

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
    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虚机时,就可以不用再修改虚拟网卡的配置文件了
经验分享 程序员 微信小程序 职场和发展