首页 > 代码库 > 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客户端,并模拟担任网络打印机。
实验步骤
1. 两台虚拟机的网络连接设置为“VMnet4”。其中pc1添加两块网卡,网络连接都设置为“VMnet4”,一块做客户端,另一块模拟打印机。网络连接相当于一个交换机,选择哪个连接都行,只要两台虚拟机在同一个网络连接。
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