配置 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,我们下一节详细讨论。

 

时间: 2024-07-30 13:19:03

配置 DHCP 服务 - 每天5分钟玩转 OpenStack(89)的相关文章

用 namspace 隔离 DHCP 服务 - 每天5分钟玩转 OpenStack(90)

Neutron 通过 dnsmasq 提供 DHCP 服务,而 dnsmasq 如何独立的为每个 network 服务呢? 答案是通过 Linux Network Namespace 隔离,本节将详细讨论. 在二层网络上,VLAN 可以将一个物理交换机分割成几个独立的虚拟交换机. 类似地,在三层网络上,Linux network namespace 可以将一个物理三层网络分割成几个独立的虚拟三层网络. 每个 namespace 都有自己独立的网络栈,包括 route table,firewall

ML2 配置 OVS VxLAN - 每天5分钟玩转 OpenStack(146)

今天我们开始学习 OVS 如何实现 Neutron VxLAN,关于 VxLAN 的概念以及 Linux Bridge 实现,大家可以参考前面相关章节. Open vSwitch 支持 VXLAN 和 GRE 这两种 overlay network.因为 OpenStack 对于 VXLAN 与 GRE 配置和实现差别不大,这里只讨论如何实施 VXLAN. 在 ML2 配置中 enable vxlan network 在 /etc/neutron/plugins/ml2/ml2_conf.ini

为 instance 配置静态 IP - 每天5分钟玩转 OpenStack(157)

  这是 OpenStack 实施经验分享系列的第 7 篇. 传统运维中为服务器配置静态 IP 是再常见不过的了.但在 OpenStack 环境下只能指定 network,IP 都是 Neutron 从 subnet IP 池中自动分配的.   有同学就会想办法了:等 instance 起来后手工把 IP 改掉行不行? 非常遗憾,不行! instance 网卡的 IP 和 Mac 地址是记录在 port 中的,计算节点的 iptable 会根据 port 信息生成相应的 rule,只有与 por

如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)

Rex-Ray 是一个优秀的 Docker volume driver,本节将演示其安装和配置方法. Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很简单,在需要使用 Rex-Ray driver 的主机 docker1 和 docker2 上运行如下命令: curl -sSL https://dl.bintray.com/emccode/rexray/install | sh - 然后创建并编辑 Rex-Ray 的配置文件 /etc/rexray/c

配置 VirtualBox backend - 每天5分钟玩转 Docker 容器技术(75)

Rexy-Ray 支持多种 backend,上一节我们已经安装配置了 Rex-Ray,今天演示如何配置 VirtualBox backend. 在 VirtualBox 宿主机,即我的笔记本上启动 vboxwebsrv 服务:vboxwebsrv -H 0.0.0.0 执行如下命令关闭 VirtualBox 的登录认证:VBoxManage setproperty websrvauthlibrary null 在关机状态下修改虚拟机 docker1 和 docker2 的 Storage 配置:

Linux系统怎么配置DHCP服务

大家知道dhcp可以动态ip地址分配服务拉!在一个网络中,可能电脑不可能好多的情况下,大家那么总是手动给每个电脑分配ip地址等多数网络的设定.可能一个网络中存在上百台电脑,大家也要一台台跑去设定他们的ip地址,那样本人希望人总会调整的头昏,还得上串下跳的到处跑.Linux系统怎么配置DHCP服务呢? DHCPd后台程序老是读取配置文件/etc/dhcpd.conf, 下面给出一本人主机上的DHCP配置文件的例子: ddns-update-style interim; ignore client-

写在最前面 - 每天5分钟玩转 OpenStack(1)

<每天5分钟玩转 OpenStack>是一个 OpenStack 教程,这是第 1 篇. 这个教程有下面两个特点: 系统讲解 OpenStack 从架构到各个组件:从整体到细节逐一讨论 重实践并兼顾理论 主要从实际操作的角度带着大家学习 OpenStack.   为啥要写这个? 简单回答是:因为OpenStack 学习难度大,但如果掌握了价值会很大 先做一个自我介绍吧. 本人网名CloudMan,在 IT 这个行当已经摸爬滚打了十多年,05年之前是搞上层应用开发的,那时候 Java 比较火,所

linux下配置DHCP服务实战

我们知道dhcp 就是动态ip 地址分配服务拉!在一个网络中,如果电脑不是很多的情况下,我们一般都是手动给每个电脑分配ip地址等一些网络的设定.如果一个网络中有上百台电脑,我们也要一台台跑去设定他们的ip 地址 ,那样我想人都会设置的头昏 还得上串下跳的到处跑.本人的公司是小公司 只有10几台电脑,我很懒所以用linux配置了dhcp动态分配ip地址的服务! 一般来说我们在安装linux时如果选了everything,那么你的dhcp也就有了.真好啊~!但是你想要它 能够正常工作起来 ,那还得你

windows系统中如何配置DHCP服务

一.DHCP概述 (1).了解DHCP服务 DHCP(Dynamic  Host Configuration  Protocol,动态主机配置协议),是由IETF(Internet 工作任务小组)设计开发的,专门用于为Tcp/IP网络中的计算机自动分配TCP/IP参数的协议 DHCP提供了安全.可靠且简单的TCP/IP网络设置,降低了配置IP地址的负担 (2).DHCP的好外 减少了管理员的工作量 避免输入错误的可能 避免IP冲突 当网络更改IP地址段时,不需要在重新配置每个用户的IP地址 提高