环境
imx6q开发板,含有两个网口,系统采用的是ubuntu16.04。
目标
如果有设备插入到eth0时,开发板自动为插入的设备分配IP地址,分配的IP为192.168.100.x。
搭建过程
1、安装isc-dhcp-server
sudo apt-get install isc-dhcp-server
2、配置DHCP服务
DHCP服务器的配置主要是修改/etc/default/isc-dhcp-server 和 /etc/dhcp/dhcpd.conf文件
修改isc-dhcp-server。添加需要通过dhcpd管理的网卡。
vim /etc/default/isc-dhcp-server
修改INTERFACES字段
注:如果需要管理多个网卡,网卡名称之间用空格隔开。如:INTERFACES=“eth0 eth1”
为已加入DHCP管理的网卡添加自动分配的IP段地址,子网掩码、默认网关等信息。
vim /etc/dhcp/dhcpd.conf
添加如下内容
如果管理了多个网卡这个就需要添加多个subnet信息。且每组信息不能再同一网段内。另外如果需要配置dns的话修改option domain-name-servers属性值,多个DNS用英文逗号隔开。
保存修改,然后去 /etc/network/interfaces中将eth0的IP地址设备成静态ip。设置如下:
auto eth0
iface eth0 inet static
address 192.168.100.1
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
重启设备或服务,通过sudo netstat -uap命令查看DHCP服务是否正常启动,如果出现有dhcpd的字样说明服务启动成功。
重启DHCP服务的命令。
sudo service isc-dhcp-server restart
如果启动错误可以通过cat /var/log/syslog 查看系统日志。建议先通过echo >/var/log/syslog将log清除,然后重启dhcp服务。因为不清除的话系统的log太多,不方便查找。
验证
搭建完成后可以找一台PC,然后用网线将PC和开发板连接起来。查看PC的网卡信息会看到自动分配的IP地址。
下表是一些dhcpd.conf中定义字段
下篇分享一个网桥的搭建过程,通过网桥为多个网卡分配同一网段的IP地址。类似路由器中所有LAN口都能分配通过网段IP地址的功能。