分类: LINUX
2011-04-07 13:38:49
内容简介
DHCP服务概述
DHCP服务的安装
启动和停止DHCP服务
DHCP服务的配置
DHCP客户端的配置
案例讲解
DHCP排错
DHCP服务的简介
DHCP基于客户/服务器模式。当DHCP客户端启动时,它会自动与DHCP服务器通信,由DHCP服务器为DHCP客户端提供自动分配IP地址的服务。安装了DHCP服务软件的服务器称为DHCP服务器,而启用了DHCP功能的客户机称为DHCP客户端。
DHCP服务器是以地址租约的方式为DHCP客户端
提供服务的,它有以下两种方式。1.限定租期 2.永久租用
DHCP服务工作原理
1.向DHCP服务器索取新的IP地址(图)
(1)DHCPDISCOVER(DHCP发现)
(2)DHCPOFFER(DHCP提供)
(3)DHCPREQUEST(DHCP请求)
(4)DHCPACK(DHCP确认)
2.更新IP地址租约
① 当DHCP客户端的IP地址使用时间达到租期的一半时,它就会向DHCP服务器发送一个新的DHCPREQUEST。若服务器在接收到该信息后并没有可拒绝该请求的理由,就会送一个DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始一个租用周期。
② 当进行IP地址的续租过程中出现以下两种特例中的任意一种时,需要另外处理。
DHCP客户端重新启动时
IP地址的租期超过一半但续约失败时
DHCP工作流程(图)
DHCP服务的安装
rpm -qa |grep dhcp
rpm -ivh dhcp-3.0.5-3.el5.i386.rpm
启动和停止DHCP服务
1.启动DHCP服务
/etc/init.d/dhcpd start
2.停止DHCP服务
/etc/init.d/dhcpd stop
3.重新启动DHCP服务
/etc/init.d/dhcpd restart
4 . 执行 ntsysv
DHCP服务的配置
配置文件的格式
设置IP作用域
设置客户端的IP选项
设置租约期限
保留特定的IP地址
分配多网段的IP地址
配置文件的格式(图)
DHCP配置文件dhcpd.conf的格式如下:
选项/参数 # 这些选项/参数全局有效
声明{
选项/参数 # 这些选项/参数局部有效
}
设置IP作用域
IP作用域是一个IP子网中所有可分配的IP地址的连续范围。在DHCP服务器内必须设置一个IP作用域。当DHCP客户端向DHCP服务器请求IP地址时,DHCP服务器就可以从该作用域内选择一个尚未分配的IP地址,并将其分配给该DHCP客户端。
在dhcpd.conf文件中,可用subnet语句来声明一个IP作用域。
subnet语句的格式如下:
subnet 子网ID netmask 子网掩码 {
range 起始IP地址 结束IP地址; # 指定可分配给客户 端的IP地址范围
IP参数; # 定义客户端的IP参数,如子网 掩码、默认网关等
}
设置客户端的IP选项
除了给DHCP客户端指定IP地址外,还可以利用DHCP服务器来设置客户端的工作环境。例如,可以设置其子网掩码、DNS服务器的地址和默认网关等。当DHCP客户端向DHCP服务器索取IP地址或更新租约时,DHCP服务器就会自动为DHCP客户端设置这些IP选项。
在配置文件dhcpd.conf中,设置DHCP客户端IP选项的语句的基本格式为:
option 选项代码 设置内容;
/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample
设置租约期限
租约期限是在DHCP服务器上指定的时间长度,在这个时间范围内DHCP客户端可以临时使用从DHCP服务器租借到的IP地址。
在dhcpd.conf文件中,有下面两个与租约期限有关的设置。
1.默认的租约期限
default-lease-time
2.最大租约期限
max-lease-time
保留特定的IP地址
可以保留特定的IP地址给指定的DHCP客户端使用,也就是说,当这个客户端每次向DHCP服务器索取IP地址或更新租约时,DHCP服务
器都会给该客户端分配相同的IP地址。
要保留特定的IP地址给指定的DHCP客户端使用,可先用arp命令查出该客户端网卡的MAC地址;然后在/etc/dhcpd.conf文件中,加入如
下格式的host语句。
host 主机名 {
hardware ethernet 网卡的MAC地址; # 指定DHCP客户端网卡的MAC地址
fixed-address IP地址; # 指定为该DHCP客户端分配的IP地址
IP参数; # 指定默认网关等其他IP参数
}
DHCP客户端的配置
Linux中DHCP客户端的配置
① 直接编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0,找到语句"BOOTPROTO=none",将其改为"BOOTPROTO=dhcp"即可。
② 重新启动网卡
ifdown eth0; ifup eth0
或ifconfig eth0 down; ifconfig eth0 up
Windows 中DHCP客户端的配置
ipconfig/release
ipconfig/renew
案例详解
【案例1】架设一台DHCP服务器,并按照下面的要求进行配置。
(1)为子网192.168.31.0/24建立一个IP作用域,并将在192.168.31.20~192.168.31.100范围之内的IP地址动态分配给客户机。
(2)假设子网中的DNS服务器地址为192.168.31.2,IP路由器地址为192.168.31.1,所在的网域名为example.com,将这些参数指定给客户机使用。
(3)为某台主机保留192.168.31.50这个IP地址, DNS服务器地址为192.168.31.5 。
下面给出配置文件,最后别忘记了重新启动DHCPD这个服务啊!
ddns-update-style interim;
ignore client-updates;
subnet 192.168.31.0 netmask 255.255.255.0 {
option routers 192.168.31.1;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.31.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.31.20 192.168.31.100;
default-lease-time 21600;
max-lease-time 43200;
host ns {
hardware ethernet 12:34:56:78:AB:CD;#这个MAC地址大家可以用ifconfig 查看,在WIN下可以用ipconfig /all来查看
fixed-address 192.168.31.50;
option domain-name-servers 192.168.31.5;
}
}
【案例2】公司原有机器为250台,IP地址规划为192.168.31.0/24网段,动态管理网络IP地址。现在升级到500台。如何在保持原有IP地址的规划不变的情况下,可以扩容现有的网络IP地址。(图)
下面用多作用域来实现。只要在原先的配置文件里面COPY一个出来就OK。
注意一点,服务器的IP就是管理的各网段的网关,也就是说DHCP服务器的网卡担当网关功能,然后再打开DHCP服务器的转发功能。(这是让两个网段的机器可以相互通信)
vim /etc/sysctl.conf
找到net.ipv4.ip_forward = 0 把0改成1
然后就刷新一下 sysctl -p
下面的就是这个案例的配置文件
ddns-update-style interim;
ignore client-updates;
subnet 192.168.31.0 netmask 255.255.255.0 {
option routers 192.168.31.3;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.31.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.31.20 192.168.31.100;
default-lease-time 21600;
max-lease-time 43200;
}
subnet 192.168.32.0 netmask 255.255.255.0 {
option routers 192.168.32.3;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.32.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.32.20 192.168.32.100;
default-lease-time 21600;
max-lease-time 43200;
}
下面用超级作用域来实现。只要在上面的配置文件里面稍做更改就OK。
ddns-update-style interim;
ignore client-updates;
shared-network test {
subnet 192.168.31.0 netmask 255.255.255.0 {
option routers 192.168.31.1;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.31.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.31.20 192.168.31.100;
default-lease-time 21600;
max-lease-time 43200;
}
subnet 192.168.32.0 netmask 255.255.255.0 {
option routers 192.168.32.1;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.32.2;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 192.168.32.20 192.168.32.100;
default-lease-time 21600;
max-lease-time 43200;
}
}
以上配置两个网段不能相互通信,所以要解决这个问题,我们就要用到中继
DHCP中继原理及配置
应用场合:
当一个网络中的主机数目较大时,手工分配IP不仅麻烦而且容易出错。DHCP服务的出现大大方便了主机IP地址的分配。现在的企业组网时,根据实际需要来划分vlan,成了必不可少的一个步骤。如何让一个DHCP服务器同时为多个网段提供服务,就是我们所要讨论的问题。
DHCP中继原理:
DHCP客户使用IP广播来寻找同一网段上的DHCP服务器。当服务器和客户段处在不同网段,即被路由器分割开来时,路由器是不会转发这样广播包的。因此可能需要在每个网段上设置一个DHCP服务器,虽然DHCP只消耗很小的一部分资源的,但多个 DHCP服务器,毕竟要带来管理上的不方便。DHCP中继的使用使得一个DHCP服务器同时为多个网段服务成为可能。
为了让路由器可以帮助转发广播请求数据包,使用ip help-address命令。通过使用该命令,路由器可以配置为接受广播请求,然后将其以单播方式转发个指定IP地址。缺省情况下ip help-address转发以下8种UDP服务:
1.Time 2.Tacacs 3.DNS 4.BOOTP/DHCP服务器 5. BOOTP/DHCP客户 6.TFTP 7.NetBios名称服务 8. NetBios数据报服务
在DHCP广播情况下,客户在本地网段广播一个 DHCP发现分组。网关获得这个分组,如果配置了帮助地址,就将DHCP分组转发到特定地址。
下面是具体的步骤
把DHCP服务器的IP改为192.168.31.10
我们用另外一台LINUX系统的DHCP软件来实现这个中继功能。
首先中继要有两块网卡,IP为各网段的网关,并安装了DHCP这个软件,其实这个就是dhcrelay这个配置文件
我们编辑一下
vim /etc/sysconfig/dhcrelay
在
INTERFACES="eth0 eth1" #指定中继监听的网络设备
DHCPSERVERS="192.168.31.10" #指定DHCP服务器的IP
同样要开启转发功能
vim /etc/sysctl.conf
找到net.ipv4.ip_forward = 0 把0改成1
然后就刷新一下 sysctl -p
DHCP服务器上的配置文件不用更改。
通过中继就能实现不同网关的通信了。
下面给出了一些中继的常见位置,仅供大家参考(图)
DHCP排错
1、查看错误信息
2、检查配置文件
3、查看租约文件
4、ping 测试
5、查看日志
★★★★★★★★★★★★★★★★★视频观看地址★★★★★★★★★★★★★★★★★★