您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > linux下dhcp服务器配置(很全)
Linux下配置完整安全的DHCP服务器详解(1)一、建立DHCP服务器配置文件二、建立客户租约文件三、启动和检查DHCP服务器四、配置DHCP客户端五、DHCP配置常见错误排除六、DHCP服务器的安全DHCP是动态主机配置协议.这个协议用于向计算机自动提供IP地址,子网掩码和路由信息。网络管理员通常会分配某个范围的IP地址来分发给局域网上的客户机。当设备接入这个局域网时,它们会向DHCP服务器请求一个IP地址。然后DHCP服务器为每个请求的设备分配一个地址,直到分配完该范围内的所有IP地址为止。已经分配的IP地址必须定时地延长借用期。这个延期的过程称作leasing,确保了当客户机设备在正常地释放IP地址之前突然从网络断开时被分配的地址可以归还给服务器。本文以RedhatLinux9.0为例,介绍如何建立一个完整和安全的DHCP服务器。一、建立DHCP服务器配置文件可以使用RedhatLinux9.0自身携带rpm包安装。安装结束后,DHCP端口监督程序dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件。/etc/dhcpd.conf通常包括三部分:parameters、declarations、option。1.DHCP配置文件中的parameters(参数):表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。主要内容见表1参数解释ddns-update-style配置DHCP-DNS互动更新模式。default-lease-time指定确省租赁时间的长度,单位是秒。max-lease-time指定最大租赁时间长度,单位是秒。hardware指定网卡接口类型和MAC地址。server-name通知DHCP客户服务器名称。get-lease-hostnamesflag检查客户端使用的IP地址。fixed-addressip分配给客户端一个固定的地址。authritative拒绝不正确的IP地址的要求。2.DHCP配置文件中的declarations(声明):用来描述网络布局、提供客户的IP地址等。主要内容见表2:声明解释shared-network用来告知是否一些子网络分享相同网络。subnet描述一个IP地址是否属于该子网。range起始IP终止IP提供动态分配IP的范围。host主机名称参考特别的主机。group为一组参数提供声明。allowunknown-clients﹔denyunknown-client是否动态分配IP给未知的使用者。allowbootp;denybootp是否响应激活查询。allowbooting﹔denybooting是否响应使用者查询。filename开始启动文件的名称,应用于无盘工作站。next-server设置服务器从引导文件中装如主机名,应用于无盘工作站。3.DHCP配置文件中的option(选项):用来配置DHCP可选参数,全部用option关键字作为开始,主要内容包括见表3:选项解释subnet-mask为客户端设定子网掩码。domain-name为客户端指明DNS名字。domain-name-servers为客户端指明DNS服务器IP地址。host-name为客户端指定主机名称。routers为客户端设定默认网关。broadcast-address为客户端设定广播地址。ntp-server为客户端设定网络时间服务器IP地址。time-offset为客户端设定和格林威治时间的偏移时间,单位是秒。注意:如果客户端使用的是视窗操作系统,不要选择host-name选项,即不要为其指定主机名称。下面是一个笔者使用的DHCP配置文件,这是一个C类网络,共126个IP地址可以分配的例子。读者可以复制后使用,注意红色部分是必须要修改的。ddns-update-styleinterim;ignoreclient-updates;subnet192.168.1.0netmask255.255.255.0{optionrouters192.168.1.254;optionsubnet-mask255.255.255.0;optionbroadcast-address192.168.1.255;optiondomain-name-servers192.168.1.3;optiondomain-name#DNS名称#optiondomain-name-servers192.168.1.3;optiontime-offset-18000;rangedynamic-bootp192.168.1.128192.168.1.255;default-lease-time21600;max-lease-time43200;hostns{hardwareethernet52:54:AB:34:5B:09;#运行DHCP的网络接口的MAC地址#fixed-address192.168.1.9;}}Linux下配置完整安全的DHCP服务器详解(2)二、建立客户租约文件运行DHCP服务器还需要一个名为dhcpd.leases的文件,保持所有已经分发出去的IP地址。在RedhatLinux发行版本中,该文件位于/var/lib/dhcp/目录中。如果您通过RPM安装ISCDHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:Leasesaddress{statement}一个典型的文件内容如下:lease192.168.1.255{#DHCP服务器分配的IP地址#starts12005/05/0203:02:26;#lease开始租约时间#ends12005/05/0209:02:26;#lease结束租约时间#bindingstateactive;nextbindingstatefree;hardwareethernet00:00:e8:a0:25:86;#客户机网卡MAC地址#uid\001\000\000\350\240%\206;#用来验证客户机的UID标示#client-hostnamecjh1;#客户机名称#}注意lease开始租约时间和lease结束租约时间是格林威治标准时间(GMT),不是本地时间。第一次运行DHCP服务器时dhcpd.leases是一个空文件,也不用手工建立。如果不是通过RPM安装ISCDHCP,或者dhcpd已经安装,那么您应该试着确定dhcpd将其lease文件写到何处,并确保该文件存在。也可以手工建立一个空文件:#touch/var/lib/dhcp/dhcpd.leases三、启动和检查DHCP服务器使用命令启动DHCP服务器:#servicedhcpdstart使用ps命令检查dhcpd进程:#ps-ef|grepdhcpdroot24021014:25?00:00:00/usr/sbin/dhcpdroot27642725014:29pts/200:00:00grepdhcpd使用检查dhcpd运行的端口:#netstat-nutap|grepdhcpdudp000.0.0.0:670.0.0.0:*2402/dhcpd四、配置DHCP客户端通常网管员使用选择手工配置DHCP客户,需要修改/etc/sysconfig/network文件来启用联网;并修改/etc/sysconfig/network-scripts目录中每个网络设备的配置文件。在该目录中,每个设备都有一个叫做ifcfg-eth?的配置文件,eth?是网络设备的名称。如eth0等。如果你想在引导时启动联网,NETWORKING变量必须被设为yes。除了此处之外/etc/sysconfig/network文件应该包含以下行:NETWORKING=yesDEVICE=eth0BOOTPROTO=dhcpONBOOT=yesLinux下配置完整安全的DHCP服务器详解(3)发布时间:2005.05.1917:56来源:赛迪网作者:曹江华五、DHCP配置常见错误排除通常配置DHCP服务器很容易,不过,在这里有一些技巧可以帮助您避免出现问题。对服务器而言,要确保网卡正常工作,并具备广播功能。对客户机而言,还要确保客户机的网卡正常工作。最后,要考虑网络的拓扑,并考虑客户机向DHCP服务器发出的广播消息是否会受到阻碍。另外如果dhcpd进程没有启动,那么可以浏览syslog消息文件来确定是哪里出了问题。这个消息文件通常是/var/log/messages。典型故障:1.DHCP服务器配置完成,没有语法错误。但是网络中的客户机却没办法取得IP地址。通常是LinuxDHCP服务器沒有办法接收來自255.255.255.255的DHCP客户机的Request封包造成的。一般是LinuxDHCP服务器的网卡没有设置具有MULTICAST功能。为了让dhcpd(dhcp程序的守护进程)能够正常的和DHCP客户机沟通,dhcpd必须传送封包到255.255.255.255这个IP地址,但是有些Linux系统里255.255.255.255这个IP地址被用来做为监听区域子网域(localsubnet)广播的IP地址,所以需要在路由表(routingtable)里加入255.255.255.255以激活MULTICAST功能;使用命令:routeadd-host255.255.255.255deveth0如果报告错误消息:255.255.255.255:Unkownhost那么请先修改/etc/hosts加入一行:255.255.255.255dhcp2.DHCP客户端程序和DHCP服务器不兼容由于Linux有许多发现版本,不同版本使用DHCP客户端程序和DHCP服务器也不相同。Linux提供了四种DHCP客户端程序:pump,dhclient,dhcpxd,和dhcpcd。了解不同Linux发行版本的服务器端和客户端程序对于常见错误排除是必要的。笔者曾经遇到过使用SuSELinux9.1DHCP服务器和使用MandrakeLinux9.0客户机不兼容的情况。此时就必须更换客户端程序。方法是先停止客户机的网络服务,卸载原程序,安装和服务器端兼容程序。附表:主要Linux发行版使用的DHCP客户端。发行版本缺省DHCP客户端可选DHCP客户端DHCP客户端启动脚本附加配置文件RedHatLinux9.0dhclient无/sbin/ifup/etc/sysconfig/network,/etc/sysconfig/network-scripts/ifcfg-eth0DebianLinux3.0dhclient无/sbin/ifup/etc/network/interfaces,/etc/dhclient.confMandrakeLinux9.1dhclientdhcpcd,dhcpxd,pump/sbin/ifup/etc/sysconfig/network,/etc/sysconfig/network-scripts/ifcfg-eth0,/etc/dhclient-eth0.confSuSELinux9.1dhcpcddhclient/sbin/ifup-dhcp/etc/sysconfig/network/dhcp,/etc/sysconfig/network/ifcfg-eth0Linux下配置完整安全的DHCP服务器详解(4)发布时间:2005.05.1917:56来源:赛迪网作者:曹江华六、DHCP服务器的安全1.在指定网络接口启动DHCP服务器如果你的Linux系统连接了不止一个网络界面,但是你只想让DHCP服务器启动其中之一,你可以配置DHCP服务器只在那个设备上启动。在/etc/sysconfig/dhcpd中,把界面的名称添加到DHCPDARGS的列表中:DHCPDARGS=eth0或者直接使用命令:Echo“DHCPDARGS=eth0”/etc/sysconfig/dhcpd这样对于带有
本文标题:linux下dhcp服务器配置(很全)
链接地址:https://www.777doc.com/doc-4574391 .html