Dhcp服务配置+实例

Dhcp(Dynamic Host Configuration Protocol)动态主机配置协议,顾名思议就是用来实现在“动态"地分配主机的配置信息的协议,工作在TCP/IP环境中,在网络中各主机是靠IP地址来实现通信(虽说局域网是用MAC地址,它也要靠IP地址来结合才能找到对应的MAC地址),它的前身是BootP协议,BootP原先用于无盘工作站网络上,它可以自动地为客户端主机设定主机信息,使用BootP必须事前知道客户端的MAC地址,这对于新增工作站造成很多的麻烦,且对应的主机信息只能静态分配(就是固定永久分配),对主机信息“资源”有限的现状来说造成了巨大的浪费,这种缺乏灵活性的协议使用起来很不方便,后来人们通过对其更改,设计出一个既能动态分配又不会浪费太多“资源”的协议,它就是DHCP协议,Dhcp利用租约的形式动态分配主机配置信息,当分配给客户端的主机信息在租约期内时,它能一直使用该“资源”,租约到期后必须释放“资源”或申请继租,Dhcp可以说是Bootp的增强版本,兼固了Bootp协议.Dhcp分成服务器端、客户端模式,服务对各主机信息资源进行集中配置与管理,并负责处理来自客户端的Dhcp请求(与客户端磋商TCP/IP的设定环境),而客户端则会从服务器端收到指定的主机信息作为主机标识。
根据Dhcp协议功能可以实现三种模式的IP分配:
(ManualAllocation)手动分配:可以给某主机固定分配特定的IP地址,永不过期
(AutomaticAllocation)自动分配:这个功能为兼容Bootp协议保留的,一旦客户端第一次成功从服务端获得IP地址后就永久使用这个IP地址
(DynamicAllocation)动态分配:客户端并非永久使用该IP地址,只要租约到期就会释放IP地址留给其它主机使用,如果该主机还想继续使用该IP地址的话,就要申请继租。显然动态分配更具灵活性,更能适应现代网络的进步需求,尤其是实际IP地址暴显严重不足的情况。
工作原理:
1、客户端以广播的形式发送DhcpDiscover数据包来请求IP地址,当然,请求之前此主机是没任何IP地址的,它也不知道Dhcp Server的IP地址是多少,所以DhcpDiscover包的源IP地址为0.0.0.0,目的地址为255.255.255.255,再加入自己的MAC地址发送广播,然后就等待Dhcp Server的响应
2、当网络内的DhcpServer收到客户端的请求包后,会从那此还没有分配出来的地址范围内选择最前面的一个IP地址,连同其它TCP/IP设定发送给客户端,以Dhcp Offer的封包格式,因客户端目前IP地址未确定,它也只能广播此Dhcp offer封包,封包内包含请求的客户端的MAC地址、未分配的IP地址、其它的TCP/IP信息、租约期限等,
3、客户端可能会收到来自多个Dhcp Server的Dhcp Offer封包,它会挑选其中一个(一般选最先到达的包),并且向网络广播一个Dhcp Request包,表明自己将选择那一台Dhcp Server的包,同时客户端也向网络广播一下ARP(地址解析协议)查看此IP地址是否有其它主机在使用,发果发现该IP地址被占用,则发送一个Dhcp Client包来拒绝接受其Dhcp Offer,并重新发送Dhcp Discover包
4、Dhcp Server收到客户端的Dhcp Request后,向客户端发送一个Dhcp Ack来确认IP地址租约的正式生效
当然,上面就一台主机第一次获得IP地址的流程,一旦客户端成功从服务器获得主机信息后,除非其租约失效并且地址重新设回0.0.0.0,否则无需再发送Dhcp Discover信息,而是直接使用已租到的IP地址向之前的Dhcp Server发送Dhcp Request信息继租主机信息,Dhcp Server会尽量让客户端使用原来的IP地址,直接响应一个DhcpAck确认即可,客户端端一般会在租约期限到一半的时候发出Dhcp Request,如果此时得不到Dhcp Server的响应,它还可以继续使用该IP地址,当租约超过87.5%时,再发送一个Dhcp Request包,此时再得不到服务器的确认的话它必须停止使用该IP地址,并重新发送一个Dhcp Discover重新取得IP地址
Dhcp可以为本地物理网络动态分配IP地址等TCP/IP信息,集中管理防止不必要的重复输入引起输入错误,当网络地址段改变时也不用分别到各个客户端更改,只需在客户端修改相应的参数即可,特别适合移动办公的需要,管理方便也节约管理成本。Dhcp Server本身必须是静态的形式配置(要不然谁知道要去那里更新租约),
安装dhcp:
系统默认没有安装dhcp服务,如果不确认是否安装了dhcp服务,可以查询rpm -qa |grep dhcp看是否有安装过
rpm -ivh dhcp-3.0.5-3.el5 dhcp服务程序包
rpm -ivh dhcpv6_client-0.10-33.el5 dhcp客户端IPv6包(可选)
rpm -ivh dhcp-devel-3.0.5-3.el5 dhcp开发工具包
上次安装samba没有说明rpm用法,现在复习一遍它的常用选项
rpm - *.rpm 安装rpm包(要加入rpm包的版本号)
rpm -e  *.rpm 删除rpm包(删除包时只需包名,不用写包版本号)
rpm -U *.rpm 更新安装包(也可以做安装用,因为它先判断是否有更新,没有则安装)
rpm -v 输出详细执行情况,一般与h连用
rpm -V 检测包大小改变情况
rpm -h 以#的形式输出
rpm -qa 查询所有包
rpm -qf 查询包的绝对路径
rpm -qi 包名 查询已安装的包的信息
rpm -qc 包名 查询已安装的包的配置信息
一般用法
rpm -ivh dhcp 安装dhcp
rpm -Uvh dhcp 更新dhcp
rpm -qa dhcp 查询是否安装过dhcp
rpm -qi dhcp 查询dhcp安装信息
rpm -V dhcp 检测包是否有修改过

启动dhcp服务:
1、/etc/rc.d/init.d/dhcpd start   注意服务名和进程名都是dhcpd
2、service dhcpd start

开机自启动:
1、chkconfig --level 345 dhcpd on
2、ntsysv

查看是否有启动:
1、service dhcpd status
2、/etc/rc.d/init.d/dhcpd status
3、netstat -anp |grep dhcpd 查看dhcp路径和工作端口号,dhcpd工作的端口号为67

配置文件:
dhcp配置文件dhcpd.conf存放在/etc目录下面,默认情况下里面没有具体的配置参数,只有一个参考配置文件路径,cat /etc/dhcpd.conf浏览后,可以看得到具体内容,我们先把配置示例文件复制过来:cp /usr/share/doc/dhcp*/dhcpd.conf.sample /etc/dhcpd.conf,它还关系到一个记录日志的文件,存放在/var/lib/dhcpd/dhcpd.lease,默认是不存在的,我们必须创建它touch /var/lib/dhcpd/dhcpd.lease,它能记录IP地址的动态租用信息(如:出租的地址、起始时间、到期时间等)

touch基本用法:
touch -a file 只修改file访问时间
touch file  如果file存在就修改访问时间,不存在的话就创建该文件
touch -d 和 date -s 的用法相同。
如果没有指定日期,默认为系统日期
touch -d 13:03 file
touch -d "13:03" file
touch -d "2:03pm" file

如果没有指定时间,默认为 00:00:00
touch -d 20090530 file
touch -d "05/30/2009" file
touch -d "20090530" file
touch -d "2:03pm 05/30/2009" file
touch -d "20090530 2:03" file
touch -d "20090530 2:03:00" file

dhcpd.conf分为三个部分:参数(Parameters)、声明(Declarations)、选项(Options)
参数部分:

ddns-update-style none|adhoc|interim 指定互动更新模式,这句是必须的
default-lease-time number 指定默认租约时间,以秒为单位
max-lease-time number 指定最大租约时间,以秒为单位
server-name name 指定客户端的服务器名
hardware type 指定网络卡接口类型,一般为ethernet MAC_address
fixed-address IP_address 指定分配的IP地址
声明部分:
subnet 声明子网
range Start_ip End_ip 指定动态IP的分配范围
shared-network 指出网络是否属同一个物理网络
host Host_name 为指定的主机名保留IP地址
group Group_name 组设置
选项部分:
option routers 指定网关IP地址
option dymain-name 为客户端指定NDS名字
option dymain-name-servers 指定DNS的地址,最多可以有三个,中间以逗号隔开
option subnet-mask 指定子网掩码
option broadcast-address 指定广播地址
options netbios-name-servers netbios服务器地址
time-offset -18000  为客户端提定格林威治时间的偏移时间,以秒为单位

客户端设置:
vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 网卡设置名称
BOOTPROTO=dhcp 启用dhcp协议
HWADDR=00:15:F2:0B:A6:65 网卡MAC地址
ONBOOT=no 是否开机启动
TYPE=Ethern 网卡类型

设定:DNS
vi /etc/host.conf 指出DNS搜索顺序
vi /etc/hosts 指出IP与主机名的对应关系
vi /etc/resolv.conf 指定DNS的IP地址

设定网关和主机名:
vi /etc/sysconfig/network

NETWORKING=yes 是否启用网卡
NETWORKING_IPV6=yes 是否支持IP_V6
HOSTNAME=www.wudionline.com 主机名称

测试:
在windows下,开始-控制面板-网络Internet连接-网络连接,右击本地连接-属性-Internet协议(TCP/IP)-属性,再选择自动获得IP地址-确定

开始-运行,输入cmd,再运行ifconfig /all即可看到全部TCP/IP信息
或查看cat /var/lib/dhcpd/dhcpd.lease日志文件即可看到相关的TCP/IP分配情况,如:
lease 192.168.1.206 { 分配的IP地址
  starts 4 2009/05/28 23:01:57; 租约开始时间
  ends 5 2009/05/29 05:01:57; 租约结束时间
  binding state active;
  next binding state free;
  hardware ethernet 00:11:25:e8:03:08; 硬件地址
  uid "\001RAS \000\021%\350\003H\000\000\001\000\000\000"; 客户端的UID标志
  client-hostname "wudionline.com"; 客户端名称



例子:
本网络只有一个网段192.168.1.0/24,主要分配范围为192.168.1.200-192.168.1.220,192.168.1.245-192.168.1.250两段,给www主机分配192.168.1.3地址。网关为192.168.1.1,DNS为192.168.1.2 202.96.128.166,两个地址之间要用逗号隔开
vi /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {

# --- default gateway
        option routers                  192.168.1.1;
        option subnet-mask              255.255.255.0;

#       option nis-domain               "domain.org";
#       option domain-name              "domain.org";
        option domain-name-servers      192.168.1.2,202.96.128.166;

        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;
#       option netbios-name-servers     192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;

        range dynamic-bootp 192.168.1.200 192.168.1.220;
        range dynamic-bootp 192.168.1.245 192.168.1.250;
        default-lease-time 21600;
        max-lease-time 43200;

        # we want the nameserver to appear at a fixed address
       host www {
#               next-server marvin.redhat.com;
                hardware ethernet 00:11:25:e8:03:08;
                fixed-address 192.168.1.3;
#       }
}

你可能感兴趣的:(职场,实例,休闲,dhcp服务配置)