Uy Interneti qanday ishlaydi va domen nomi serveri statistikasi?

Uy routeri (bu holda FritzBox) juda ko'p narsalarni yozib olishi mumkin: qancha trafik qachon ketmoqda, kim qanday tezlikda ulangan va hokazo. Mahalliy tarmoqdagi domen nomlari serveri (DNS) menga noma'lum qabul qiluvchilar orqasida nima yashiringanligini aniqlashga yordam berdi.

Umuman olganda, DNS uy tarmog'iga ijobiy ta'sir ko'rsatdi: u tezlik, barqarorlik va boshqaruvni qo'shdi.

Quyida savollar va nima bo'layotganini tushunish zarurligini ko'rsatadigan diagramma keltirilgan. Natijalar allaqachon domen nomi serverlariga ma'lum va ishlaydigan so'rovlarni filtrlaydi.

Nega har kuni hamma uxlab yotganida 60 ta noaniq domenlar so'raladi?

Har kuni faol soatlarda 440 ta noma'lum domen so'roq qilinadi. Ular kimlar va nima qilishadi?

Kuniga soatiga o'rtacha so'rovlar soni

Uy Interneti qanday ishlaydi va domen nomi serveri statistikasi?

SQL hisobot so'rovi

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'))

Kechasi simsiz ulanish o'chirilgan va qurilma faoliyati kutilmoqda, ya'ni. noma'lum domenlar uchun so'rov yo'q. Bu shuni anglatadiki, eng katta faoliyat Android, iOS va Blackberry OS kabi operatsion tizimlarga ega qurilmalardan keladi.

Keling, intensiv so'rov o'tkaziladigan domenlarni sanab o'tamiz. Intensivlik kuniga so'rovlar soni, faoliyat kunlari soni va ular kunning necha soatida sezilganligi kabi parametrlar bilan belgilanadi.

Roβ€˜yxatda barcha kutilgan gumondorlar bor edi.

Intensiv so'rov qilingan domenlar

Uy Interneti qanday ishlaydi va domen nomi serveri statistikasi?

SQL hisobot so'rovi

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

Biz ishlab chiqaruvchi xavfsizlik nuqtai nazaridan oqlaydigan iss.blackberry.com va iceberg.blackberry.com ni bloklaymiz. Natija: WLAN-ga ulanishga urinayotganda, u kirish sahifasini ko'rsatadi va hech qachon boshqa joyga ulanmaydi. Keling, uni blokdan chiqaraylik.

detectportal.firefox.com xuddi shu mexanizm bo'lib, faqat Firefox brauzerida amalga oshiriladi. Agar siz WLAN tarmog'iga kirishingiz kerak bo'lsa, u birinchi navbatda kirish sahifasini ko'rsatadi. Nima uchun manzilni tez-tez ping qilish kerakligi to'liq aniq emas, lekin mexanizm ishlab chiqaruvchi tomonidan aniq tasvirlangan.

skype. Ushbu dasturning harakatlari qurtga o'xshaydi: u yashirinadi va vazifalar panelida o'zini o'ldirishga imkon bermaydi, tarmoqda juda ko'p trafik hosil qiladi, har 10 daqiqada 4 domenga ping qo'yadi. Video qo'ng'iroqni amalga oshirishda Internet aloqasi doimo uzilib qoladi, agar yaxshiroq bo'lmasa. Hozircha bu zarur, shuning uchun qoladi.

upload.fp.measure.office.com - Office 365 ga tegishli, men munosib tavsif topa olmadim.
browser.pipe.aria.microsoft.com - Men munosib tavsif topa olmadim.
Biz ikkalasini ham bloklaymiz.

connect.facebook.net - Facebook chat ilovasi. Qolgan.

mediator.mail.ru Mail.ru domeniga bo'lgan barcha so'rovlar tahlili ishonchsizlikni keltirib chiqaradigan juda ko'p reklama resurslari va statistik yig'uvchilar mavjudligini ko'rsatdi. Mail.ru domeni butunlay qora ro'yxatga yuboriladi.

google-analytics.com - qurilmalarning funksionalligiga ta'sir qilmaydi, shuning uchun biz uni bloklaymiz.
doubleclick.net - reklama bosishlarini hisoblaydi. Biz bloklaymiz.

Ko'p so'rovlar googleapis.com saytiga o'tadi. Bloklash men uchun ahmoqona tuyulgan planshetdagi qisqa xabarlarning quvonchli o'chirilishiga olib keldi. Ammo o'yin do'koni ishlashni to'xtatdi, shuning uchun uni blokdan chiqaraylik.

cloudflare.com - ular ochiq manbalarni yaxshi ko'rishlarini yozadilar va umuman, o'zlari haqida ko'p yozadilar. Domen so'rovining intensivligi to'liq aniq emas, bu ko'pincha Internetdagi haqiqiy faoliyatdan ancha yuqori. Keling, hozircha qoldiraylik.

Shunday qilib, so'rovlarning intensivligi ko'pincha qurilmalarning talab qilinadigan funksionalligi bilan bog'liq. Ammo faollik bilan buni oshirib yuborganlar ham aniqlandi.

Eng birinchi

Simsiz Internet yoqilganda, hamma hali ham uxlab yotibdi va tarmoqqa qaysi so'rovlar birinchi bo'lib yuborilganligini ko'rish mumkin. Shunday qilib, soat 6:50da Internet yoqiladi va birinchi o'n daqiqada har kuni 60 ta domen so'raladi:

Uy Interneti qanday ishlaydi va domen nomi serveri statistikasi?

SQL hisobot so'rovi

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

Firefox kirish sahifasi mavjudligi uchun WLAN ulanishini tekshiradi.
Ilova faol ishlamayotgan bo'lsa ham, Citrix o'z serveriga ping yubormoqda.
Symantec sertifikatlarni tekshiradi.
Mozilla yangilanishlarni tekshiradi, garchi sozlamalarda men buni qilmaslikni so'radim.

mmo.de - bu o'yin xizmati. Katta ehtimol bilan so'rov Facebook chatida boshlangan. Biz bloklaymiz.

Apple o'zining barcha xizmatlarini faollashtiradi. api-glb-fra.smoot.apple.com - tavsifga ko'ra, har bir tugmani bosish qidiruv tizimini optimallashtirish uchun bu erga yuboriladi. Juda shubhali, ammo funksionallik bilan bog'liq. Biz uni qoldiramiz.

Quyida microsoft.com saytiga soβ€˜rovlarning uzun roβ€˜yxati keltirilgan. Biz uchinchi darajadan boshlab barcha domenlarni bloklaymiz.

Birinchi subdomenlar soni
Uy Interneti qanday ishlaydi va domen nomi serveri statistikasi?

Shunday qilib, simsiz Internetni yoqishning dastlabki 10 daqiqasi.
IOS eng ko'p subdomenlarni o'rganadi - 32. Undan keyin Android - 24, keyin Windows - 15 va oxirgi o'rinda Blackberry - 9.
Facebook ilovasining o'zi 10 ta domenni, skype 9 ta domenni so'roq qiladi.

Axborot manbai

Tahlil uchun manba quyidagi formatni o'z ichiga olgan bind9 mahalliy server jurnali fayli edi:

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)

Fayl sqlite ma'lumotlar bazasiga import qilingan va SQL so'rovlari yordamida tahlil qilingan.
Server kesh vazifasini bajaradi; so'rovlar marshrutizatordan keladi, shuning uchun har doim bitta so'rov mijozi mavjud. Soddalashtirilgan jadval tuzilishi etarli, ya'ni. Hisobot so'rovning vaqtini, so'rovning o'zini va guruhlash uchun ikkinchi darajali domenni talab qiladi.

DDL jadvallari

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)
);

xulosa

Shunday qilib, domen nomlari serveri jurnalini tahlil qilish natijasida 50 dan ortiq yozuvlar tsenzuradan o'tkazildi va bloklar ro'yxatiga joylashtirildi.

Ba'zi so'rovlarning zarurligi dasturiy ta'minot ishlab chiqaruvchilari tomonidan yaxshi tasvirlangan va ishonchni ilhomlantiradi. Biroq, faoliyatning aksariyati asossiz va shubhali.

Manba: www.habr.com

a Izoh qo'shish