DNS、DHCP专业解释、dnsmasq

1、概述

域名系统(Domain Name System, DNS)是因特网的一项基础服务。它作为将域名和IP 地址相互映射一个分布式数据库,能够使人通过域名来更方便地访问互联网中的主机。
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP) 是局域网的基础服务, DHCP 是一种动态地向网络终端主机提供配置参数的协议,能够简化网络的管理。

2、DNS 的由来

历史:主机系统hosts

在主流的操作系统上,均有一个 hosts配置文件,这个配置文件的主要作用是定义IP 地址和主机名的映射关系,这个配置可以使用文本编辑器打开并进行编辑。在微软视窗操作系统的位置为 C:\Windows\System32\Drivers\etc\hosts,当用户在浏览器中输入所想访问的网址时,系统首先从这个 hosts 文件中查找域名的 IP 地址,如果找到就打开 IP 地址的网页,如果没有找到就向 DNS 服务器进行查询
在 Linux 系统,主机配置文件为/etc/hosts,这是主机名的静态查找表。这个文件是简单的文本文件,用于保存主机名称和 IP 之间对应关系。其格式为一个 IP 地址占用一行,每一个主机关联一个 IP 地址。格式如下所示:
127.0.0.1 localhost [aliases…]各个域之间用空格或制表字符分开。以“#”开头的文本行为注释行,不做处理。
目前在主流的现代操作系统中,主机系统表已经很少使用,已经被域名查找机制 DNS 取代,但它仍广泛地使用在以下 5 个场景:

  • 启动中
  • DNS 输入
  • 加快域名解析,节省网络流量
  • 屏蔽网站(域名重定向)。屏蔽广告网站,有很多网站带有广告
  • 防止 DNS 污染和 DNS 劫持

    在这里插入图片描述

3、DNS 基础

主机系统适合小型网络等一些特殊的场景。在因特网中,主机地址非常庞大,并且主机的 IP 地址经常改变,因此使用域名系统 DNS 代替主机系统。

DNS 可以被视为一种用于 TCP/IP 应用程序的分布式数据库,它提供主机名字和 IP 地址间的相互转换。这里提到的分布式是指在因特网上的单个站点不能拥有所有的信息。每个站点(如大学中的系、校园、公司或公司的部门)保留它自己的信息数据库,并运行一个服务器程序供因特网上的其他系统查询

域名结构
DNS 是一个分层级的分布式名称对应系统, 采用类似 Linux 目录树的层级结构,如图 11-1 所示。 其最顶端有一个未命名的根节点, 然后其下分为好几个基本类别名称(称为顶层域名),例如 com、 org、 net 和 gov 等 3 字符域名。例如,一个完整的域名为www.bjbook.net。域名树中的每个节点必须有一个唯一的名称,但域名树中的不同层级节点可使用相同的标识,只要在不同的父节点下即可。

在这里插入图片描述


4、DHCP 动态主机配置协议

DHCP 服务器拥有一个 IP 地址池,当任何启用 DHCP 的客户机连接到网络时,可从服务器那里租借一个 IP 地址,不再使用的 IP 地址自动回收到地址池中,供再次分配使用。
DHCP 保证同一时刻的任何 IP 地址只能分给一个客户机使用。当 DHCP 客户机重新启动时,应配置为相同的 IP 地址。在 DHCP 服务器重启的情况下,也应当给每一个客户机分配相同的 IP 地址,并且和手动分配的 IP 地址共存。这要求 DHCP 服务器对已分配的地址进行保存,并且在客户端不使用时进行回收。
DHCP 是一种动态地向网络终端提供配置参数的协议。在终端提出申请之后, DHCP服务器可以向终端提供 IP 地址及子网掩码、网关和 DNS 服务器地址等参数
DHCP 协议基于 UDP 协议,客户端的端口号是 68,服务器的端口号是 67。

udhcpd就是终端设备作为DHCP服务器

udhcpc就是终端设备作为DHCP客户端

5、dnsmasq

智能路由器服务于家庭和小型企业网络,当多个人同时上网时,客户机经常进行 DNS查询,大多查询会是重复的域名,如果有一个 DNS 缓存代理服务于局域网,这样将减少DNS 的因特网存取,加快 DNS 访问速度和节省网络流量, dnsmasq 软件就是在这种情况下应运而生的。 也就是说只有ap(路由器)才有dnsmasq,sta是没有的。dnsmasq可以理解为一个services,或者一个应用

dnsmasq 是轻量级 DHCP、 TFTP 和 DNS 缓存服务器,给小型网络提供 DNS 和 DHCP服务。 它的设计目标是轻量级的 DNS,并且占用空间小, 适用于资源受限的路由器和防火墙,以及智能手机、便携式热点设备等。

dnsmasq 接收 DNS 请求,并从本地缓存中读取,如果缓存不存在就转发到一个真正的递归 DNS 服务器。它也可以读取/etc/hosts 的内容,这样就可以对局域网的主机查询进行DNS 查询响应,这些局域网的主机名称不会暴露在全局 DNS 域中。

配置
dnsmasq 的配置文件位于/etc/config/dhcp,控制着 DNS 和 DHCP 服务选项。

在这里插入图片描述


dnsmasq 支持自定义主机或者是自定义域名,使用 domain 配置节来管理自定义域名。我们使用 uci命令来增加两条自定义域名记录。首先创建一个类型为 domain匿名的配置节,然后设置其名称和 IP 地址。示例 11-3 创建了两个匿名配置节,然后使用 uci commit 命令提交修改

root@zhang:/#uci add dhcp domain
root@zhang:/#uci set dhcp.@domain[-1].name="zhang"
root@zhang:/#uci set dhcp.@domain[-1].ip="192.168.6.10"
root@zhang:/#uci add dhcp domain
root@zhang:/#uci set dhcp.@domain[-1].name="bjbook.net"
root@zhang:/#uci set dhcp.@domain[-1].ip="192.168.6.20"
root@zhang:/#uci commit dhcp

记录被写到/etc/config/dhcp 文件中,但现在功能并未生效。调用重启 dnsmasq 进程命令来使 dnsmasq 读取这些配置更改,命令为/etc/init.d/dnsmasq restart。生效后内容如下:

config domain
	option name `zhang`
	option ip `192.168.6.10`
config domain
	option name `bjbook.net`
	option ip `192.168.6.20`

实际的配置将转换为 dnsmasq 的配置,配置文件为/var/etc/dnsmasq.conf。

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...