配置 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-10-07 05:50:07

配置 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

配置 L2 Population - 每天5分钟玩转 OpenStack(114)

前面我们学习了L2 Population 的原理,今天讨论如何在 Neutron 中配置和启用此特性. 目前 L2 Population 支持 VXLAN with Linux bridge 和 VXLAN/GRE with OVS. 可以通过以下配置启用 L2 Population. 在 /etc/neutron/plugins/ml2/ml2_conf.ini 设置 l2population mechanism driver. mechanism_drivers = linuxbridge,

配置 L3 agent - 每天5分钟玩转 OpenStack(99)

上一节我们介绍了路由服务(Routing)的基本功能,今天教大家如何配置. Neutron 的路由服务是由 l3 agent 提供的. 除此之外,l3 agent 通过 iptables 提供 firewall 和 floating ip 服务. l3 agent 需要正确配置才能工作,配置文件为 /etc/neutron/l3_agent.ini,位于控制节点或网络节点上. interface_driver 是最重要的选项,如果 mechanism driver 是 linux bridge,

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

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

如何安装和配置 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

路由器配置DHCP服务

路由器配置DHCP服务,布布扣,bubuko.com

CentOS 7 配置DHCP服务

DHCP就不详细介绍了,DHCP的功能,可以用路由器或者交换机(若支持)等配置,也可以通过搭建服务器(Linux和windows)来实现其功能,现在就来说说CentOS 7版本配置DHCP服务的步骤报错分析. DHCP服务需要提供的几项参数 1).IP地址和子网掩码: 2).默认网关: 3).租约时间(如果时间到期需续约,如果客户端不续约,服务器将会回收分配的该IP地址): 4).DNS服务器地址(有内部DNS服务器和运营商的DNS服务器,可根据组网来配置). 搞明白DHCP服务提供的几项参数时

ubuntu16.04上安装配置DHCP服务的详细过程

DHCP服务器是为客户端机器分配IP地址的,所有分配的IP地址都保存在DHCP服务器的数据库中.为了在子网中实现DHCP分配IP地址,需要在目标主机上安装配置DHCP服务. 安装DHCP服务 安装isc-dhcp-server: $ sudo apt install isc-dhcp-server 配置DHCP服务 首先需要知道目标主机的网卡名称: $ ifconfig 得到以下信息: eno1 Link encap:Ethernet HWaddr e8:39:35:46:10:f5 UP BR

Kali Linux常用服务配置教程安装及配置DHCP服务

Kali Linux常用服务配置教程安装及配置DHCP服务 在Kali Linux中,默认没有安装DHCP服务.下面将介绍安装并配置DHCP服务的方法. 1.安装DHCP服务 在Kali Linux中,用来提供DHCP服务的安装包名为isc-dhcp-server.所以,执行命令如下所示: [email protected]:~# apt-get install isc-dhcp-server –y 执行以上命令后,将开始安装DHCP服务.如果安装过程中没有报错的话,则该服务将被成功安装到系统中