不卡av在线播放_欧美成人AU在线看_亚洲一区二区 视频_五月天亚洲无码伊人

Article / 文章中心

如何在邊緣側(cè)利用DNS緩存來(lái)加速家用網(wǎng)絡(luò)

發(fā)布時(shí)間:2022-03-31 點(diǎn)擊數(shù):672

譯者 | 范曉波

審校 | 孫淑娟 梁策

如果你在過(guò)去幾年里已經(jīng)聽(tīng)說(shuō)了很多關(guān)于“云”的討論,那么你可能也聽(tīng)說(shuō)過(guò)關(guān)于“邊緣側(cè)”一些相關(guān)概念。

編輯搜圖

從邊緣計(jì)算的概念可以看出云是有邊界的。要連接到云的這些邊界,你的數(shù)據(jù)必須與云提供的物理數(shù)據(jù)中心之一連接。在一些配置下,將數(shù)據(jù)從用戶(hù)計(jì)算機(jī)傳輸?shù)椒?wù)器群集可能很快,但它對(duì)地理位置和網(wǎng)絡(luò)結(jié)構(gòu)的依賴(lài)程度很大。云本身可以盡可能快速和強(qiáng)大,但它無(wú)法抵消你的數(shù)據(jù)進(jìn)行往返所需的時(shí)延。

答案就是使用區(qū)域網(wǎng)絡(luò)和云的邊緣側(cè)。當(dāng)在邊緣的服務(wù)器上進(jìn)行初始化服務(wù)或計(jì)算時(shí),它會(huì)加快用戶(hù)與云的交互速度。

根據(jù)同樣的原理,你可以通過(guò)在家用服務(wù)器上運(yùn)行一些服務(wù)來(lái)創(chuàng)建自己的邊緣側(cè),以最大限度地減少往返時(shí)延。不要讓特殊術(shù)語(yǔ)嚇到你。邊緣計(jì)算可能像物聯(lián)網(wǎng)設(shè)備或運(yùn)行一個(gè)服務(wù)連接到聯(lián)邦服務(wù)頗為特別有用且簡(jiǎn)單的改變,你就可以使你的家用或企業(yè)網(wǎng)絡(luò)性能得到增強(qiáng),即運(yùn)行DNS緩存服務(wù)。

什么是域名解析?

域名系統(tǒng)(DNS)使我們能夠?qū)⒎?wù)器的IP地址轉(zhuǎn)換為像opensource.com這樣友好的網(wǎng)站名稱(chēng),無(wú)論他們是上云服務(wù)還是沒(méi)有上云的服務(wù)。

每個(gè)域名的背后都是一串?dāng)?shù)字,而名字是來(lái)方便人們的,因?yàn)樗麄兏锌赡苡涀讉€(gè)單詞,而不是一串?dāng)?shù)字。當(dāng)你在Web瀏覽器中鍵入example.com內(nèi)容時(shí),Web瀏覽器會(huì)靜默地通過(guò)端口53向 DNS 服務(wù)器發(fā)送請(qǐng)求,去引用域名example.com的注冊(cè)地址,然后返回根據(jù)該域名分配的最后一個(gè)已知IP地址。

這是從你的計(jì)算機(jī)到互聯(lián)網(wǎng)的一次往返。

有了正確的IP地址,你的Web瀏覽器就會(huì)發(fā)出第二個(gè)請(qǐng)求,這次是用IP地址而不是用域名直接訪問(wèn)你的目的地址。

這是另一次往返。

更糟糕的是,你的計(jì)算機(jī)(和你的配置有關(guān))也可能會(huì)向你本地網(wǎng)絡(luò)上指定DNS服務(wù)器發(fā)送域名請(qǐng)求。

你可以使用本地緩存切斷所有這些額外的流量。在你的網(wǎng)絡(luò)上運(yùn)行DNS緩存服務(wù)時(shí),一旦你網(wǎng)絡(luò)上的任何一臺(tái)設(shè)備獲得一個(gè)域名對(duì)應(yīng)的IP地址,該IP地址就會(huì)被存儲(chǔ)在本地,因此你的網(wǎng)絡(luò)就不再需要再次請(qǐng)求這個(gè)地址;此外,運(yùn)行你自己的DNS緩存服務(wù)器還可以屏蔽廣告,而且通常也能用一些互聯(lián)網(wǎng)的一些底層技術(shù)控制你的網(wǎng)絡(luò)上的任何設(shè)備進(jìn)行交互。

在Linux上安裝Dnsmasq

使用包管理器安裝 Dnsmasq

在 Fedora、CentOS、Mageia 和類(lèi)似系統(tǒng)上:

安裝命令:

復(fù)制
$ sudo dnf install dnsmasq dnsmasq-utils1.

在Debian和基于Debian的系統(tǒng)上,請(qǐng)使用apt方式代替dnf。

配置Dnsmasq

Dnsmasq的默認(rèn)配置文件中有許多選項(xiàng)。

它的默認(rèn)配置文件的位置在/etc/dnsmasq.conf下,注釋很完善。因此你可以通過(guò)閱讀它,選擇適合你網(wǎng)絡(luò)的配置。

以下是我喜歡的一些選項(xiàng)。

保存你的本地域在本地:

復(fù)制
#不轉(zhuǎn)發(fā)純名稱(chēng)(沒(méi)有點(diǎn)分格式或部分域名)domain-needed#不轉(zhuǎn)發(fā)非路由地址空間中的地址bogus-priv1.2.3.4.

忽略來(lái)自常見(jiàn)廣告網(wǎng)站的內(nèi)容。以下語(yǔ)法將第一個(gè)正斜杠之間的字符串替換為尾部的地址:

復(fù)制
#替換廣告網(wǎng)站域名用一個(gè)沒(méi)有廣告的ip地址address=/double-click.net/127.0.0.11.2.

設(shè)置緩存大小。默認(rèn)建議是150,但我不覺(jué)得150個(gè)網(wǎng)站足夠。

復(fù)制
#替換廣告網(wǎng)站域名用一個(gè)沒(méi)有廣告的ip地址address=/double-click.net/127.0.0.11.2.

查找 resolve.conf

在大多數(shù) Linux 系統(tǒng)上,systemd的reslved服務(wù)管理配置文件/etc/resolv.conf,該文件控制你的計(jì)算機(jī)可以訪問(wèn)哪些DNS服務(wù)器進(jìn)行IP地址解析。

您可以禁用resolved并單獨(dú)運(yùn)行dnsmasq,也可以同時(shí)運(yùn)行它們,指向其自己的解析文件。

復(fù)制
禁用:resolved$ sudo systemctl disable --now systemd-resolved1.2.

或者,同時(shí)運(yùn)行它們:

在這個(gè)示例中,home.local是我給定的一個(gè)要么是DHCP,要么是本地的域名,所有的這些設(shè)備都在我的家用網(wǎng)絡(luò)里,enterprise 和 yorktown是我的家用服務(wù)器,通過(guò)在此處列出它們及其本地IP地址,我就能借助dnsmasq通過(guò)域名連接他們。最后,這些域名服務(wù)項(xiàng)目指向互聯(lián)網(wǎng)上已知的比較好的域名服務(wù)器。你可以使用此處列出的名稱(chēng)服務(wù)器,也可以使用ISP提供的域名服務(wù)器或你喜歡的任何公共域名服務(wù)器。

在你的dnsmasq.conf文件中,設(shè)置resolv-file的值為resolvmasq.conf:

復(fù)制
resolv-file=/etc/resolvmasq.conf1.

啟動(dòng)dnsmasq

某些發(fā)行版可以安裝后自動(dòng)啟動(dòng)dnsmasq。別的版本當(dāng)你準(zhǔn)備好的時(shí)候,你可以自己?jiǎn)?dòng)它。無(wú)論哪種方式,你都可以使用 systemd 啟動(dòng)dnsmasq服務(wù):

復(fù)制
$ sudo systemd enable --now dnsmasq1.

使用dig命令對(duì)其進(jìn)行測(cè)試。

當(dāng)你首次聯(lián)系服務(wù)器時(shí),查詢(xún)時(shí)間可能在50到500毫秒之間(希望不超過(guò)此時(shí)間):

復(fù)制
$ dig example.com | grep Query\ time;; Query time: 56 msec1.2.

然而,下次嘗試時(shí),查詢(xún)時(shí)間會(huì)大大減少:

復(fù)制
$ dig example.com | grep Query\ time;; Query time: 0 msec1.2.

結(jié)果好多了!

為你的整個(gè)網(wǎng)絡(luò)啟用 dnsmasq

Dnsmasq在一臺(tái)設(shè)備上就已是很有用的工具,如果你能讓網(wǎng)絡(luò)上的所有設(shè)備都使用它那只會(huì)更好。

以下是怎樣開(kāi)放dnsmasq服務(wù)給你的全部本地網(wǎng)絡(luò)的方法:

獲取運(yùn)行dnsmasq服務(wù)的服務(wù)器的 IP 地址

在運(yùn)行的計(jì)算機(jī)上運(yùn)行dnsmasq,獲取本地 IP 地址:

復(fù)制
$ dig example.com | grep Query\ time;; Query time: 0 msec1.2.

在這個(gè)示例中,我運(yùn)行dnsmasq的樹(shù)莓派的IP地址是 10.0.170.170。由于樹(shù)莓派現(xiàn)在是我的網(wǎng)絡(luò)結(jié)構(gòu)的重要組成部分,因此我讓它的地址是由我的 DHCP 路由器靜態(tài)分配。如果我允許它獲得一個(gè)動(dòng)態(tài)的IP地址,它可能不會(huì)改變(DHCP被設(shè)計(jì)成以這種方式提供幫助),但如果它這樣做,那么我的整個(gè)網(wǎng)絡(luò)將不能使用dnsmasq提供優(yōu)化。

修改服務(wù)器的防火墻以允許端口53上的流量

使用 firewall-cmd打開(kāi)你的服務(wù)器防火墻中的端口,以便它允許 DNS 請(qǐng)求和發(fā)送響應(yīng)。

復(fù)制
$ sudo firewall-cmd --add-service dns --permanent1.

將服務(wù)器的IP地址添加到你家用路由器的域名服務(wù)項(xiàng)中。

知道了我的本地DNS服務(wù)器的地址是10.0.170.170(記住,在你自己的網(wǎng)絡(luò)上幾乎肯定是不同的),我可以添加它在家用路由器上作為主要域名服務(wù)器。

現(xiàn)在有很多路由器,沒(méi)有單一的接口。

但是,任務(wù)是相同的,不同模型的工作流通常是相對(duì)相似的。

在我的Turris Omnia路由器中,高級(jí)接口允許DNS轉(zhuǎn)發(fā),這會(huì)將DNS請(qǐng)求發(fā)送到我選擇的服務(wù)器。

在此處輸入10.0.170.170(我的dnsmasq服務(wù)器的IP地址)會(huì)強(qiáng)制所有DNS流量通過(guò) Dnsmasq 進(jìn)行路由以進(jìn)行緩存和解析。另一方面,在我的TP-Link路由器中,DNS設(shè)置是在DHCP面板中配置的。

可能需要再多做些探索,所以無(wú)需擔(dān)心在你路由器的接口界面中尋找DNS服務(wù)設(shè)置。當(dāng)你找到它后,輸入你的Dnsmasq服務(wù)器地址,然后保存更改。

某些型號(hào)要求路由器在進(jìn)行更改時(shí)需要重新啟動(dòng)。

你的網(wǎng)絡(luò)上的所有設(shè)備都從路由器繼承設(shè)置,因此現(xiàn)在從設(shè)備傳遞到互聯(lián)網(wǎng)的所有 DNS 流量都將通過(guò) Dnsmasq 服務(wù)器。

靠近邊緣側(cè)

隨著越來(lái)越多的網(wǎng)站被添加到服務(wù)器的DNS緩存中,比本地Dnsmasq服務(wù)器上的DNS流量傳輸更遠(yuǎn)的DNS流量將越來(lái)越少。

盡可能在本地快速計(jì)算的原則推動(dòng)了邊緣計(jì)算的發(fā)展。僅通過(guò)這個(gè)練習(xí),你就可以想象這項(xiàng)技術(shù)在利用地理位置策略加速互聯(lián)網(wǎng)交互方面是多么的重要。

無(wú)論你是在家中、在工作中還是作為云架構(gòu)師從事邊緣計(jì)算工作,邊緣都是云的重要組成部分,你可以利用它來(lái)讓自己的優(yōu)勢(shì)盡情發(fā)揮。