您的位置:首页 > 电脑网络 > 电脑配件 > DHCP服务全攻略

DHCP服务全攻略

luyued 发布于 2011-04-28 17:22   浏览 N 次  

DHCP服务的官方网站https://www.isc.org/

dhcp=Dynameic Host Configuration Protocol
是基于TCP/IP,用于动态配置工作站的网络接口,使工作站的网络接口管理自动化,可以自动配置主机的IP地址、子网掩码、网关及DNS等

TCP/IP信息。工作原理请大家到网上找一下。这里不做介绍。

下面介绍一下DHCP的配置文件

# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample 这个是配置文件的样本,可以直接COPY这个文件到/etc/
dhcpd.conf配置文件中可以进行相当复杂的设置,以满足不同的应用需求,要了解具体的其他配置项使用方法,可以去查阅dhcp.conf文件的

手册页。

dhcpd.conf配置文件详解

ddns-update-style interim;

# 作用:定义所支持的DNS动态更新类型。
# none:表示不支持动态更新
# interim:表示DNS互动更新模式
# ad-hoc:表示特殊DNS更新模式


ignore client-updates;

# 作用:忽略客户端更新


subnet 192.168.0.0 netmask 255.255.255.0 {

# 作用:定义作用域,指定子网
# 注意:网络号必须与DHCP服务器的网络号相同


# --- default gateway
option routers 192.168.0.1;
# 作用:为客户端指定默认网关


option subnet-mask 255.255.255.0;
# 作用:设置客户端的子网掩码


option nis-domain "domain.org";
# 为客户设置NIS域

option domain-name "domain.org";
# 为客户设置域名

option domain-name-servers 192.168.1.1;
# 作用:为客户端指定DNS服务器地址


option time-offset -18000; # Eastern Standard Time
# 设置偏移时间。

option ntp-servers 192.168.1.1;
# 设置NTP服务器。

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;
# 设置wins服务器

range dynamic-bootp 192.168.0.128 192.168.0.254;

# 作用:指定动态IP地址范围
# 注意:可以指定多个range,但多个range所定义IP范围不能重复

default-lease-time 21600;
# 作用:定义默认IP租约时间为6小时


max-lease-time 43200;

# 作用:定义客户端IP租约时间的最大值

# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
# 设置由于定义服务器从引导文件中装入的主机名,用于无盘站。
hardware ethernet 12:34:56:78:AB:CD;
# 作用:定义网络接口类型和硬件地址

fixed-address 207.175.42.254;
# 作用:定义DHCP客户端指定的IP地址
}
# 作用:给客户端分配固定IP地址


}


租约数据库文件 /var/lib/dhcpd/dhcpd.leases

案例详解

【案例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 。

这个安全其实就是按要求来改就OK。注意里面是不是有写错的,有没有;结尾。

下面给出配置文件,最后别忘记了重新启动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服务器上的配置文件不用更改。

通过中继就能实现不同网关的通信了。

下面给出了一些中继的常见位置,仅供大家参考

图文资讯
广告赞助商