ubuntu 16.04 搭建DHCP服务器
前言
网络操作系统课程的实验课程
实验过程
实验环境:
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 | sudo netstat -nupl | grep dhcpd |
总结
再后面复现的时候发现,我更改ip地址池内的ip后,重新获取ip,却没能实现,我曾经去个网站找原因,包括一些外国网站,有发现说是isc-dhcp-server的bug,然后我尝试去找解决方法,无果。后面同学说要将vm中的dhcp关掉再获取即可解决:
(注意:这边要关掉需要管理员权限!)
关掉vm中的dhcp后要将原来网卡的dhcp进程杀死在开启重新获取ip:
1 | sudo dhclient ens33 -r |
然后重新查看ip发现真的重新获取到了ip!很感谢!
参考链接:
https://blog.csdn.net/u010177634/article/details/53044777
https://blog.csdn.net/Frank_Abagnale/article/details/79283209
原文作者: fzykn06
原文链接: http://fzykn06.github.io/2019/04/21/ubuntu-16-04-搭建DHCP服务器/
版权声明: 转载请注明出处(必须保留作者署名及链接)