一:DHCP简介
Dynamic Host Configuration Protocol:动态主机配置协议,是 TCP/IP协议簇 中的一种,是一个 局域网 的网络协议,使用 UDP协议 工作。
二:在线安装dhcp服务器
本人操作时,Dhcp服务器搭建在ruby板卡上,需要ruby板卡联网在线安装dhcp服务器。
首先,ruby板卡改为dhcp动态IP,以接入外网。
其次,使用串口进行其他操作。重启板卡后,不建议使用动态IP操作putty(可能不能路由到该网址)。
动态IP配置:
vim /etc/network/interfaces
示例:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto eno1
#iface eno1 inet dhcp
iface eno1 inet static
address 10.11.12.13
netmask 255.255.255.0
network 10.11.12.0
gateway 10.11.12.1
重启服务器:
sudo /etc/init.d/networking restart
2.下载并安装DHCP服务
1)安装isc-dhcp-server:
$ sudo apt-get install isc-dhcp-server
Dhcp服务器下载安装完成后,即可将ruby板卡的动态IP改为静态IP,方便以后操作。
DHCP的主要配置文件有两个,分别位于 /etc/default/isc-dhcp-server 和 /etc/dhcp/dhcpd.conf。下面要做的就是对这两个文件进行配置。
2)配置DHCP服务
首先需要知道目标主机的网卡名称:
$ ifconfig
得到以下信息:
可以看到,目标主机的两张网卡名称分别为enp5s0f0和enp5s0f1,其中enp5s0f0可用。接下来配置 /etc/default/isc-dhcp-server 文件,
$ sudo vim /etc/default/isc-dhcp-server
将INTERFACES的内容补充为目标主机的网卡名称enp5s0f0。
配置 /etc/dhcp/dhcpd.conf 文件:
$ sudo vim /etc/dhcp/dhcpd.conf
文件内容中需要配置的是域名和子网IP等信息,以下的IP网段和板卡的静态IP网段一致。对于第一文件片段中的option domain-name “example.org” 不用修改,下一行的domain-name-server需要注释掉在第二文件片段中补充。对于第二文件片段中的白色部分,全是新添加的信息。目标主机的子网IP为192.168.19.20,因此subnet为192.168.19.0,DHCP分配范围设置为150-253,其余地址留给广播和静态IP。网关和DNS均设置为192.168.19.1,广播地址为192.168.19.255,ntp-servers和netbios-name-servers设置与DNS一致,netbios-node-type默认为8
配置完成之后重启DHCP服务:
$ sudo service isc-dhcp-server restart
查看dhcp是否正常运行:
$ sudo netstat -uap
当显示dhcpd的program name时表示dhcp服务安装配置启动成功
配置过程中的调试
第一次配置过程中很有可能出现配置失败无法启动dhcp的情况,笔者第一次配置时也是遇到了很多问题,后来发现查看日志是最可靠的方法。
查看系统日志:
$ vim /var/log/syslog
二:离线安装dhcpd服务器
获取deb包的方法:
提前在线下载完成。
apt-get -d install isc-dhcp-server
ubuntu apt-get 下载的软件包放在/var/cache/apt/archives目录下。
sudo dpkg -i *.deb
三:问题及解决方案:
问题一:Unable to locate package解决Ubuntu14.04执行apt-get install时报错
解决:sudo apt-get update
四:给客户端主机 配置固定IP
host win7 { #host+主机名
hardware ethernet 00:0C:29:9D:6A:0B; #客户端MAC地址
fixed-address 10.30.40.150; #给予的固定IP
}
五:附录:
apt-get update 和 upgrade 的区别
update 是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
upgrade 是升级已安装的所有软件包,升级之后的版本就是本地索引里的,因此,在执行 upgrade 之前一定要执行 update, 这样才能是最新的。