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污染