前言

网络操作系统课程的实验课程

实验过程

实验环境:

VMware Workstation 15.0.0

ubuntu 16.04

实验原理:

DHCP服务器是为客户端机器分配IP地址的,所有分配的IP地址都保存在DHCP服务器的数据库中。为了在子网中实现DHCP分配IP地址,需要在目标主机上安装配置DHCP服务

安装DHCP服务

安装isc-dhcp-server:

1
sudo apt install isc-dhcp-server

DHCP的主要配置文件有两个,分别位于/etc/default/isc-dhcp-server 和 /etc/dhcp/dhcpd.conf

配置DHCP服务

首先要知道目标主机的网卡名称,使用命令:

1
ifconfig

得到以下信息:

我们可以看到,目标主机有一张网卡ens33是可以使用的,部分机型有两张网卡,如果两张网卡都可以使用,可以一张外网一张内网,如果两张网卡只有一张有用,那么选择有用的网卡进行操作。接下来就是配置 /etc/default/isc-dhcp-server 文件。

1
sudo vim /etc/default/isc-dhcp-server

将INTERFACES的内容补充为目标主机的网卡名称ens33 (想要更改里面的内容,按 i 进入插入模式,esc 退出插入模式 :wq 保存退出)

保存退出

配置 /etc/dhcp/dhcpd.conf 文件:

1
sudo vim /etc/dhcp/dhcpd.conf

文件中需要配置的是域名和子网ip等信息,对于第一文件片中的option domain-name “example.org” 不用修改,下一行的domain-name-server 需要注释掉在第二行片段中补充。

下面这个文件片段中的白色部分全是新添加的信息。目标主机的子网ip为192.168.75.153,因此subnet为192.168.75.0,DHCP分配范围设置为200-253,其余的地址留给广播和静态ip。网关和DNS均设置为192.168.75.1,广播地址为192.168.75.255,ntp-server和netbios-name-server设置与DNS一致,netbios-node-type默认为8 (此处的ip地址需要根据自己的实际情况来分配!)

保存退出

配置完成之后重启DHCP服务器:

1
sudo service isc-dhcp-server restart

查看dhcp是否正常运行:

1
sudo netstat -uap

当显示的dhcpd的program name时表示dhcp服务安装配置启动成功

配置过程中的调试

第一次配置过程中的很可能出现配置失败无法启动dhcp的情况,可以查看日志来寻找错误的地方:

1
vim /var/log/syslog

上面记录了失败的原因,定位到行,能比较少有效的减少花在错误配置上面的分析时间。

例如:我之前在配置时出现了配置名称没有全,但是配置失败,查看日志出现以下内容,红框内为报错,黄框内为错误行所在的地方!

或者使用

1
2
3
sudo netstat -nupl | grep dhcpd

sudo dhcpd -d

总结

再后面复现的时候发现,我更改ip地址池内的ip后,重新获取ip,却没能实现,我曾经去个网站找原因,包括一些外国网站,有发现说是isc-dhcp-server的bug,然后我尝试去找解决方法,无果。后面同学说要将vm中的dhcp关掉再获取即可解决:

(注意:这边要关掉需要管理员权限!)

关掉vm中的dhcp后要将原来网卡的dhcp进程杀死在开启重新获取ip:

1
2
sudo dhclient ens33 -r
sudo dhclient ens33

然后重新查看ip发现真的重新获取到了ip!很感谢!

参考链接:

https://blog.csdn.net/u010177634/article/details/53044777
https://blog.csdn.net/Frank_Abagnale/article/details/79283209