首页 > 代码库 > Linux下搭建简单的DHCP服务器

Linux下搭建简单的DHCP服务器

在RHEL6.5下搭建简单的DHCP服务器


实验目标

1、为192.168.10.0/24网段的客户机自动配置网络参数

  • 用来给客户机自动分配地址的IP地址范围是:192.168.10.50-192.168.10.100、192.168.10.120-192.168.10.200

  • 客户机的默认网关地址设为192.168.10.1

  • 客户机所使用的DNS服务器设为202.106.0.20、8.8.8.8,默认域后缀是“tarena.com”

  • 将默认租期设为2小时,最大租期设置为4小时

2、为打印服务器绑定地址

  • 网络打印机的网卡由客户机的eth1模拟

  • 打印机每次启动后获得的IP地址都应该是192.168.10.110



实验环境

    使用两台RHEL6.5虚拟机,其中一台作为DHCP服务器,另一台作为测试用的DHCP客户端,并模拟担任网络打印机。

clip_image001



实验步骤

1. 两台虚拟机的网络连接设置为“VMnet4”。其中pc1添加两块网卡,网络连接都设置为“VMnet4”,一块做客户端,另一块模拟打印机。网络连接相当于一个交换机,选择哪个连接都行,只要两台虚拟机在同一个网络连接。

clip_image003

2. 为服务器构建一个固定的IP地址,而且这个地址所在的网段在DHCP服务里配置了作用域,然后才能对外提供服务。当对外提供多个网段的DHCP服务时,只要服务器IP地址属于其中一个网段就可以。

[root@svr5 桌面]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

HWADDR=00:0C:29:6C:F3:5E

TYPE=Ethernet

UUID=184f1b06-c7e9-4d69-9b1f-8d0670dda62f

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=none

IPADDR=192.168.10.1                       //IP地址

NETMASK=255.255.255.0                     //子网掩码

[root@svr5 桌面]# service network restart //重启服务,使更改生效

关闭环回接口: [确定]

弹出环回接口: [确定]

弹出界面 eth0: Determining if ip address 192.168.10.1 is already in use for device eth0...

[确定]

[root@svr5 桌面]# ifconfig eth0           //确认修改后的IP地址

eth0 Link encap:Ethernet HWaddr 00:0C:29:6C:F3:5E

     inet addr:192.168.10.1 Bcast:192.168.10.255 Mask:255.255.255.0

     inet6 addr: fe80::20c:29ff:fe6c:f35e/64 Scope:Link

     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

     RX packets:39 errors:0 dropped:0 overruns:0 frame:0

     TX packets:22 errors:0 dropped:0 overruns:0 carrier:0

     collisions:0 txqueuelen:1000

     RX bytes:13338 (13.0 KiB) TX bytes:1447 (1.4 KiB)

3. 确认已装有dhcp软件包。如果没有安装则通过yum方式安装。

[root@svr5 桌面]# rpm -qa dhcp*       //查询有没有安装dhcpd

dhcp-common-4.1.1-38.P1.el6.x86_64    //这个不是dhcp服务端软件包,为客户端和服务端提供一般文件,安装客户端和服务端软件包依赖于它

[root@svr5 桌面]# yum -y install dhcp //用yum安装dhcp服务

......

......

Installed:

dhcp.x86_64 12:4.1.1-38.P1.el6

Complete!                             //表示安装成功

4. 建立dhcp.conf配置文件,并启动dhcpd服务。

默认的配置文件/etc/dhcp/dhcpd.conf内无任何有效配置,但是提供了一样例在/usr/share/doc/dhcp*/dhcpd.conf.sample,也可以通过查看man手册来学习配置文件的格式。下面是配置文件内容:

[root@svr5 桌面]# vim /etc/dhcp/dhcpd.conf

#

# DHCP Server Configuration file.

# see /usr/share/doc/dhcp*/dhcpd.conf.sample

# see ‘man 5 dhcpd.conf‘

#

default-lease-time 7200;                     //单位是秒

max-lease-time 14400;

subnet 192.168.10.0 netmask 255.255.255.0 {

option routers 192.168.10.1;

option domain-name "tarena.com";

option domain-name-servers 202.106.0.20,8.8.8.8;

range 192.168.10.50 192.168.10.100;

range 192.168.10.120 192.168.10.200;

}

[root@svr5 桌面]# service dhcpd restart      //启动服务

关闭 dhcpd:     [确定]

正在启动 dhcpd: [确定]

[root@svr5 桌面]# chkconfig dhcpd on         //保证服务开机启动

[root@svr5 桌面]# netstat -anptu | grep dhcp //该有dhcpd的进程,UDP的67端口

udp 0 0 0.0.0.0:67 0.0.0.0:* 4144/dhcpd

5. 在客户机上以DHCP方式获取地址。

1)在客户机上临时使用dhclient –d调试,运行占用当前终端,可以观察到DHCP运行的过程。

[root@pc1 桌面]# dhclient -d

Internet Systems Consortium DHCP Client 4.1.1-P1

Copyright 2004-2010 Internet Systems Consortium.

All rights reserved.

For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:0c:29:28:f8:14

Sending on LPF/eth0/00:0c:29:28:f8:14

Sending on Socket/fallback

DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4 (xid=0x109ac25b)

DHCPOFFER from 192.168.10.1

DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x109ac25b)

DHCPACK from 192.168.10.1 (xid=0x109ac25b)

bound to 192.168.10.50 -- renewal in 3312 seconds.

如上可以判断正确获得了地址,按Ctrl+c快捷键可以终止调试,返回后查看eth0网卡获得的地址。

[root@pc1 桌面]# ifconfig eth0

eth0 Link encap:Ethernet HWaddr 00:0C:29:28:F8:14

     inet addr:192.168.10.50 Bcast:192.168.10.255 Mask:255.255.255.0

     inet6 addr: fe80::20c:29ff:fe28:f814/64 Scope:Link

     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

     RX packets:13 errors:0 dropped:0 overruns:0 frame:0

     TX packets:50 errors:0 dropped:0 overruns:0 carrier:0

     collisions:0 txqueuelen:1000

     RX bytes:1651 (1.6 KiB) TX bytes:8239 (8.0 KiB)

检查DNS服务器地址配置,应该为202.106.0.20和8.8.8.8

[root@pc1 桌面]# cat /etc/resolv.conf

; generated by /sbin/dhclient-script

search tarena.com

nameserver 202.106.0.20

nameserver 8.8.8.8

检查网关地址,应该为192.168.10.1

[root@pc1 桌面]# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0

169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1

0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 eth0

2)直接修改网卡配置文件永久配置

dhclient –d只是临时的测试,重启network服务后,网卡地址就没了。要想永久生效还是要修改配置文件

[root@pc1 桌面]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

HWADDR=00:0c:29:28:f8:14

TYPE=Ethernet

UUID=184f1b06-c7e9-4d69-9b1f-8d0670dda62f

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=dhcp

[root@svr5 桌面]# service network restart //重启network即可生效

正在关闭接口 eth0: [确定]

正在关闭接口 eth1: [确定]

关闭环回接口: [确定]

弹出环回接口: [确定]

弹出界面 eth0:

正在决定 eth0 的 IP 信息...完成。

[确定]

弹出界面 eth1: [确定]

6. 为网络打印机绑定地址(客户机中的eth1作为网络打印机的网卡)

1)修改dhcpd.conf配置,添加保留地址。

[root@svr5 桌面]# vim /etc/dhcp/dhcpd.conf

... ...

subnet 192.168.10.0 netmask 255.255.255.0 {

... ...

   host printer {                           //”printer”是客户端的识别名称,可以任意

       hardware ethernet 00:0c:29:28:f8:1e; //客户机中eth1的MAC地址

       fixed-address 192.168.10.110;        //给eth1保留的ip地址,最好是在range之外的地址

   }

}

[root@svr5 桌面]# service dhcpd restart

关闭dhcpd:      [确定]

正在启动 dhcpd: [确定]

2)在客户端验证,eth1是否获得固定地址192.168.10.110

[root@pc1 桌面]# ifconfig eth1

eth1 Link encap:Ethernet HWaddr 00:0C:29:28:F8:1E

     inet addr:192.168.10.110 Bcast:192.168.10.255 Mask:255.255.255.0

     inet6 addr: fe80::20c:29ff:fe28:f81e/64 Scope:Link

     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

     RX packets:65 errors:0 dropped:0 overruns:0 frame:0

     TX packets:168 errors:0 dropped:0 overruns:0 carrier:0

     collisions:0 txqueuelen:1000

     RX bytes:11027 (10.7 KiB) TX bytes:16668 (16.2 KiB)

7. 查看曾经获取过的IP租约信息。

1)查看客户机的IP租约

[root@pc1 桌面]# cat /var/lib/dhclient/dhclient-eth0.leases

lease {

  interface "eth0";

  fixed-address 192.168.10.50;

  option subnet-mask 255.255.255.0;

  option dhcp-lease-time 7200;

  option routers 192.168.10.1;

  option dhcp-message-type 5;

  option dhcp-server-identifier 192.168.10.1;

  option domain-name-servers 202.106.0.20,8.8.8.8;

  option domain-name "tarena.com";

  renew 0 2014/08/17 04:13:54;

  rebind 0 2014/08/17 05:08:16;

  expire 0 2014/08/17 05:23:16;

}

[root@pc1 桌面]# cat /var/lib/dhclient/dhclient-eth1.leases

lease {

  interface "eth1";

  fixed-address 192.168.10.110;

  option subnet-mask 255.255.255.0;

  option routers 192.168.10.1;

  option dhcp-lease-time 7200;

  option dhcp-message-type 5;

  option domain-name-servers 202.106.0.20,8.8.8.8;

  option dhcp-server-identifier 192.168.10.1;

  option domain-name "tarena.com";

  renew 0 2014/08/17 04:23:14;

  rebind 0 2014/08/17 05:09:19;

  expire 0 2014/08/17 05:24:19;

}

2)查看服务端已经分配出去的IP地址信息

[root@svr5 桌面]# cat /var/lib/dhcpd/dhcpd.leases

... ...

lease 192.168.10.50 {

  starts 0 2014/08/17 03:33:04;

  ends 0 2014/08/17 05:33:04;

  cltt 0 2014/08/17 03:33:04;

  binding state active;

  next binding state free;

  hardware ethernet 00:0c:29:28:f8:14;

}



问题和经验总结

故障现象:……

解决办法:……

本文出自 “不屈姿态狂啸” 博客,请务必保留此出处http://doerj.blog.51cto.com/6212447/1541392