配置 DHCP 服务 - 每天5分钟玩转 OpenStack(89)
前面章节我们看到 instance 在启动过程中能够从 Neutron 的 DHCP 服务获得 IP,本节将详细讨论其内部实现机制。
Neutron 提供 DHCP 服务的组件是 DHCP agent。 DHCP agent 在网络节点运行上,默认通过 dnsmasq 实现 DHCP 功能。
配置 DHCP agent
DHCP agent 的配置文件位于 /etc/neutron/dhcp_agent.ini。
dhcp_driver
使用 dnsmasq 实现 DHCP。
interface_driver
使用 linux bridge 连接 DHCP namespace interface。
当创建 network 并在 subnet 上 enable DHCP 时,网络节点上的 DHCP agent 会启动一个 dnsmasq 进程为该 network 提供 DHCP 服务。
dnsmasq 是一个提供 DHCP 和 DNS 服务的开源软件。 dnsmasq 与 network 是一对一关系,一个 dnsmasq 进程可以为同一 netowrk 中所有 enable 了 DHCP 的 subnet 提供服务。
回到我们的实验环境,之前创建了 flat_net,并且在 subnet 上启用了 DHCP,执行 ps 查看 dnsmasq 进程,如下图所示:
DHCP agent 会为每个 network 创建一个目录 /opt/stack/data/neutron/dhcp/,用于存放该 network 的 dnsmasq 配置文件。
下面讨论 dnsmasq 重要的启动参数:
--dhcp-hostsfile
存放 DHCP host 信息的文件,这里的 host 在我们这里实际上就是 instance。 dnsmasq 从该文件获取 host 的 IP 与 MAC 的对应关系。 每个 host 对应一个条目,信息来源于 Neutron 数据库。
对于 flat_net,hostsfile 是 /opt/stack/data/neutron/dhcp/f153b42f-c3a1-4b6c-8865-c09b5b2aa274/host,记录了 DHCP,cirros-vm1 和 cirros-vm2 的 interface 信息。
--interface
指定提供 DHCP 服务的 interface。 dnsmasq 会在该 interface 上监听 instance 的 DHCP 请求。
对于 flat_net,interface 是 ns-19a0ed3d-fe。 或许大家还记得,之前我们看到的 DHCP interface 叫 tap19a0ed3d-fe(如下图所示),并非 ns-19a0ed3d-fe。
从名称上看,ns-19a0ed3d-fe 和 tap19a0ed3d-fe 应该存在某种联系,但那是什么呢?
要回答这个问题,需要先搞懂一个概念:Linux Network Namespace,我们下一节详细讨论。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SwarmKit的概念和架构
概述 SwarmKit是一个分布式集群调度平台,作为docker一个新的集群调度开源项目,它借鉴了许多k8s和mesos的优秀理念,也被docker公司寄予了厚望,内嵌到了docker daemon中。实际上它可以被看做Docker Swarm的2.0版本。 现在我们就来理解一下SwarmKit的基本概念模型和架构简介: 概念模型 Service(服务) 一个Service包含完成同一项工作的一组Task,它分为 Global(全局服务模式), 需要每个node上部署一个task实例,有点像kubernetes中的daemon set,用来部署类似gluster等分布式存储和fluented日志搜集模块这种类型的基础服务 Replicated(重复服务模式), 需要按照最终用户指定的数量尽可能在不同的节点上部署task的实例 Task(任务)
- 下一篇
在Docker中运行Dubbo应用
更新历史 2017.11.30 增加利用v3版本compose文件部署示例。 Dubbo概述 Dubbo是阿里开源的一个分布式服务框架,在国内粉丝很多。官网上的介绍是: DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。 Dubbo的文档很完整,网络上资源也很多,这里就不再重复了。本文做这样一个尝试,将一个Dubbo应用容器化,部署到阿里云的容器服务上。 极简Dubbo应用结构 在Dubbo世界里,服务调用方和服务提供方通过Dubbo的发现机制互相发现。一个最小的Dubbo应用包含如下三个服务: 服务提供者 服务调用方 发现机制(例如zookeeper) zookeepe
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,8上快速安装Gitea,搭建Git服务器