1、Linux-DHCP服务的配置 1、 DHCP服务的配置 1.1 DHCP简介: DHCP动态主机配置协议,在一个小型局域网里可以通过手工指定ip地址的方式,但如有大量的主机,如果还是手工指定,那是一个很大的工作量,也容易出错,这时,就可以通过配置一台DHCP服务器来解决,为每台主机分配一个ip地址. DHCP作用域是指DHCP服务器可分配给DHCP客户端的IP地址范围,一个DHCP服务器至少要一个作用域,如有多个作用域,作用域之间的IP地址不能重叠. 1.2 DHCP的工作原理: DHCP工作过程分为四个步骤: 第一步(DHCPDISCOVER):客户端发送广播查找可以给自己提
2、供IP地址的DHCP服务器 第二步(DHCPOFFER):DHCP服务器发送广播提供一个可用的IP地址,并在地址池中将该地址打上标记,以防再次分配. 第三步(DHCPREQUEST):客户端收到广播后再次发送一个广播请求该地址,如果有多台DHCP响应,则第一个收到的优先. 第四步(DHCPACK):DHCP服务器收到广播后再发送一个广播,确认该地址分配给这台主机使用,并在地址池中将该地址打上标记,以防再次分配. 1.3 DHCP的基本配置: 第一步:安装软件: # rpm -ivh /misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm 第二步:编辑
3、配置文件: # vi /etc/dhcpd.conf #see /usr/share/doc/dhcp*/dhcpd.conf.sample 当进入到配置文件里面时,这里是空的,有如上一行的提示,说可以参考这个文件来编写配置文件,那就复制一份再编辑. # cp -rvf /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf # vi /etc/dhcpd.conf ddns-update-style interim; //配置DHCP和DNS为互动更新模式 ignore client-updates
4、 //忽略客户端的更新. subnet 192.168.100.0 netmask 255.255.255.0 { //定义作用域 option routers 192.168.100.1; //默认路由 option subnet-mask 255.255.255.0; //子网掩码 option nis-domain ""; //NIS域名
5、option domain-name ""; //DNS域名 option domain-name-servers 192.168.100.10; //DNS服务器地址 option time-offset -18000; # Eastern Standard Time //为客户端设置与格林威治的时间偏移 option ntp-servers 192.168.1.1; //网络时间服务器地址 op
6、tion netbios-name-servers 192.168.1.1; //指定WINS服务器地址 range dynamic-bootp 192.168.100.128 192.168.100.254; //动态分配的地址范围 default-lease-time 21600; //默认租约时间 max-lease-time 43200; //最大租约时间 group { host abc {
7、 //指定特定主机 hardware ethernet 00:0C:29:FD:44:C8; //硬件地址 fixed-address 192.168.100.30; //IP地址 } host efd { //指定特定主机 hardware ethernet 00:0C:29:FD:44:C0; //
8、硬件地址 fixed-address 192.168.100.31; //IP地址 } } } 如有多个要绑定的主机时可以把所有主机信息用group{ }包括起来,这样更方便管理.格式如下 : group { …… host abc { …… …… } host xyz { …… …… } } # service dhcpd restart DHCP的测
9、试: 在linux下: 让地址从DHCP获取: # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=dhcp # service network restart //重启一下网络服务,这里不能使用ifdown和ifup,要配置路由信息 # ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:FD:44:C8 inet addr:192.168.100.130 Bcast:192.168.10
10、0.255 Mask:255.255.255.0 这就是绑定的IP地址. # cat /etc/resolv.conf ; generated by /sbin/dhclient-script search nameserver 192.168.100.10 这里的DNS服务器地址也获取到了. # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.100.0 0.0.0.0
11、 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 192.168.100.1 0.0.0.0 UG 0 0 0 eth0 默认路由也获取到了.查看一下端口: # netstat -tlunp | grep 68 udp 0 0 0.0.0.0:68 0.0.0.0
12、 16150/dhclient 查看客户端的租约文件: lease { interface "eth0"; fixed-address 192.168.100.30; //固定地址 option subnet-mask 255.255.255.0; //子网掩码 option time-offset -18000; //时间偏移 option routers 192.168.100.1;
13、 //默认路由 option dhcp-lease-time 21600; //租约时间 option dhcp-message-type 5; option domain-name-servers 192.168.100.10; option dhcp-server-identifier 192.168.100.20; option nis-domain ""; option domain-name ""; renew 5 2010/4/9 09:01:40; reb
14、ind 5 2010/4/9 11:34:53; expire 5 2010/4/9 12:19:53; } windows下: 把IP地址设成自动获取. C:\Documents and Settings\Administrator>ipconfig /all Connection-specific DNS Suffix . : Physical Address. . . . . . . . . : 00-0C-29-D3-C6-B3 Dhcp Enabled. . . . . . . . . . . : Yes Autoconfiguration Enable
15、d . . . . : Yes IP Address. . . . . . . . . . . . : 192.168.100.253 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.100.1 DHCP Server . . . . . . . . . . . : 192.168.100.20 DNS Servers . . . . . . . . . . . : 192.168.100.10 Lease Obtained. . . . .
16、 . . . . : 2010年4月9日 14:44:12 Lease Expires . . . . . . . . . . : 2010年4月9日 20:44:12 基本配置完成. 1.4 DHCP超级作用域. 比如现在有一个C类的作用域,但随着网络的扩大,现在一个C类网络地址已经不够用了,那别的主机怎么得到IP地址呢? 经过测试,直接再添加一个作用域发现第二个作用域的地址申请不到,那解决的办法呢?如下: ddns-update-style interim; //配置DHCP和DNS为互动更新模式 ignore client-updates;
17、 //忽略客户端的更新. shared-network supper { subnet 192.168.100.0 netmask 255.255.255.0 { //定义作用域 option routers 192.168.100.1; //默认路由 option subnet-mask 255.255.255.0; //子网掩码 option nis-domain "";
18、 //NIS域名 option domain-name ""; //DNS域名 option domain-name-servers 192.168.100.10; //DNS服务器地址 option time-offset -18000; # Eastern Standard Time //为客户端设置与格林威治的时间偏移 option ntp-servers 192.168.1.1;
19、//网络时间服务器地址 option netbios-name-servers 192.168.1.1; //指定WINS服务器地址 range dynamic-bootp 192.168.100.128 192.168.100.254; //动态分配的地址范围 default-lease-time 21600; //默认租约时间 max-lease-time 43200; //最大租约时间 group { host abc {
20、 //指定特定主机 hardware ethernet 00:0C:29:FD:44:C8; //硬件地址 fixed-address 192.168.100.130; //IP地址 } host efd { //指定特定主机 hardware ethernet 00:0C:29:FD
21、44:C0; //硬件地址 fixed-address 192.168.100.131; //IP地址 } } subnet 192.168.100.0 netmask 255.255.255.0 { //定义作用域 option routers 192.168.100.1; //默认路由 option subnet-mask 255.255.
22、255.0; //子网掩码 option nis-domain ""; //NIS域名 option domain-name ""; //DNS域名 option domain-name-servers 192.168.100.10; //DNS服务器地址 option time-offset -18000; # Eastern Standard Time //为客户端设置与格林威治的
23、时间偏移 option ntp-servers 192.168.1.1; //网络时间服务器地址 option netbios-name-servers 192.168.1.1; //指定WINS服务器地址 range dynamic-bootp 192.168.100.128 192.168.100.254; //动态分配的地址范围 default-lease-time 21600; //默认租约时间 max-le
24、ase-time 43200; //最大租约时间 group { host abc { //指定特定主机 hardware ethernet 00:0C:29:FD:44:C8; //硬件地址 fixed-address 192.168.100.130; //IP地址 } host efd {
25、 //指定特定主机 hardware ethernet 00:0C:29:FD:44:C0; //硬件地址 fixed-address 192.168.100.131; //IP地址 } } } 用这个把所有的作用域括起来,就可以实现了.shared-network 后面的supper是自己定义的超级作用域名称. 1.5 DHCP保留地址. 在DHCP里为某个主机绑定地址已经知道了,但怎么去保留某一段地址来留
26、着备用呢? 如有这样一个要求:DHCP提供192.168.100.0 /24这上网段的地址, 但现在想192.168.100.2-192.168.100.99,192.168.100.101-192.168.100.254这些地址是不能分出去的,要保留使用.(这是为了实验,这样就只有两个IP地址能分配了,能够证明.)实现如下: range dynamic-bootp 192.168.100.1 192.168.100.1; range dynamic-bootp 192.168.100.100 192.168.100.100;
27、其实原理很简单,就是把可以分出去的地址写出来,没写的自然就不会被分出去了,这样就实现了地址的保留. 1.6DHCP中继代理. 如果有两个子网,中间隔着一台路由器,而只有一台DHCP服务器,主机向DHCP服务器申请地址时使用的是广播,路由器又隔离广播,那另一个子网的主机怎么获得IP地址呢? 有一种支持RFC1542的路由器可以实现,但不是这种路由器那就没办法了吗? 当然不是,这时,就需要用到DHCP中继代理了. 配置DHCP服务器: # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=n
28、one IPADDR=192.168.10.10 NETMASK=255.255.255.0 GATEWAY=192.168.10.1 //这个网关一定要. # service network restart 安装DHCP软件: # rpm -ivh /misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm 编辑配置文件: [root@rhel ~]# vi /etc/dhcpd.conf ddns-update-style interim; ignore client-updates; option
29、 time-offset -18000; default-lease-time 21600; max-lease-time 43200; shared-network supper { subnet 192.168.10.0 netmask 255.255.255.0 { option routers 192.168.10.1; //必需配置网关地址. option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.10.2 192.168.
30、10.2; } subnet 192.168.20.0 netmask 255.255.255.0 { option routers 192.168.20.1; option subnet-mask 255.255.255.0; range dynamic-bootp 192.168.20.2 192.168.20.3; } } [root@rhel ~]# service dhcpd restart 接下来配置DHCP中继代理服务器: DHCP中继代理服务器需要有两块网卡.eth0用于和DHCP服务器相连,eth1用于和内网相连
31、 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.10.1 //这里的地址是DHCP服务器的网关地址. NETMASK=255.255.255.0 # vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static IPADDR=192.168.20.1 //这里的地址是第二个作用域的地址. NET
32、MASK=255.255.255.0 # service network restart 安装DHCP软件(必需): [root@rhel3 ~]# rpm -ivh /misc/cd/Server/dhcp-3.0.5-18.el5.i386.rpm 编辑这个文件,开启转发功能: [root@rhel3 ~]# vi /etc/sysctl.conf net.ipv4.ip_forward = 1 //把这里改为1,默认为0. 执行为条命令使其生效: [root@rhel3 ~]# sysctl -p [root@rhel3 ~]# dhcrelay 192.168.10.10 //后面是DHCP的IP地址. 好了,配置完成,测试. 1.7 DHCP常用命令. ipconfig /release //windows下释放IP地址 ipconfig /renew //windows下重新获取IP地址 service network restart //linux重启网络服务






