Tag Archive dhcp

Bysagazhang

配置DHCP笔记

rpm -qa|grep dhcp
检查是否安装了DHCP

mount /mnt/cdrom
如果未安装DHCP可以用此命令挂接光驱,以便于从光盘安装。

cd /mnt/cdrom/RedHat/RPMS
DHCP的rpm包存放于RdeHat Linux第二张安装光盘中。

rpm -ivh dhcp-3.0pl1-23.i386.rpm
安装DHCP所需的文件。

/usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample

默认情况下Red Hat Linux下DHCP配置文件不存在,但是有模板文件可以参考,以上为此模板文件的位置。

以下我们查看此文件并注解:

ddns-update-style interim;
[ 配置使用过度性 DHCPDNS 互动更新模式。]

ignore client-updates;

[忽略客户端更新。]

subnet 192.168.0.0 netmask 255.255.255.0 { [设置子网声明。]

# — 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"; [为客户端设置DNS域。]
option domain-name-servers 192.168.1.1; [为客户端设置DNS服务器地址。]

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.0.128 192.168.0.255; [设置地址池。]
default-lease-time 21600; [设置客户端默认地址租约期。]

max-lease-time 43200; [设置客户端最长地址租约期。]

# 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;
[指定客户端的MAC地址。]
fixed-address 207.175.42.254; [对于指定的MAC地址分配固定的IP地址。]
}

}

以上是这篇模版文件的示例,其中我们知道#号所在行是一些注解和建议,例如(# option ntp-servers 192.168.1.1;)也可以去除#号直接为客户端设置NTP协议。

通过此模板我们可以编辑自己的DHCP配置文件,之后此文件应当以:

/etc/dhcpd.conf

的位置存放,以下我们以一篇实际的dhcp.conf文件为例查看下配置:

ddns-update-style interim;
ignore client-updates;

default-lease-time 21600;
max-lease-time 43200;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
option subnet-mask 255.255.255.0;
option domain-name "bite.edu";
option domain-name-servers 192.168.1.1,192.168.1.254;
option time-offset -18000;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}

group {
host 001 {

option host-name"001.bite.edu";
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 192.168.1.10;
}

host 002 {

option host-name"002.bite.edu";
hardware ethernet 12:34:56:78:AB:DE;
fixed-address 192.168.1.11;
}

}

其中,group代表为一组参数实现声明,从 group -> } 一段也可以等价于:

group {
use-host-decl-names on;
host 001 {

hardware ethernet 12:34:56:78:AB:CD;
fixed-address 192.168.1.10;
}

host 002 {

hardware ethernet 12:34:56:78:AB:DE;
fixed-address 192.168.1.11;
}

}

注意,如果为 Windows 客户端提供DHCP服务,建议不要使用 use-host-decl-names on 和 option host-name 配置!

启动DHCP服务:

service dhcpd start
G:立即启动。

pstree|grep dhcpd
G:检验dhcpd是否被启动(返回结果应该为:|-dhcpd)。

利用ntsysv工具选择dhcpd可实现计算机启动时自动运行此服务。

技巧:

(1)为指定的网络接口启动DHCP服务器

如果系统中连接了不止一个网络接口,可是想让DHCP在其中一个之上启动,可以配置 /etc/sysconfig/dhcpd ,将网络接口的名称添加到DHCPDARGS选项中,最简捷的命令是:

echo "DHCPDARGS=eth0" >> /etc/sysconfig/dhcpd

如果用户有一个带有头两个网卡的防火墙主机,这种方法就会大派用场。一个网卡(eth1)可以配置成DHCP客户来从互联网检索获取IP地址;另一个网卡(eth0)可以被用作防火墙之后的内部网络的DHCP服务器。仅指定连接到内部网络的网卡是系统更加安全,因为用户无法通过互联网来连接它的DHCP守护进程。

(2)Linux的客户端配置使用DHCP获取地址

修改 /etc/sysconfig/network 文件,应该包含以下行:NETWORKING=yes
这个文件中可能有更多信息,但是如果想在引导时启动互联网,NETWORKING变量必须被设置为yes。
最简捷的操作是:
ehco "NETWORKING=yes" > /etc/sysconfig/network

修改/etc/sysconfig/network-scripts/ifcfg-eth0(具体为ifcfg-eth某某网卡接口)文件,应该包含以下几行:
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
可以使用vi来编辑以上文件

(3)DHCP中继代理

由于DHCP是广播型服务,所以跨越子网时无法使用,要使不同子网的DHCP服务通过,方法有三种:
每个子网一个DHCP服务器
使用路由器的中继功能
为每个子网设置一台计算机作为中继代理

中继代理无需路由器支持,客户机发送请求到中继代理,中继代理代为联系另外子网中的DHCP服务器,之后将结果返回客户机。

除非使用INTERFACES指令在 /etc/sysconfig/dhcprelay 文件中指定了接口,中继代理能力在所有接口上监听DHCP请求。
启动DHCP中继代理的命令是:
service dhcrelay start