当前位置:首页 » 编程软件 » linuxdhcp编译

linuxdhcp编译

发布时间: 2025-07-21 01:23:16

linuxDHCP协议实现过程

我特别喜欢Linux启动的时候屏幕上一行一行的提示。它把系统正在干的所有事情都告诉了我们,不像Windows,自检完了就给个进度条,背后干啥都不让我们知道。

DHCP协议部分实现过程如下

①:DHCP 服务器被动打开 UDP 端口 67,等待客户端发来的报文。

②:DHCP 客户从 UDP 端口 68发送 DHCP 发现报文。

③:凡收到 DHCP 发现报文的 DHCP 服务器都发出 DHCP 提供报文,因此 DHCP 客户可能收到多个 DHCP 提供报文。

④:DHCP 客户从几个 DHCP 服务器中选择其中的一个,并向所选择的 DHCP 服务器发送 DHCP 请求报文。

⑤:被选择的 DHCP 服务器发送确认报文DHCPACK,进入已绑定状态,并可开始使用得到的临时 IP 地址了。

书面上的文字怎么说我们都会觉得有点晦涩,虽然这个解释其实已经非常明了了。

不过前几天启动linux的时候,我注意到了这个小细节,linux启动过程中把这个步骤一步一步在屏幕上输出,我觉得能让我们看的更直观,就截了个图,呵呵。

如下图:

这个图里面,我上面说的从第2步到第5步都非常明了(第一步是服务端的,我们看不到),端口,MAC,状态这些都清楚的标明了。

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4 //第2步,发送DHCP发现报文

DHCPOFFER from 192.68.116.254 //第3步,收到DHCP提供报文

DHCPREQUEST on eth0 to 255.255.255.255 port 67 //第4步,发送DHCP请求报文

DHCPACK from 192.168.116.254 //第5步,收到DHCP确认报文DHCPACK

bound to 192.168.116.128 -- renewal in 826 seconds //已绑定,826秒应该是0.5T,也就是IP租用期的一半,到时间就再次发送请求更新租用期

done.

Linux真是个好东西。

② 如何在Debian Linux上安装配置ISC DHCP服务器

工具/原料

一台Linux主机或虚拟机(这里CentOS 6.5为例)
编译源码或软件源方式安装dhcp软件
方法/步骤

首先我们先了解下 DHCP,DHCP采用客户端/服务器的工作模式,由客户端向服务器发出获取IP地址的请求,服务器接收到请求后会把网络配置信息发送给客户端,实现IP地址的动态分配。DHCP提供三种地址分配策略:
1:手工分配 在服务器上指定为哪些主机分配固定的IP,也就是说这些主机永远获取的都是给它们设置好的IP。
2:自动分配 地址分配给客户机后,这个地址就永远给了客户机。这样客户机不在线也不会回收IP,会造成浪费,不同于手工分配。
3:动态分配 也是用的最多的策略了,它将IP地址分配出去后会有个租约,等租约时间到了,就会回收IP,如果主机还在线,在租约时间快到时,会向DHCP服务器发送续约请求,以便继续使用。
以上手工分配适合于打印机、其他提供web服务、ftp服务的主机等,因为它们需要一个固定的IP地址。动态分配能有效解决IP地址不够用的问题,租约到期后被回收的IP地址会重新给新请求的客户端使用。
DHCP的安装可以通过从软件源直接安装或自己编译安装。编译安装的话下载地址在:https://www.isc.org/downloads/
这里选择编译安装DHCP,下图为DHCP源码包的官方下载页面,我们选择最新版dhcp-4.3.1.tar.gz

首先我们先解压源码包
# tar xf dhcp-4.3.1.tar.gz
指定安装目录和配置文件目录
# cd dhcp-4.3.1
# ./configure --prefix=/usr/local/dhcp --sysconfdir=/etc
配置过程非常快,等配置完了可以echo $?确定下是否成功
接着就可以编译安装了,请耐心等待编译完成
# make && make install
如果采用软件源安装的话直接 " yum install dhcp "即可,不过版本会比较旧

接着将配置文件复制过去,在安装目录的 server 目录中
# cp server/dhcpd.conf.example /etc/dhcpd.conf
生产地址池文件,用于记录已经分配出去的IP地址
# touch /var/db/dhcpd.leases
接着修改配置文件,在最后添加提供服务的网段
subnet 10.0.0.0 netmask 255.0.0.0
{
range 10.0.0.50 10.0.0.100;
}
我这里为10.0.0.0网段提供服务,range定义了地址池,记得修改成适合你们的,然后就可以试着启动服务了。
# /usr/local/dhcp/sbin/dhcpd
如果是以软件源方式安装的dhcp软件,直接 service dhcpd start
我们可以用" killall dhcpd "来结束服务

服务启动后可以用 " ps aux | grep dhcpd "查看下启动的进程,DHCP服务监听 udp 67 端口,客户端以广播的方式请求IP地址,整个局域网内,没开启DHCP服务的主机就忽视掉了请求,DHCP服务器就会响应这个请求,如果同时有多个DHCP服务器在工作肯定看哪个响应的快喽!
接下来再启动台主机试试效果把,我又启动了一台XP,让其自动获取IP地址,看 是不是获取了地址池中第一个IP "10.0.0.50"呢

接下来看下dhcpd的配置文件 " /etc/dhcpd.conf "
dhcpd.conf中由声明、注释、参数、选项四大类语句构成
注释就是"#"开头的注释信息。声明定义网络布局,刚才的subnet就属于声明。参数是定义dhcpd服务的各种网络参数,如租约的时间、主机名等。选项是以option作为开始,为客户机指定主机名、广播地址、子网掩码等
声明:
include "filename" 将指定的文件内容添加到配置文件中
shared-network 名称 {
【参数】
【声明】
} 指定共享相同网络的子网
subnet 网段 netmask 子网掩码 {
【参数】
【声明】
} 定义哪些IP分配给客户,一般与range结合使用
range 起始地址 终止地址; 定义IP范围,终止地址可以没有
host 主机名 {
【参数】
【声明】
} 定义保留地址
group {
【参数】
【声明】
} 为一组参数提供声明
参数:
ddns-hostname 名称 指定使用的主机名,不设置默认当前主机名
ddns-domainname 名称 指定域名
ddns-update-style 参数 指定DNS的更新模式 { ad-hoc | interim | none }
default-lease-time 时间 默认租约时间(单位秒)
max-lease-time 时间 最大租约时间
server-name 名称 告诉客户端服务器的名称
hardware 接口类型 硬件地址 指定客户机硬件接口类型和mac地址
fixed-address IP地址 【,IP地址】 为客户端提供一个或多个IP地址,该参数只能出现在host声明中
选项: 前面需加option
broadcast-address 广播地址 指定客户端广播地址
domain-name 域名 指定客户端域名
domain-name-servers 地址 指定客户端的DNS服务器
host-name 主机名 指定客户端主机名
ntp-server 地址 指定时间服务器地址
routers 地址 指定默认网关IP
subnet-mask 子网掩码 指定客户端子网掩码
比如我们为10.0.0.0网段提供服务,DNS服务器为8.8.8.8,网关为10.0.0.254,子网掩码为255.0.0.0,默认租约时间6小时.
subnet 10.0.0.0 netmask 255.0.0.0
{
range 10.0.0.50 10.0.0.100;
option subnet-mask 255.0.0.0;
option routers 10.0.0.254;
option domain-name-servers 8.8.8.8;
default-lease-time 21600;
}
看看是不是网关和DNS也被自动获取了呢。注意都要以分号结束哦

现在再试试为其配置指定的IP地址,我们先把要指定主机的网卡mac地址记下来,然后给他配置10.10.10.10这个IP
subnet 10.0.0.0 netmask 255.0.0.0
{
range 10.0.0.50 10.0.0.100;
option subnet-mask 255.0.0.0;
option routers 10.0.0.254;
option domain-name-servers 8.8.8.8;
server-name mydhcp;
default-lease-time 21600;
host winXP {
hardware ethernet 00:0C:29:6E:4B:A1;
fixed-address 10.10.10.10;
}
}
这回使用了 ipconfig -all 显示的更详细了,这里连服务器的地址也列出来了,也可以使用这个参数查看网卡的mac地址

11
演示用的是Windows主机,如果是Linux主机需要修改网卡的配置文件,设置"BOOTPROTO=dhcp",然后可以通过 dhclient eth0 来给eth0这块网卡获取IP地址。

③ 谁知道linux中如何配置DHCP

  1. 准备好PE维护U盘、映像总裁软件(网络中可搜索下载)。首先使用安装命令进行安装DHCP服务器包dhcp3-server,安装完成后,编辑/etc/default/isc-dhcp-server使用INTERFACES选项定义DHCPD响应DHCP请求所使用的接口。

④ linux下如何启动dhcp服务

在Linux系统中,要启动DHCP服务,首先需要通过yum安装DHCP服务软件。安装命令如下:

yum -y install dhcp

安装完成后,可以通过运行以下命令启动DHCP服务:

service dhcp start

启动DHCP服务后,DHCP服务器将开始为网络中的设备分配IP地址。它能够自动检测网络中的客户端,并根据配置文件为它们分配合适的IP地址、子网掩码、默认网关以及其他相关信息。DHCP服务的配置文件通常位于/etc/dhcp/dhcpd.conf,管理员可以编辑此文件以配置DHCP服务器的行为和设置。

除了启动DHCP服务,还可以设置它在系统启动时自动运行。为此,可以使用以下命令:

chkconfig dhcp on

这样,每当系统启动时,DHCP服务都会自动启动,确保网络中的设备能够快速获得IP地址,无需人工干预。

需要注意的是,启动DHCP服务前,应确保网络接口已正确配置并处于活动状态。可以使用ifconfig或ip命令检查网络接口的状态。如果网络接口未启用,需要使用ifup或ip link set命令启动它。

启动DHCP服务后,可以通过检查服务状态来确认其是否运行正常。使用以下命令可以查看DHCP服务的状态:

service dhcp status

如果服务运行正常,将显示服务正在运行的信息。如果服务未运行,可以尝试重启服务或检查配置文件以解决问题。

总之,通过安装和启动DHCP服务,可以为Linux网络环境中的设备提供自动化的IP地址分配,简化网络配置和管理过程。

⑤ linux怎么进入配置dhcp

转载:

一、修改dhcp服务器ip地址:

注:/var/lib/dhcpd/dhcpd.leases 中记录着DHCP服务器向DHCP客户机提供租用的每个IP地址的信息。

热点内容
xlsx表格保护密码忘记如何处理 发布:2025-07-21 06:33:57 浏览:657
儿童密码日记本的通用密码是什么 发布:2025-07-21 06:28:31 浏览:233
移动默认pppoe密码是什么 发布:2025-07-21 06:28:28 浏览:710
工资表数据库 发布:2025-07-21 06:22:54 浏览:693
c语言青蛙过河 发布:2025-07-21 06:22:47 浏览:785
安卓数据转换器实体店在哪里 发布:2025-07-21 06:12:53 浏览:571
网站后台上传不了图片 发布:2025-07-21 06:12:22 浏览:875
创建简单的存储过程 发布:2025-07-21 06:07:27 浏览:216
登录小度账号密码是哪里的密码 发布:2025-07-21 06:00:58 浏览:44
天龙八部缓存 发布:2025-07-21 05:59:39 浏览:275