当前位置: 首页 > 科技观察

如何在边缘使用DNS缓存来加速您的家庭网络

时间:2023-03-16 15:40:36 科技观察

范晓波评论|关于“边际”的一些相关概念。从边缘计算的概念可以看出,云是有边界的。要连接到云的这些边界,您的数据必须连接到云提供的物理数据中心之一。在某些配置中,将数据从用户计算机传输到服务器集群可能很快,但它高度依赖于地理位置和网络结构。云本身可以尽可能快和强大,但它无法抵消数据进出云所需的延迟。答案是使用区域网络和云的边缘端。它加速了用户与云的交互,同时在边缘服务器上初始化服务或计算。按照同样的原则,您可以通过在家庭服务器上运行一些服务来创建自己的边缘端,以最大限度地减少往返延迟。不要让特殊的行话吓到你。边缘计算可能类似于IoT设备,或者运行连接到联合服务的服务非常有用,您可以对家庭或企业网络性能进行的简单更改是运行DNS缓存服务。什么是域名解析?域名系统(DNS)允许我们将服务器的IP地址转换为友好的网站名称,如opensource.com,无论它们是否为云服务。每个域名的背后都是一串数字,名字的存在是为了让人们更容易记住一些单词,而不是一串数字。当你在网络浏览器中输入example.com时,网络浏览器会静默地向DNS服务器的53端口发送一个请求,以引用域名example.com的注册地址,然后返回根据分配的最后一个已知地址域名。IP地址。这是从您的计算机到Internet的往返行程。使用正确的IP地址,您的Web浏览器会发出第二个请求,这次使用IP地址而不是域名将您定向到目的地。又是一次往返。更糟糕的是,您的计算机(取决于您的配置)也可能会向本地网络上指定的DNS服务器发送域名请求。您可以使用本地缓存切断所有这些额外的流量。当您的网络运行DNS缓存服务时,一旦您网络中的任何设备获取到某个域名对应的IP地址,该IP地址将存储在本地,您的网络不再需要再次请求该地址;此外,运行您自己的DNS缓存服务器还可以阻止广告,并通常控制网络上任何设备与互联网某些底层技术的交互。在Linux上安装Dnsmasq在Fedora、CentOS、Mageia和类似系统上使用包管理器安装Dnsmasq:安装命令:$sudodnfinstalldnsmasqdnsmasq-utils在Debian和基于Debian的系统上,使用apt方法而不是dnf。配置DnsmasqDnsmasq的默认配置文件有很多选项。它的默认配置文件位于/etc/dnsmasq.conf下,注释完善。因此您可以阅读它并选择适合您网络的配置。这里有一些我喜欢的选项。将本地域保留在本地:#Donotforwardplainnames(nodottedorpartialdomainnames)domain-needed#Donotforwardaddressesinnon-routableaddressspacesbogus-priv忽略来自常见广告站点的内容。以下语法将第一个正斜杠之间的字符串替换为末尾的地址:#替换广告网站的域名Useanipaddresswithoutadvertisementaddress=/double-click.net/127.0.0.1tosetthecachesize.默认建议是150,但我认为150对站点来说不够。#将广告网站的域名换成没有广告的ip地址address=/double-click.net/127.0.0.1找到resolve.conf在大多数Linux系统上,systemd的reslved服务管理配置文件/etc/resolv.conf,此文件控制您的计算机可以访问哪些DNS服务器以进行IP地址解析。您可以禁用已解析并单独运行dnsmasq,或者同时运行它们,指向它们自己的已解析文件。禁用:resolved$sudosystemctldisable--nowsystemd-resolved或者,同时运行它们:在这个例子中,home.local是我给定的DHCP或本地域名,所有这些设备都在我的企业和约克镇我的家庭网络上的家庭服务器,通过在此处列出它们及其本地IP地址,我可以使用dnsmasq按名称连接到它们。最后,这些名称服务项指向Internet上知名度更高的名称服务器。您可以使用此处列出的名称服务器,或您的ISP提供的名称服务器,或您喜欢的任何公共名称服务器。在您的dnsmasq.conf文件中,将resolv-file的值设置为resolvmasq.conf:resolv-file=/etc/resolvmasq.conf启动dnsmasq有些发行版可以在安装后自动启动dnsmasq。其他版本您可以在准备好后自行启动。无论哪种方式,您都可以使用systemd启动dnsmasq服务:$sudosystemdenable--nowdnsmasq使用dig命令测试它。当您第一次联系服务器时,查询时间可能在50到500毫秒之间(希望不要超过):$digexample.com|grep查询\时间;;查询时间:56毫秒但是,下次尝试时,查询时间将大大减少:$digexample.com|grep查询\时间;;查询时间:0毫秒结果好多了!为你的整个网络启用dnsmasqdnsmasq在单个设备上是一个非常有用的工具,如果你能让网络上的所有设备都使用它就更好了。以下是将dnsmasq服务暴露给整个本地网络的方法:获取运行dnsmasq服务的服务器的IP地址在正在运行的计算机上运行dnsmasq以获取本地IP地址:$digexample.com|grep查询\时间;;查询时间:0毫秒在这个例子中,我运行dnsmasq的树莓派的IP地址是10.0.170.170。由于RaspberryPi现在是我网络结构的重要组成部分,我让它的地址由我的DHCP路由器静态分配。如果我允许它获得一个动态IP地址,它可能不会改变(DHCP旨在以这种方式提供帮助),但如果它改变了,那么我的整个网络将无法使用dnsmasq来提供优化。修改服务器的防火墙以允许端口53上的流量使用firewall-cmd打开服务器防火墙中的端口,以便它允许DNS请求并发送响应。$sudofirewall-cmd--add-servicedns--permanent将服务器的IP地址添加到你家路由器的域名服务项中。知道我本地DNS服务器的地址是10.0.170.170(记住,它在您自己的网络上几乎肯定会有所不同),我可以将它添加到我的家庭路由器上作为主要名称服务器。现在有很多路由器,没有单一的接口。但是,任务是相同的,不同模型的工作流程通常是比较相似的。在我的TurrisOmnia路由器中,高级接口允许DNS转发,它将DNS请求发送到我选择的服务器。在此处输入10.0.170.170(我的dnsmasq服务器的IP地址)会强制所有DNS流量通过Dnsmasq进行路由以进行缓存和解析。另一方面,在我的TP-Link路由器中,DNS设置是在DHCP面板中配置的。可能需要多挖掘一点,所以不要着急在路由器的接口界面中寻找DNS服务设置。当你找到它时,输入你的Dnsmasq服务器地址,然后保存更改。某些型号在进行更改时要求路由器重新启动。您网络上的所有设备都继承了路由器的设置,因此从设备到互联网的所有DNS流量现在都将通过Dnsmasq服务器。更靠近边缘端随着越来越多的网站被添加到服务器的DNS缓存中,越来越少的DNS流量比本地Dnsmasq服务器上的DNS流量传输得更远。本地尽可能快的计算原则推动了边缘计算的发展。仅从这个练习中,您就可以想象这项技术在使用地理定位策略加速Internet交互方面有多么重要。无论您是在家里、在工作中还是作为云架构师从事边缘计算,边缘都是云的重要组成部分,您可以利用它来发挥自己的优势。译者介绍范晓波,51CTO社区编辑,高级网络安全工程师。精通SDN、SD-WAN、VPN、NFV等网络相关技术。精通二层和三层网络转发。熟悉DPDK、VPP、OVS高性能网络开源框架。喜欢打羽毛球,做饭。原标题:通过边缘DNS缓存提升您的家庭网络,作者SethKenlon