Learning Openstack Part12 Neutro

2017-07-11  本文已影响165人  drfung

neutron提供DHCP服务的组件是DHCP agent。DHCP agent在网络节点上运行,默认通过dnsmasq实现dhcp功能。

dnsmasq.png

what?

dhcp服务的配置文件是/etc/neutron/dhcp_agent.ini,如下图所示:

dhcp_agent.png

Example of interface_driver option for OVS based plugins(OVS, Ryu, NEC, NVP,
nterface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
Example of interface_driver option for LinuxBridge
interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver

当创建network并且在subnet上enable DHCP服务时,网络节点上的DHCP agent会启动一个dnsmasq进程为该network提供DHCP服务。
dnsmasq和network是一对一的关系,一个dnsmasq进程可以为同一个network中所有的enable dhcp的subnet提供服务。

dnsmasq.png
如上图所示,DHCP agent启动时会为每个network创建一个目录放在/var/lib/neutron/dhcp/目录下用以存放相关配置文件。服务启动时会指定启动参数,我们来讨论下其中比较重要的几个启动参数。

why?

我们来讨论一下为什么要使用namespace,首先来了解一下namespace的概念。

Linux Network Namespace 简介

在二层网络上,VLAN可以将一个物理交换机分割成几个独立的虚拟交换机。同样在三层网络上,linux network namespace可以将一个物理三层网络分割成几个独立的虚拟三层网络。
每个namespace都有自己独立的网络栈,包括route table,firewall rule, network interface device等。

为什么使用Linux Network Namespace

namspace-named.png

使用namespace带来的问题:
对于fla-net的dhcp tap设备,需要将其放到namespace中,但是这样tap设备将无法直接和root namespace中的bridge设备通讯。
neutron 使用veth pair来解决这个问题:

veth-pair.png

tap19a0ed3d-fe 与 ns-19a0ed3d-fe 就是一对 veth pair,它们将 qdhcp-f153b42f-c3a1-4b6c-8865-c09b5b2aa274 连接到 brqf153b42f-c3。

ip netns exec.png
上一篇 下一篇

猜你喜欢

热点阅读