DHCP & DNS Configuration for router | 为路由器配置DHCP和DNS服务

2019 09 6, Fri

之前我们配置了一个最核心的路由器,他只负责数据的交换(路由转发),和IP地址的翻译(NAT)。而设备的IP地址和各种网络有关的设置,都是我们手动分配的。

那么有没有办法自动分配这些信息呢?

当然有啦

理论部分 | BOOTP协议

英明神武的前辈们也是懒人(我们也是啊,懒人创造世界)。

这些前辈为了能更懒一些,制定了一个协议叫BOOTP协议,BOOTP协议可以做什么呢?

分配IP地址

BOOTP协议的主要用途就是分配IP地址。当一个客户端要接入一个网络的时候,它就会向这个网络广播一个消息,如果一个网络有DHCP服务器的话,那么DHCP服务器就会给这个Client分配一个IP地址。

分配DNS、路由表之类的配置

BOOTP除了分配IP地址这个核心功能以外,还可以有非常多的拓展。其中最常见常用的就是分配DNS配置和路由信息。

PXE

很多电脑支持从PXE启动,也就是从网络启动一个系统。我们也经常用PXE+kickstart之类的技术批量安装系统。这也是依赖于BOOTP,同时也需要HTTP或者是TFTP之类的其他协议和服务器协助。

实施细节 | dnsmasq

Linux 下有一个应用非常广的服务叫dnsmasq。Ubuntu默认就会安装,作为本地的dns缓存。当然我们现在用的主要是他DHCP的部分,DNS的部分顺带一用就好了

安装过程不用编译

DHCP配置

大部分发行版都会自带一个dnsmasq的配置。

配置文件位于/etc/dnsmasq.comf。前面的大部分,包括port=53,都是DNS的设置。我们暂时不管,直接跳到后面

需要监听的网口

默认情况下(把有关的配置都注释掉),dnsmasq会监听所有网卡上的请求。如果你不想这么做

#interface=<内网网口设备名>
interface=ens1f0
bind-interfaces

DHCP:分配IP

#dhcp-range=<start>,<end>,<mask>,<lease>
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,12h

DHCP: DNS服务器地址和网关

# 6 是DNS服务器
dhcp-option=6,114.114.114.114
# 3 是默认网关
dhcp-option=3,192.168.1.1

其他选项

以后再说

让dnsmasq接管网络DHCP

dhcp-authoritative

合起来

# 最基础的配置项
interface=ens1f0
bind-interfaces

dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,12h

dhcp-option=6,114.114.114.114
# 3 是默认网关
dhcp-option=3,192.168.1.1


dhcp-authoritative

DNS配置

下一篇

试试

把手机电脑配置为自动连接,不手动设置任何选项,看看能不能上网

思考一下

什么我们需要dhcp-authoritative这个选项

下一篇

我们会配置DNS,以防止DNS污染