Paano nakatira ang home Internet at mga istatistika ng domain name server?

Ang isang home router (sa kasong ito FritzBox) ay maaaring mag-record ng maraming: kung gaano karaming trapiko ang nangyayari kung kailan, sino ang nakakonekta sa kung anong bilis, atbp. Nakatulong sa akin ang isang domain name server (DNS) sa lokal na network na malaman kung ano ang nakatago sa likod ng mga hindi kilalang tatanggap.

Sa pangkalahatan, nagkaroon ng positibong epekto ang DNS sa home network: nagdagdag ito ng bilis, katatagan, at kakayahang pamahalaan.

Nasa ibaba ang isang diagram na nagbangon ng mga tanong at ang pangangailangang maunawaan kung ano ang nangyayari. Sinasala na ng mga resulta ang mga kilala at gumaganang kahilingan sa mga server ng domain name.

Bakit 60 hindi kilalang domain ang sinusuri araw-araw habang natutulog pa ang lahat?

Araw-araw, 440 hindi kilalang domain ang sinusuri sa mga aktibong oras. Sino sila at ano ang ginagawa nila?

Average na bilang ng mga kahilingan bawat araw bawat oras

Paano nakatira ang home Internet at mga istatistika ng domain name server?

Query sa ulat ng SQL

WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
	CASE SUBSTR(DATE_NK,4,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT
  1 as 'Line: DNS Requests per Day for Hours',
  strftime('%H:00', datetime(EVENT_DT, 'unixepoch')) AS 'Day',
  ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS 'Requests per Day'
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
  AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
GROUP BY /* hour aggregate */
  strftime('%H:00', datetime(EVENT_DT, 'unixepoch'))
ORDER BY strftime('%H:00', datetime(EVENT_DT, 'unixepoch'))

Sa gabi, naka-disable ang wireless na access at inaasahan ang aktibidad ng device, i.e. walang polling para sa mga hindi kilalang domain. Nangangahulugan ito na ang pinakadakilang aktibidad ay nagmumula sa mga device na may mga operating system gaya ng Android, iOS at Blackberry OS.

Ilista natin ang mga domain na masinsinang sinusuri. Ang intensity ay tutukuyin sa pamamagitan ng mga parameter gaya ng bilang ng mga kahilingan bawat araw, ang bilang ng mga araw ng aktibidad at kung gaano karaming oras ng araw na napansin ang mga ito.

Lahat ng inaasahang suspek ay nasa listahan.

Intensively polled domain

Paano nakatira ang home Internet at mga istatistika ng domain name server?

Query sa ulat ng SQL

WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
	CASE SUBSTR(DATE_NK,4,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT 
  1 as 'Table: Havy DNS Requests',
  REQUEST_NK AS 'Request',
  DOMAIN AS 'Domain',
  REQ AS 'Requests per Day',
  DH AS 'Hours per Day',
  DAYS AS 'Active Days'
FROM (
SELECT
  REQUEST_NK, MAX(DOMAIN) AS DOMAIN,
  COUNT(DISTINCT REQUEST_NK) AS SUBD,
  COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))) AS DAYS,
  ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS REQ,
  ROUND(1.0*COUNT(DISTINCT strftime('%d.%m %H', datetime(EVENT_DT, 'unixepoch')))/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS DH
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
  AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
GROUP BY REQUEST_NK )
WHERE DAYS > 9 -- long period
ORDER BY 4 DESC, 5 DESC
LIMIT 20

Hinaharang namin ang isс.blackberry.com at iceberg.blackberry.com, na bibigyang-katwiran ng manufacturer para sa mga kadahilanang pangseguridad. Resulta: kapag sinusubukang kumonekta sa WLAN, ipinapakita nito ang login page at hindi na muling kumonekta kahit saan. I-unblock natin ito.

Ang detectportal.firefox.com ay ang parehong mekanismo, ipinatupad lamang sa Firefox browser. Kung kailangan mong mag-log in sa WLAN network, ipapakita muna nito ang login page. Hindi lubos na malinaw kung bakit dapat i-ping nang madalas ang address, ngunit ang mekanismo ay malinaw na inilarawan ng tagagawa.

skype. Ang mga aksyon ng program na ito ay katulad ng isang uod: nagtatago ito at hindi basta-basta pinapayagan ang sarili na mapatay sa taskbar, bumubuo ng maraming trapiko sa network, nag-ping ng 10 na domain bawat 4 minuto. Kapag gumagawa ng isang video call, ang koneksyon sa Internet ay patuloy na nasisira, kapag hindi ito maaaring maging mas mahusay. Sa ngayon ito ay kinakailangan, kaya ito ay nananatili.

upload.fp.measure.office.com - tumutukoy sa Office 365, hindi ako makahanap ng isang disenteng paglalarawan.
browser.pipe.aria.microsoft.com - Hindi ako makahanap ng disenteng paglalarawan.
Hinaharang namin pareho.

connect.facebook.net - Facebook chat application. Labi.

mediator.mail.ru Ang isang pagsusuri sa lahat ng mga kahilingan para sa domain ng mail.ru ay nagpakita ng pagkakaroon ng isang malaking bilang ng mga mapagkukunan ng advertising at mga kolektor ng istatistika, na nagdudulot ng kawalan ng tiwala. Ang domain ng mail.ru ay ganap na ipinadala sa blacklist.

google-analytics.com - hindi nakakaapekto sa functionality ng mga device, kaya hinarangan namin ito.
doubleclick.net - binibilang ang mga pag-click sa advertising. Hinaharang namin.

Maraming kahilingan ang pumunta sa googleapis.com. Ang pagharang ay humantong sa masayang pagsasara ng mga maiikling mensahe sa tablet, na tila hangal sa akin. Ngunit ang playstore ay tumigil sa paggana, kaya't i-unblock natin ito.

cloudflare.com - isinusulat nila na mahilig sila sa open source at, sa pangkalahatan, marami silang isinulat tungkol sa kanilang sarili. Ang intensity ng domain survey ay hindi lubos na malinaw, na kadalasang mas mataas kaysa sa aktwal na aktibidad sa Internet. Iwanan muna natin.

Kaya, ang intensity ng mga kahilingan ay madalas na nauugnay sa kinakailangang pag-andar ng mga device. Ngunit natuklasan din ang mga sumobra sa aktibidad.

Ang pinaka una

Kapag naka-on ang wireless Internet, tulog pa rin ang lahat at posibleng makita kung aling mga kahilingan ang unang ipinadala sa network. Kaya, sa 6:50 nag-o-on ang Internet at sa unang sampung minutong yugto ng panahon 60 na domain ang sinusuri araw-araw:

Paano nakatira ang home Internet at mga istatistika ng domain name server?

Query sa ulat ng SQL

WITH CLS AS ( /* prepare unique requests */
SELECT
DISTINCT DATE_NK,
STRFTIME( '%s', SUBSTR(DATE_NK,8,4) || '-' ||
	CASE SUBSTR(DATE_NK,4,3)
	WHEN 'Jan' THEN '01' WHEN 'Feb' THEN '02' WHEN 'Mar' THEN '03' WHEN 'Apr' THEN '04' WHEN 'May' THEN '05' WHEN 'Jun' THEN '06'
	WHEN 'Jul' THEN '07' WHEN 'Aug' THEN '08' WHEN 'Sep' THEN '09' WHEN 'Oct' THEN '10' WHEN 'Nov' THEN '11'
	ELSE '12' END || '-' || SUBSTR(DATE_NK,1,2) || ' ' || SUBSTR(TIME_NK,1,8) ) AS EVENT_DT,
REQUEST_NK, DOMAIN
FROM STG_BIND9_LOG )
SELECT
  1 as 'Table: First DNS Requests at 06:00',
  REQUEST_NK AS 'Request',
  DOMAIN AS 'Domain',
  REQ AS 'Requests',
  DAYS AS 'Active Days',
  strftime('%H:%M', datetime(MIN_DT, 'unixepoch')) AS 'First Ping',
  strftime('%H:%M', datetime(MAX_DT, 'unixepoch')) AS 'Last Ping'
FROM (
SELECT
  REQUEST_NK, MAX(DOMAIN) AS DOMAIN,
  MIN(EVENT_DT) AS MIN_DT,
  MAX(EVENT_DT) AS MAX_DT,
  COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))) AS DAYS,
  ROUND(1.0*SUM(1)/COUNT(DISTINCT strftime('%d.%m', datetime(EVENT_DT, 'unixepoch'))), 1) AS REQ
FROM CLS
WHERE DOMAIN NOT IN ('in-addr.arpa', 'IN-ADDR.ARPA', 'local', 'dyndns', 'nas', 'ntp.org')
  AND datetime(EVENT_DT, 'unixepoch') > date('now', '-20 days')
  AND strftime('%H', datetime(EVENT_DT, 'unixepoch')) = strftime('%H', '2019-08-01 06:50:00')
GROUP BY REQUEST_NK
 )
WHERE DAYS > 3 -- at least 4 days activity
ORDER BY 5 DESC, 4 DESC

Sinusuri ng Firefox ang koneksyon sa WLAN para sa pagkakaroon ng isang pahina sa pag-login.
Pining ng Citrix ang server nito kahit na hindi aktibong tumatakbo ang application.
Bine-verify ng Symantec ang mga sertipiko.
Sinusuri ng Mozilla ang mga update, kahit na sa mga setting ay hiniling kong huwag gawin ito.

Ang mmo.de ay isang serbisyo sa paglalaro. Malamang na ang kahilingan ay sinimulan ng facebook chat. Hinaharang namin.

Isaaktibo ng Apple ang lahat ng mga serbisyo nito. api-glb-fra.smoot.apple.com - batay sa paglalarawan, ang bawat pag-click sa pindutan ay ipinadala dito para sa mga layunin ng pag-optimize ng search engine. Lubos na kahina-hinala, ngunit nauugnay sa functionality. Iniwan natin.

Ang sumusunod ay isang mahabang listahan ng mga kahilingan sa microsoft.com. Bina-block namin ang lahat ng domain simula sa ikatlong antas.

Bilang ng pinakaunang mga subdomain
Paano nakatira ang home Internet at mga istatistika ng domain name server?

Kaya, ang unang 10 minuto ng pag-on sa wireless Internet.
Pinoll ng iOS ang pinakamaraming subdomain - 32. Sinusundan ng Android - 24, pagkatapos ay Windows - 15 at panghuli Blackberry - 9.
Ang application ng facebook lamang ay bumoto ng 10 domain, skype polls 9 na domain.

Pinagmulan ng impormasyon

Ang pinagmulan para sa pagsusuri ay ang bind9 local server log file, na naglalaman ng sumusunod na format:

01-Aug-2019 20:03:30.996 client 192.168.0.2#40693 (api.aps.skype.com): query: api.aps.skype.com IN A + (192.168.0.102)

Ang file ay na-import sa isang sqlite database at sinuri gamit ang mga query sa SQL.
Ang server ay gumaganap bilang isang cache; ang mga kahilingan ay nagmumula sa router, kaya palaging may isang kahilingan na kliyente. Ang isang pinasimple na istraktura ng talahanayan ay sapat, i.e. Ang ulat ay nangangailangan ng oras ng kahilingan, ang kahilingan mismo, at ang pangalawang antas na domain para sa pagpapangkat.

Mga talahanayan ng DDL

CREATE TABLE STG_BIND9_LOG (
  LINE_NK       INTEGER NOT NULL DEFAULT 1,
  DATE_NK       TEXT NOT NULL DEFAULT 'n.a.',
  TIME_NK       TEXT NOT NULL DEFAULT 'n.a.',
  CLI           TEXT, -- client
  IP            TEXT,
  REQUEST_NK    TEXT NOT NULL DEFAULT 'n.a.', -- requested domain
  DOMAIN        TEXT NOT NULL DEFAULT 'n.a.', -- domain second level
  QUERY         TEXT,
  UNIQUE (LINE_NK, DATE_NK, TIME_NK, REQUEST_NK)
);

Pagbubuhos

Kaya, bilang resulta ng pagsusuri ng log ng domain name server, higit sa 50 mga tala ang na-censor at inilagay sa listahan ng harang.

Ang pangangailangan ng ilang mga query ay mahusay na inilarawan ng mga tagagawa ng software at nagbibigay inspirasyon sa kumpiyansa. Gayunpaman, karamihan sa aktibidad ay walang batayan at kaduda-dudang.

Pinagmulan: www.habr.com

Magdagdag ng komento