菜鸟学习Linux服务器——DHCP篇
文章作者:Devil、EvilAngelDHCP服务器是利用DHCP(Dynamic Host Configuration Protocol)协议工作的,DHCP协议也是基于TCP/IP协议的。他是利用广播(IP地址:255.255.255.255)来为同网段提供服务的,他能够动态配置工作站的网络接口,使工作站的网络接口管理自动化。
我们这次的实验环境与之前有所不同,之前的无论是Samba、DNS我都使用的是Fedora Code 1操作系统,而我们这次是使用的是Fedora Code 5来为大家演示。无论你使用的是那个版本,或者是RedHat Linux都是大同小异的。之前有的读者联系到我,问我“为什么在写文章的时候,不用图型坏境来演示呢!”因为在公司内供我实验的Linux服务器都是没有图型环境的,其二,一台服务器大多是不允许有图型环境的,这也是最重要的一点,也这是本人写此系列文章的出发点,使读者朋友们习惯使用字符输入式操作。
DHCP运行方式
DHCP客户机在第一次启动时,要与DHCP服务器通信,来获取本地的IP地址及相关的网络配置,我就以这种通信方式简单的描述一下通信过程:
1、 DHCP客户机以广播方式在网络中发出DHCPDISCOVER信息,查找DHCP服务器。
小知识:DHCPDISCOVER是DHCP探测,目的是在网络中寻找DHCP服务器。
2、 在网络中的DHCP服务器收到DHCPDISCOVER信息之后,他会查看地址池在其中选取一个没有租出的IP地址作为DHCPOFFER信息,以广播方式发送给网络中的客户机。因为服务器及客户机都不知道对方的IP地址,所以要用广播方式。
3、 DHCP客户机收到DHCPOFFER信息之后,再以广播方式向网络的DHCP服务器发送DHCPREQUEST信息,请求分配IP地址。
4、 DHCP服务器收到DHCP客户机的DHCPREQUEST信息之后,以广播方式向客户机发送DHCPACK(DHCP确认)信息。信息除了IP地址外,DHCP信息还包括TCP/IP的配置信息。
可能有的读者会问,在网络中为什么会有DHCP服务器呢?这些信息手工配置上去不就成了,为什么要麻烦到配置个服务器呢!其实当某个网络太庞大,管理人员要维护这些主机的网络信息已经非常不容易了, 利用DHCP服务器,使客户机在启动时自动的获得网络身份,从而减轻网络管理工作的负担。
获得DHCP软件
DHCP软件是由ISC([url]www.isc.org[/url])组织开发与维护的,ISC是一个非常权威的组织,如果你看了黑客手册第七期《菜鸟学习Linux服务器——DNS篇》一文,你就已经用过了ISC组织开发的软件了,你可以在ISC官方首页上免费获得DHCP软件。这里我们还是使用wget命令在ISC官方网站上来下载DHCP最新版本dhcp-3.0.4,如图1,这个版本是最新的一个版本,这也是本人第一次使用的版本。
[align=center][attach]1054[/attach]
图1 下载DHCP软件[/align]
安装DHCP服务器
安装方法和其它软件一样,我就不解释太多了,还是“三步曲”。
#./configure
#make
#make install
安装完成后的服务器是没有配置文件的,软件包安装时为我们提供一个示范配置文件dhcpd.conf.sample,一般将文件名改为dhcpd.conf保存在/etc目录下即可。但是我看了一下,这个文件个人认为是写的比较乱的。在这里,体验一下配置DHCP服务器的乐趣,我们手工的建立一个手工写一个DHCP配置文件(/ect/dhcpd.conf)内容如下:
ddns-update-style none;
DHCP全局必需指定此项ddns-update-style,我们就简单一点,指定为none,如果不写此行DHCP服务是启动不了的;
subnet 10.0.0.0 netmask 255.255.255.0 {
#DHCP服务器,为那个网段服务的,这里给出的是网络号与掩码;
option routers 10.0.0.1;
#默认网关IP地址,这是客户机请求网络信息所使用的网关地址如果是多个可以用逗号分开;
option subnet-mask 255.255.255.0;
option domain-name "safecn.net";
#网络使用的域名,如果你是samba作域控制器,这项非常重要;
option domain-name-servers 10.0.0.25;
#域名服务器的IP地址;
range 10.0.0.30 10.0.0.40;
#地址池,是为客户机分配的地址范围,当然,这个也不能和其它固定地址冲突,如果多个地址段,可以用多条语句;
default-lease-time 43200;
max-lease-time 86400;
#租约到期时间,与最大租约到期时间,这里是以秒为单位的;
host dns {
hardware ethernet 00:0C:29:CC:AC:BC;
fixed-address 10.0.0.25;
}
#当硬件地址为“00:0C:29:CC:AC:BC”的请求分配地址的时候,将10.0.0.25的IP地址分配给他,定义了一个固定IP地址,如果多个固定地址可以用多个字段表示;
}
其实DCHP服务器的配置文件写DNS的配置文件很相似,左大括号前要有空格,而每条语句后要有分号结尾。图2是我自己手写的一个简单的DHCP服务器的配置文件,可以大家也可以用他直接修改成适合大家的配置文件。
[align=center][attach]1055[/attach]
图2 DHCP服务器配置文件实例[/align]
有了配置文件,DHCP服务器还是不能启动,还须要一个dhcpd.leases文件,他的路径是/var/state/dhcp/dhcpd.leases,我就直接就echo > /var/state/dhcp/dhcpd.leases新建一个空文件,这个文件有没有内容是无所谓的,我将稍后解释这个文件的作用。像这种配置步骤大家没有必要清楚记住他,比如目录及文件名,如果忘记了,当启动服务器的时候,系统会提示你服务器还需要什么工作没做,或者可以查看日志来确定下步应该怎么做。
测试DHCP服务器
前面已经说过DHCP服务器是基于广播为客户机分配IP地址及其它网络身份的,他使用的IP地址为255.255.255.255,也就是说,三层设备(包括三层交换机、路由器等三层以上设备)会隔离这个地址发的数据包,无法为其它网段服务的。
当我们完成以上工作后,就可以运行“dhcpd”来启动服务器了,如果出现图3的返回信息说明服务器启动成功了!
[align=center][attach]1056[/attach]
图3 启动DHCP服务器[/align]
在测试DHCP服务器时,必须客户机的配合工作,须要让客户机自动获得IP地址。在终端输入setup命令,选择 Network configuration,出现如图4的界面,勾选使用动态IP配置,如果你没改变语言环境这项就应该是
Use dynamic IP configuration (BOOTP/DHCP),表示用DHCP动态分配IP地址。如果你用的是RedHat Linux系统可以直接运行redhat-config-network出现图5的配置画面来配置网络。
[align=center][attach]1057[/attach]
图4 Fedora Code 5类图形界面配置网络
[attach]1058[/attach]
图5 RedHat Linux类图形界面配置网络[/align]
当然也可以更改网卡配置文件,一般网卡配置文件的路径为, /etc/sysconfig/network-scripts/ifcfg-eth0,将以下内容替换原始内容即可,请注意Linux大小写是敏感的。
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
为了以上的操作生效,须要在客户机上运行“service network restart”命令,重新启动网络才能生效,或运行“dhclient eth0”命令重新加载网卡的配置文件,如图6。注意:如果你和我一样是以远程登录方式管理服务器的,那么“dhclient eth0”命令返回的信息你是看不到的,因为运行命令时你的网络会断掉,因为你的IP地址改变了。我是为了大家可以看到返回信息我是第二次运行所抓的图,当我们的租约未满并且没有其它主机抢IP地址时dhclient eth0是不会使IP地址改变的。我们在图6中可以清楚的看到,DHCP服务器的IP地址为10.0.0.10而分配给我们的IP地址为10.0.0.40,可以看出来,这里是我们的配置文件的地址池中最后一个IP地址。
[align=center][attach]1059[/attach]
图6 更新Linux客户机的网络配置[/align]
我们刚刚说了,在远程登录的服务器,作DHCP的客户机时,IP地址会变,连接也会断掉(有点废话了),那我们如何知道客户机当前的IP地址呢?当然如果客户机距离你很近,而且又有显视器那就方便多了。如果不是很方便从客户机来查看客户机在你服务器上获得什么IP地址,这时你可以查看系统日志。“tail /var/log/messages”如图7,或者查看DHCP日志(/var/state/dhcp/dhcpd.leases)。如图8。我们在图7中清楚的看到DHCP客户机和服务器的交换信息过程,而在图8中可以看到DHCP客户机在服务器租用IP地址及其它网络信息。
[align=center][attach]1060[/attach]
图7 查看DHCP分配地址过程
[attach]1061[/attach]
图8 查看DHCP日志[/align]
至于Windows的客户机的配置我就不多说了,在Internet协议(TCP/IP)属性里选择自动获得IP地址就可以了,而且不用手工重新启动网络利用ipconfig /all可以看到非常详细的配置信息,如图9
[align=center][attach]1062[/attach]
图9 Windows客户机利用DHCP获得配置信息[/align]
接下来就是收尾工作了,让DHCP服务器开机自动运行可以把他加载到rc.local文件内echo "/usr/sbin/dhcpd" >>/etc/rc.local,注意命令中是“<<”追加,否则文件就被覆盖掉啦。DHCP服务器的基础应用还是比较简单的,他不像sendmail服务器那么烦琐不易理解,但是有很多人会有些误区。不要去死记那么多选项及那些安装步骤,实验的时候多看看日志,多看看man帮助,那么,简单的应用就能搞定。
页:
[1]