DHCP 概述

DHCP 概述

一、基本概念

Openstack在创建虚拟机的时候,会通过neutron的DHCP服务为虚拟机动态分配一个ip地址。Neutron提供DHCP功能的组件是运行在网络节点上的neutron-dhcp-agent服务。

  1. dnsmasq进程为网络提供dhcp功能
    在这里插入图片描述
    当创建network,并开启对应subnet的dhcp功能时,neutron会在网络节点上启动一个dnsmasq进程为该network提供DHCP服务。

dnsmasq重要命令参数解释

–interface: dnsmasq用来监听DHCP请求/响应的端口,从而提供DHCP服务。

–dhcp-hostsfile:存放DHCP host信息的文件,dnsmasq会从该文件中获取port和mac地址的对应关系。

–dhcp-leasefile: 租约文件,当我们成功运行dhcpd服务后,就可以分配ip地址给客户端,这些租用信息都可以通过查看租约文件/var/lib/dhcpd/dhcpd.leases来查看每个ip地址的租约记录。
在这里插入图片描述
每个租约声明都包含已租给客户端的单个ip地址。大括号内的语句定义了租约的期限及租约分配对象。

starts date;租约的开始时间

ends date;租约的结束时间

  1. Network namespace

Neutron通过namespace 为每个network提供独立的DHCP,从而允许租户创建重叠的网络。

DHCP对应的namespace以qdhcp-network_id命名,可以通过ip netns查看(网络节点上运行)

在这里插入图片描述
通过命令ip netns exec qdhcp-6f854b6c-231d-48c3-876d-0514718bbb58 ip a 可以看到在该网络的namespace中,为tap22c9cf6e-cb设备配置了ip地址。
在这里插入图片描述
而tap22c9cf6e-cb设备是连接在br-int上的一个port,dnsmasq就是通过监听该端口来为对应网络提供dhcp服务。
在这里插入图片描述
3. DHCP获取IP过程分析

创建虚拟机vm1时,Neutron会为其分配一个port,并同步mac和ip地址信息到dnsmasq的host文件中,如图:

cat /var/lib/neutron/dhcp/6f854b6c-231d-48c3-876d-0514718bbb58/host
在这里插入图片描述
同时,nova-compute会生成instance的xml文件,其中网络部分如下:

virsh edit instance-00000001

在这里插入图片描述
虚拟机第一次启动时:

  • 虚拟机vm1启动时,会发出dhcpdiscover广播报文,该报文会在整个network(vlan)中被收
  • dhcpdiscover广播报文会到达tap2c6747c1-2a,dnsmasq监听在它上面,dnsmasq检查对应网络的host文件,发现有对应选项,于是dnsmasq以dhcpoffer报文将ip(192.168.1.10),netmask(24)等信息发送给虚拟机vm1
  • 虚拟机vm1发送dhcprequest广播消息,确认接受dhcpoffer消息。
  • dnsmasq对虚拟机vm1的dhcprequest报文发送dhcpack消息进行确认,虚拟机vm1收到dhcpack消息之后,开始使用对应ip,整个过程结束。
  1. 具体源码参考https://blog.csdn.net/gyunling/article/details/88829156

二、DHCP原理

  1. DHCP基本概念
    DHCP Dynamic Host Configure Protocol,动态主机配置协议
    从BOOTP协议发展过来
    UDP封装,服务器端口67,客户端端口68
    动态分配TCP/IP信息(IP地址,子网掩码,默认网关,DNS服务器等)
    分配出去的信息识有租约的
    在这里插入图片描述
  2. DHCP系统组成
    在这里插入图片描述
    DHCP Client:通过DHCP协议请求获取IP地址等网络参数的设备
    DHCP Server:能提供DHCP功能的服务器或网络设备
    DHCP Relay:负责DHCP服务器和DHCP客户端之间的DHCP报文,协助DHCP服务器向DHCP客户端动态分配网络参数的设备
  3. DHCP报文类型
    在这里插入图片描述

三、DHCP IPV6讲解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值