爱程序网

DHCP服务攻略

来源: 阅读:

一、 常规DHCP服务器的配置

查看相关配置文件

[root@RHEL1 dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf
[root@RHEL1 dhcp]# cat dhcpd.conf 		#默认是没有配置信息的
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample
#   see 'man 5 dhcpd.conf'
#
[root@RHEL1 dhcp]# rpm -ql dhcp
/etc/dhcp
/etc/dhcp/dhcpd.conf		#Ipv4的DHCP配置文件
/etc/dhcp/dhcpd6.conf		#IPV6的DHCP配置文件
/etc/openldap/schema/dhcp.schema	#认证相关的,我也不懂
/etc/portreserve/dhcpd
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcpd6
/etc/rc.d/init.d/dhcrelay		
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay 	DHCP中继代理
/usr/bin/omshell
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/doc/dhcp-4.1.1
/usr/share/doc/dhcp-4.1.1/3.0b1-lease-convert
/usr/share/doc/dhcp-4.1.1/IANA-arp-parameters
/usr/share/doc/dhcp-4.1.1/README.ldap
/usr/share/doc/dhcp-4.1.1/api+protocol
/usr/share/doc/dhcp-4.1.1/dhclient-tz-exithook.sh
/usr/share/doc/dhcp-4.1.1/dhcpd-conf-to-ldap
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample	#默认模板文件
/usr/share/doc/dhcp-4.1.1/dhcpd6.conf.sample	
/usr/share/doc/dhcp-4.1.1/draft-ietf-dhc-ldap-schema-01.txt
/usr/share/doc/dhcp-4.1.1/ms2isc
/usr/share/doc/dhcp-4.1.1/ms2isc/Registry.perlmodule
/usr/share/doc/dhcp-4.1.1/ms2isc/ms2isc.pl
/usr/share/doc/dhcp-4.1.1/ms2isc/readme.txt
/usr/share/doc/dhcp-4.1.1/sethostname.sh
/usr/share/doc/dhcp-4.1.1/solaris.init
/usr/share/man/man1/omshell.1.gz
/usr/share/man/man5/dhcpd.conf.5.gz
/usr/share/man/man5/dhcpd.leases.5.gz
/usr/share/man/man8/dhcpd.8.gz
/usr/share/man/man8/dhcrelay.8.gz
/var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases	#租约数据库文件
/var/lib/dhcpd/dhcpd6.leases

 

 

主配置文件

dhcpd.conf组成部分

parameter(参数)

declaration(声明)

option(选项)

从整体框架来看分为全局配置和局部配置

复制模板

[root@RHEL1 dhcp]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 
cp: overwrite `/etc/dhcp/dhcpd.conf'? y

 

 

配置文件简介

parameter(参数)
ddns-update-style (none|interim|ad-hoc);  #默认是被注释的;在RHEL6.4之前好像是必须要启用才能启动dhcp服务
none: 表示不支持动态更新。
Interim: 表示DNS互动更新模式
ad-hoc: 表示特殊DNS更新模式
ignore client-updates	#忽略客户端动态更新
default-lease-time		#指定确省租赁时间的长度,单位是秒。
max-lease-time			#指定最大租赁时间长度,单位是秒。
hardware			#指定网卡接口类型和MAC地址。
server-name		#通知DHCP客户服务器名称。
get-lease-hostnames flag	#检查客户端使用的IP地址。
fixed-address ip		#分配给客户端一个固定的地址。
authoritative		#拒绝不正确的IP地址的要求。
log-facility local7	#用于定义DHCP的日志

declaration(声明)
shared-network		#用来告知是否一些子网络分享相同网络。
subnet				#描述一个IP地址是否属于该子网。
range 起始IP 终止IP	#提供动态分配IP 的范围。
host 主机名称		#参考特别的主机。
group		#为一组参数提供声明。
allow unknown-clients ﹔deny unknown-client		#是否动态分配IP给未知的使用者。
allow bootp;deny bootp		#是否响应激活查询。
allow booting﹔deny booting		#是否响应使用者查询。
filename		#开始启动文件的名称,应用于无盘工作站。
next-server		#设置服务器从引导文件中装如主机名,应用于无盘工作站。

option(选项)
subnet-mask		#为客户端设定子网掩码。
domain-name		#为客户端指明DNS名字。
domain-name-servers	#为客户端指明DNS服务器IP地址。
host-name			#为客户端指定主机名称。
routers		#为客户端设定默认网关。
broadcast-address		#为客户端设定广播地址。
ntp-server			#为客户端设定网络时间服务器IP地址。
time-offset		#为客户端设定和格林威治时间的偏移时间,单位是秒。

二、 简单配置应用案例

某部门有60台计算机,网段192.168.1.1-192.168.1.254,子网掩码24位,网关为192.168.1,192.168.1.2-192.168.1.30为服务器固定地址,客户端可用网段为192.168.1.100-192.168.1.200,其余IP为保留地址,DNS为192.168.1.11

[root@RHEL1 dhcp]# vim dhcpd.conf		#建议先复制需要部分,然后再对不需要的局部进行注释,默认配置是104行(:.,104s/^/#/g 注释)

#全局配置
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
#局部配置
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.100 192.168.10.200;
  option routers 192.168.10.1;
  option domain-name-servers 192.168.10.11;
}

 

 

启动dhcpd服务

[root@RHEL1 dhcp]# service dhcpd restart //如果没有问题就可以进行测试;

关闭vmware的DHCP;

clip_image005

clip_image006

测试主机网卡选择

clip_image007

测试主机2003设置为DHCP获取

clip_image008

释放IP,顺便用wireshark抓包看看

clip_image009

DHCP数据包

clip_image010

三、 多网卡多作用域的实现

网络拓扑

clip_image011

在vmware上添加网卡vm2并去掉其DHCP功能,手工配置网卡中的IP与DHCP服务器同一网段即可,我这里已经添加过了

clip_image012

然后ping测试一下,保证其连通性;

clip_image013

clip_image014

配置dhcpd.conf

全局部分不变 局部配置

subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.100 192.168.10.200;
  option domain-name-servers 172.16.0.1;
   option routers 192.168.10.1;
  option broadcast-address 192.168.10.255;
}


subnet 192.168.20.0 netmask 255.255.255.0 {
  range 192.168.20.200 192.168.20.200;
  option domain-name-servers 172.16.0.1;  
  option routers 192.168.20.1;
  option broadcast-address 192.168.20.255;
}

重启服务

[root@sharecast dhcp]# service dhcpd restart

Starting dhcpd: [ OK ]

测试服务

clip_image016

再将RHEL2网卡改为DHCP模式获取,如图

clip_image017

clip_image018

看一下服务求租约数据库文件

clip_image019

end

四、 超级作用域配置、主机绑定IP和中继代理

网络拓扑

clip_image020

主要原理是DHCP是同过广播的方式进行通话,广播包无法跨网段,故需要中继代理和数据转发DHCP服务器的网关一定要指向中继代理商的网卡

vmware网卡配置按照网络拓扑配置即可

DHCP server

dhcp.conf配置

全局不变即可, 局部参数如下

shared-network test {
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.100 192.168.10.200;
  option routers 192.168.10.1;
  option domain-name-servers 192.168.10.11;

}

subnet 192.168.20.0 netmask 255.255.255.0 {
  range 192.168.20.100 192.168.20.200;
  option routers 192.168.20.1;
  option domain-name-servers 192.168.10.11;

}
}
host win2003 {
  hardware ethernet 00:0C:29:F8:48:2C;
  fixed-address 192.168.20.150;
}

 

 

配置完成重启服务

网卡配置为如拓扑所示即可

DHCRELAY SERVER

首先,将网卡配置为拓扑所要求的,并且启用linux的转发功能

[root@sharecast dhcp]# ifconfig 
eth1      Link encap:Ethernet  HWaddr 00:0C:29:38:D4:8E  
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe38:d48e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2658 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2698 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:245806 (240.0 KiB)  TX bytes:268177 (261.8 KiB)
          Interrupt:19 Base address:0x2000 

eth2      Link encap:Ethernet  HWaddr 00:0C:29:38:D4:98  
          inet addr:192.168.20.1  Bcast:192.168.20.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe38:d498/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:919 errors:0 dropped:0 overruns:0 frame:0
          TX packets:282 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:108776 (106.2 KiB)  TX bytes:22690 (22.1 KiB)
          Interrupt:19 Base address:0x2400 

[root@sharecast dhcp]# vim /etc/sysctl.conf 
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 1		#将这里改为1即可
[root@sharecast dhcp]# sysctl –p		#检查配置
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456

[root@sharecast dhcp]# vim /etc/sysconfig/dhcrelay 	
# Command line options here
#DHCRELAYARGS=""
# DHCPv4 only
INTERFACES="eth1 eth2"		#本机网卡
# DHCPv4 only
DHCPSERVERS="192.168.10.11"		#指向DHCP服务器

[root@sharecast dhcp]# service dhcrelay restart		#重启代理服务器
Shutting down dhcrelay:                                    [  OK  ]
Starting dhcrelay:                                         [  OK  ]
[root@RHEL1 ~]# iptables –F		#清除防火墙规则

 

 

测试

clip_image023

clip_image024

end

五、 DHCP排错思路

 

image

关于爱程序网 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助