Linux 5.4 下dhcp服务器学习之服务器配置(1)

Linux 5.4 dhcp服务器学习之服务器配置(

想要学好DHCP服务器的内容,对于它的基本概念和配置内容我们都要清楚。那么这里我们先来简单了解一下DHCPDHCP基于客户/服务器模式。当DHCP客户端启动时,它会自动与DHCP服务器通信,由DHCP服务器为DHCP客户端提供自动分配IP地址的服务。当然高级的DHCP,不光只是分配地址这么简单,今天我们的课程只是架设一个普通的DHCP的服务器, client端能获取到上网必须的网络配置信息。安装了DHCP服务软件的服务器称为DHCP服务器,而启用了DHCP功能的客户机称为DHCP客户端,DHCP服务器是以地址租约的方式为DHCP客户端提供服务的,它有以下两种方式:限定租期永久租用。学DHCP服务器,就一定要知道DHCP服务器的工作原理:

DHCP DISCOVERDHCP发现)

DHCP OFFERDHCP提供)

DHCPREQUESTDHCP请求)

DHCPACKDHCP确认)

这个4个步骤,是client获取IP地址必经的步骤

DHCP提供的时候,服务器已经给client分配了IP地址,第二部分分给clientIP地址是临时的,client得到这个IP地址后,会发出DHCP请求,请求租用这个地址,服务器收到请求后,就会正式把这个地址分配给client,继而向client发送DHCP确认。这个四步主要是应对同一网络多个DHCP服务器。

后台进程:dhcpd

脚本:/etc/rc.d/init.d/dhcpd

使用端口:67

所需RPM包:dhcp

相关RPM包:

dhcp-devel-3.0.5-7.el5.i386.rpmdhcpv6-0.10-33.el5.i386.rpmdhcpv6_client-0.10-33.el5.i386.rpm配置文件:/etc/dhcpd.conf

日志:/var/log/xferlog

再提示一点吧,网络启动方式也叫bootpc,这样获取的IP地址是不会受服务器的租期限制的,它永远有效好了,我们先安装DHCP服务器

一、下载或从光盘上找到DHCP服务安装包。

二、安装(dhcp*代表其安装包名称):

# rpm -ivh dhcp* 三、配置DHCP文件:

复制/usr/share/doc/dhcp*/dhcpd.conf.sample /etc目录下,更名为:dhcpd.conf# cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf当然,也可以先vi /etc/dhcpd.conf,然后在末行模式运行以下命令:r /usr/share/doc/dhcp*/dhcpd.conf.sample这样这个dhcpd.conf.sample文件的内容就导进来了。打开dhcpd.conf,要修改的几个地方:subnet 后面接的是你所定义的网段,要与本机的IP地址同网段,每一语句以分号“;”结尾,不要忘记。例如:我的IP是“192.168.2.234”,

下面是我的配置文件:

ddns-update-style interim;

ignore client-updates;

subnet 192.168.2.0

netmask 255.255.255.0

{

option routers 192.168.2.1;

option subnet-mask 255.255.255.0;

option nis-domain"domain.org";

option domain-name "domain.org";

option domain-name-servers 192.168.2.1;

option time-offset -18000;

range dynamic-bootp 192.168.2.100 192.168.2.254

default-lease-time 21600;

max-lease-time 43200;

filename "/pxelinux.0";

next-server 192.168.2.11;

host ns {

next-server marvin.redhat.com;

hardware ethernet 12:34:56:78:AB:CD;

fixed-address 207.175.42.254;

}

}

四、详细注解:

ddns-update-style interim; #定义所支持的DNS动态更新类型(必选),一般我们设置成关闭,#interimnone都是关闭的意思

allow/ignore client-updates;#允许/忽略客户机更新DNS记录

allow/deny unknown-clients; #是否动态分配IP给未知的使用者

allow/deny bootp;#是否响应激活查询

allow/deny booting;#是否响应使用者查询

subnet 192.168.2.0 netmask 255.255.255.0 { #设置子网声明# --- default gatewayoption routers 192.168.2.1; #设置缺省网关为192.168.2.1

option subnet-mask 255.255.255.0; #设置客户端的子网掩码

option nis-domain "domain.org"; #为客户设置NIS

option domain-name "domain.org"; #为客户设置域名

option domain-name-servers 192.168.2.1; #为客户设置域名服务器

option time-offset -18000; # Eastern Standard Time #为客户端指定格林威治时间偏移时间,单位秒,# 该选项可以在全局配置、局部配置均可使用#

option ntp-servers 192.168.2.1; #NTP是时间服务器#

option netbios-name-servers 192.168.2.1;#设置wins服务器# --- Selects point-to-point node (default is hybrid). Don't change this unless# -- you understand Netbios very well# option netbios-node-type 2; #设置netbios节点类型我不清楚这个netbios节点是什么东西range dynamic-bootp 192.168.2.28 192.168.2.254; #设置动态的地址池

default-lease-time 21600; #设置缺省的地址租期

max-lease-time 43200; #设置客户端最长的地址租期#

we want the nameserver to appear at a fixed addressfilename "/pxelinux.0"; #开始启动文件的名称,应用于无盘安装,可以是tftp的相对或绝对路径

next-server 192.168.2.234; #This is the name of the server they should get it from#tftp服务器,可以和dhcp服务器不在同一机器上,一般是PXE网络使用此参数#设置主机声明host ns {next-server marvin.redhat.com; #设置由于定义服务器从引导文件中装入的主机名,用于无盘站hardware ethernet 12:34:56:78:AB:CD; #指定dhcp客户的mac地址fixed-address 207.175.42.254; #给指定的mac地址分配ip}}

五、配置好dhcpd.conf文件后就可以启动dhcp服务了:

# service dhcpd restart

这时可以用“netstat -nlutp”命令查看dhcp服务是否有启动。

六、其它相关文件:

1、这个文件/var/lib/dhcpd/dhcpd.leases,可以看到被租出去的IP地址和相关信息。

2、这个文件/etc/sysconfig/dhcpd是指定DHCP服务器监听的网卡,如果只有一个网卡,一般不用设置 DHCPDARGS=eth0 或者是eth1 ,如果全部监听就不用管。

3、这个文件/etc/sysconfig/dhcrelay就是设置DHCP中继的文件,大家打开看看吧。interfaces 就是来自这个端口的DHCP DISCOVER(请求)都会转发到后面的DHCPSERVERS服务器。设置了DHCP中继,需要启动中继服务:service dhcrelay start

七、在linux客户机下面,你可以手动配置你的dhcp

察看你的网络配置文件,如果你没有设置为自动启动联网,则要修改你的网络配置文件。

# vi /etc/sysconfig/network添加“NETWORKING=yes”(让引导的时候启动联网)或者使用

# @echo NETWORKING=yes> /etc/sysconfig/network然后再修改你的网卡配置文件/etc/sysconfig/network-scriptes/ifcfg-eth0

文件应该包含这几行:DEVICE=eth0 BOOTPROTO=dhcp ONBOOT=yes

了解这些原理后我们做一个实验来验证dhcp运行原理:

实验器材:虚拟机下linux 5.4 windows server2003

实验目的:客户端机器windowsserver 2003 能够从linux操作系统dhcp服务器获得ip

实验原理简图:

首先安装主机自动获取ip地址的dhcp服务:

首先挂载光盘,查看dhcp安装包:

subnet{作用域dhcp服务器的作用范围

包括地址池

选项{默认网关 dns指向 wins 域名......}

租约}

[root@blue Server]# rpm -ivh dhcp-3.0.5-21.el5.i386.rpm

查看dhcp服务安装的目录:

[root@blue Server]# rpm -ql dhcp

编辑/etc/dhcpd.conf文件:

首先我们先来认识下这个配置文件,当我们打开时会提示我们有那么一个dhcpd.conf.sample文件,我们直接读取过来进行修改就行了。

我们读取过来之后,我们分析一下:首先是前16行:subnet 作用域

{作用域dhcp服务器的作用范围

地址池

选项{默认网关 dns指向 wins 域名......}

租约}

等内容。

再者是后面的:内容如下:

分析过后我们配置我们自己的dhcp服务器:

我们先来检测一下有没有语法错误。

当出现错误时,它会提醒哪里出现错误,查看带有infoerror等警告符。

当然我们也可以查看日志:

[root@blue ~]# tail -n 30 -f /var/log/messages

语法错误之处有箭头标明。

启动dhcp服务:

[root@blue sysconfig]# service dhcpd start

Starting dhcpd:[OK]

由于语法没有错误,我们的dhcp成功启动了。

现在我们配置好了dhcp服务器,我们来找一台客户机测试一下,是否可以获取2.0网段的ip地址。

在日志里可以看到以下获取消息。

这里就包括了dhcp4个过程,DHCPDISCOVERDHCPOFFERDHCPREQUEST DHCPPACK 这四个过程,在日志里明晰的显示dhcp服务器工作的原理过程。

在客户机上我们可以看到ip获取的详细信息:

当我们在客户机上释放地址时,查看日志的变化。

可看到也有反馈的日志信息。

当再次renew启动获取地址是,又会从地址池中获取ip

我们用这条命令会获取客户机获取ip详细信息:

如果我们想要某些地址段不分配给客户机,那么我们应该这样做,分开来写:

例如:我们想排除该网段的100~150地址不分配。

在配置文件里应该这样来修改:

重启dhcp服务。

在客户机上查看mac地址绑定是否成功。

重新获取ip地址:

同样在dhcp服务器的日志上也可以看到客户机分配的消息明细。

如果机器达到500甚至更多,我们怎么达到地址的动态分配?

这时候我们就应该做超级作用域来实现。

再新建一个subnet 并放在shared-network {}内合成一个作用域。


同样重启dhcp服务。

再打开一台新的客户机测试,同样可以测出,这时我们应该吧2.0网段ip只设置一个,方便我们虚拟机里测试。

dhcp服务器日志上同样有明细的日志信息。

获得了一个3.0网段的地址,由于2.0网段的地址被另一台客户机获取了,于是就discover3.0网段作用域地址,dhcp服务器就自动分配给客户端一个。

这只是简单地dhcp服务器配置,下一篇将分析,在大网络、多机器中的dhcp中继的设置。

你可能感兴趣的:(服务器,工作原理,IP地址,客户机,linux5.4,dhcp服务器工作原理)