DHCP服务器搭建-----------理论部分
1.什么是dncp?
动态主机配置协议(DynamicHostConfigurationProtocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段
2.dhcp的工作原理
假设多部计算机在同一个网域当中,也就是说,DHCPServer与他的Clients都在同一个网段之内,可以透过软件广播的方式来达到相互沟通的状态。那么Client藉由DHCPServer得到IP的程序为:
l①若Client端计算机设定使用DHCP协议以取得网络参数时,则Client端计算机在开机的时候,或者是重新启动网络卡的时候,会自动的发出DHCPClient的需求给网域内的每部计算机:这个时候,由于发出的讯息希望每部计算机都可以接受,所以该讯息除了网络卡的硬件地址(MAC)无法改变外,需要将该讯息的来源软件地址设定为0.0.0.0,而目的地址则为255.255.255.255(Linux会自动设定,无须考虑这个问题!)。网域内的其它没有提供DHCP服务的计算机,收到这个封包之后会自动的将该封包丢弃而不回应;()
l②DHCP主机响应讯息:如果是DHCP主机收到这个Client的DHCP需求时,那么DHCP主机首先会针对该次需求的讯息所携带的MAC与DHCP主机本身的设定值去比对,如果DHCP主机的设定有针对该MAC做静态IP(每次都给予一个固定的IP)的提供时,则提供Client端相关的固定IP与相关的网络参数;而如果该讯息的MAC并不在DHCP主机的设定之内时,则DHCP主机会选取目前网域内没有使用的IP(这个IP与设定值有关)来发放给client端使用!此外,需要特别留意的是,在DHCP主机发放给Client端的讯息当中,会附带一个『租约期限』的讯息,以告诉Client端,IP可以使用的期限有多长!
3、关于租约的行为:
观察上面DHCP运作模式的第二个步骤,会发现最后面还有一个租约期限!最大的优点就是可以避免该IP被某些使用者一直占用着,但该使用者却是Idle(闲置/空闲)的状态!
关于DHCP主机个数:
当网域里面有两部以上的DHCP主机时,到底哪一部主机会设定我的这部Client端计算机?很多时候是『先抢先赢』,同样,DHCP的回应也是如此!当Server1先响应时,使用的就是Server1所提供的网络参数内容,如果是Server2先响应,就是使用Server2的参数来设定PC!不过,前提之下当然是这些计算机的『物理联机』都是在一起的。
4、dhcp服务器给予客户端固定或动态ip参数
在上面的介绍中,我门说过服务器回去比较客户端的MAC硬件地址,并去判断该MAC是否需要给予一个固定的IP,我们可以设定的DHCP服务器给予客户端的IP参数主要有两种
l固定ip:只要客户端的计算机的网卡不换掉,那么MAC肯定就不会改变,由于DHCP可以根据MAC给予ip参数租约,所以说计算机每次都能一个固定ip连上internet,这种情况比较适合于一些要固定ip服务器的主机上(当然还有校园网也是这个机制的,就比如说我的校园网ip就只能在我的电脑上连上网,因为他就是和我的MAC绑定在一起的,我同学的电脑就无法连上)
关于dhcp的租约就好比学校让我的付了3个月的网费,学校就会给我3个月的时间,过了时间,就会显示ip已经过期。
l动态ip:这个比较好理解的,默认连上DHCP服务器,都会取得一动态不确定的ip,都是有dhcp服务器从未被使用ip地址池中随即获得的
DNCP服务器搭建-------------部署部分
1.所需要的软件和文件结构
lyuminstalldhcp–y
lrpm–qldhcp(查看dncp文件的安装情况)
ldhcp的主配文件在/etc/dhcp/dhcpd.conf(其实在刚完成安装的时候,dhcpd.conf中的文件时空白的,需要复制过来一份示例文件,文件名为dhcpd.conf.sample这个文件复制过来dhcpd.conf中,这个文件放在它原本rpm安装的原文件中,我的就放在/use/share/doc/dhcp-3.0.14/这个文件中)
l/use/sbin/dhcpd就是dhcp的启动脚本
l建立dhcp租约的文件则是放在/var/lib/dhcp/dhcpd.leases就是设定ip的起始与到期日
2.主要配置文件/etc/dhcp/dhcpd.conf
vim/etc/dhcp/dhcpd.conf
optiondomain-name"example.com";给予一个域名
optiondomain-name-servers192.168.0.16;ip
default-lease-time600;-------------------租约使用最小600h
max-lease-time7200;-------------------租约最大7200h
ddns-update-stylenone;<-----------不更新ddns
log-facilitylocal7;
subnet192.168.0.0netmask255.255.255.0{网段192.168.0.0网络掩码255.255.255.0
range192.168.0.100192.168.0.200;ip地址范围100——200
optionrouters192.168.0.254;路由地址
}
固定ip
1.hostwin7{
hardware08:07:27:11:EB:C4------------------------------mac地址
fixed-address192.168.0.254-------------------------ip地址
}
3.启动DHCP服务器与日志观察
1./etc/init.d/dhcpd.conf
2.-chkconfigdhcpdon------开机自启动
3.netstat–anptle|grepdhcp-------------------查看是否有67端口
查看日志用tail–f/var/log/messages可以看到dhcp的运行状态
4.DHCP的客户端配置
-vim/etc/sysconfig/network-script/ifcfg-eth0
BOOTPROTO=dhcp
还要配置一个文件/etc/resolv.conf的nameserver=192.168.0.254(默认路由设置)
最后查看配置情况
-cat/var/lib/dhclient/dhclient*
这里记录着主机配置dhcp的情况和dhcpd.conf的设置一致
5.编写一个脚本让大量PC可以有固定ip
-#/bin/bash
-read–p“DOYOUFINISHTHEIP’SSETTINGINEVERYCLIENT(Y/N)”yn
-read–p“howmanyPCinthisclass”num
-if(“$yn”=”y”);
-than
-forsitein$(seq1$(num))
-do
-siteip=”192.168.0.$(site)”
-allip=”allip$siteip”
-ping–c1–w1$siteip>/dev/null2>&1
-if[“$?”==”0”];
-than
-okip=”$okip$siteip”
-else
-errorip=”$errorip$siteip”
-echo“ipisdown”
-fi
-done
-forsitein$allip
-do
-pcname=pc$(echo$site|cut–d“.”–f4)-------显示主机ip
-mac=$(acp–n|grep“$site”|awk‘{print$3}’)
-echo=”host$pcname{”
-echo=”hardware=Ethernet${mac};”
-echo=”fixed-address${site};”
-echo=”}”
-echo=”host$pcname{”>>dhcpd.conf
-echo=”hardware=Ethernet${mac};”>>dhcpd.conf
-echo=”fixed-address${site};”>>dhcpd.conf
-echo=”}”>>dhcpd.conf
-echo=”finish”
最后把dhcpd.conf中的内容同步到/etc/dhcp/dhcpd.conf中去
转载于:https://blog.51cto.com/joe51cto/1324080