Windows-ի տակ պահվող DNS սերվերի տեղադրում: Մենք պատրաստում ենք մեր սեփական տեղական DNS (PDNSD) բլեքջեքով և ավելի արագ, քան Google Public DNS-ը: Օնլայն դասընթացներ Mikrotik

DNS քեշը ժամանակավոր տվյալների բազա է, որը պահպանում է տեղեկատվությունը նախորդ DNS որոնումների մասին: Այլ կերպ ասած, երբ այցելում եք կայք, ձեր ՕՀ-ն և վեբ զննարկիչը կպահեն տիրույթի և համապատասխան IP հասցեի գրառումը: Սա վերացնում է հեռավոր DNS սերվերներին կրկնվող հարցումների անհրաժեշտությունը և թույլ է տալիս ձեր ՕՀ-ին կամ զննարկիչին արագ լուծել վեբկայքի URL-ները:

Այնուամենայնիվ, որոշ իրավիճակներում, ինչպիսիք են ցանցի խնդիրների վերացումը կամ DNS լուծիչները փոխելուց հետո, դուք պետք է մաքրեք DNS քեշը: Սա կջնջի քեշավորված DNS գրառումները և կկատարի հետագա որոնումներ՝ տիրույթը լուծելու համար՝ հիմնված նոր կազմաձևված DNS կարգավորումների վրա:

Այս հոդվածում տրված են հրահանգներ տարբեր օպերացիոն համակարգերի և վեբ բրաուզերների վրա DNS քեշը մաքրելու համար:

Մաքրել/ջնջել DNS քեշը Windows-ում

DNS քեշը մաքրելու գործընթացը նույնն է Windows-ի բոլոր տարբերակների համար: Դուք պետք է բացեք հրամանի տողը ադմինիստրատորի իրավունքներով և գործարկեք ipconfig /flushdns:

Windows 10 և Windows 8

Windows 10-ում և 8-ում DNS քեշը մաքրելու համար հետևեք հետևյալ քայլերին.

  1. Windows-ի որոնման տողում մուտքագրեք cmd:
  2. ipconfig /flushdns

    Windows 7

    Windows 7-ում DNS քեշը մաքրելու համար հետևեք հետևյալ քայլերին.

    1. Սեղմեք «Սկսել» կոճակը:
    2. Մուտքագրեք cmd «Սկսել» ցանկի որոնման տեքստային դաշտում:
    3. Աջ սեղմեք Command Prompt-ի վրա և ընտրեք Գործարկել որպես ադմինիստրատոր: Սա կբացի հրամանի տողի պատուհան:
    4. Հրամանի տողում մուտքագրեք հետևյալ տողը և սեղմեք Enter:

      ipconfig /flushdns

      Հաջողության դեպքում համակարգը կվերադարձնի հետևյալ հաղորդագրությունը.

      Windows IP-ի կազմաձևումը հաջողությամբ լվացվեց DNS Resolver Cache-ը:

    Մաքրել/ջնջել DNS քեշը Linux-ում

    Linux-ը չունի OS-ի մակարդակի DNS քեշավորում, քանի դեռ չի տեղադրվել և գործարկվել քեշավորման ծառայություն, ինչպիսին է Systemd-Resolved, DNSMasq կամ Nscd: DNS քեշը մաքրելու գործընթացը տարբերվում է՝ կախված ձեր օգտագործած բաշխման և քեշավորման ծառայությունից:

    Համակարգը լուծված է

    Linux-ի ժամանակակից բաշխումներից շատերը, ինչպիսիք են , օգտագործում են համակարգով միացված ծառայություն՝ DNS գրառումները քեշավորելու համար:

    Պարզելու համար, թե արդյոք ծառայությունն աշխատում է, գործարկեք.

    sudo systemctl is-active systemd-resolved.service

    Եթե ​​ծառայությունն աշխատում է, հրամանը կտպվի ակտիվ, հակառակ դեպքում կտեսնեք ոչ ակտիվ:

    Systemd Resolved DNS քեշը մաքրելու համար դուք պետք է մուտքագրեք հետևյալ հրամանը.

    sudo systemd-resolve --flush-caches

    Հաջողության դեպքում հրամանը ոչ մի հաղորդագրություն չի վերադարձնում:

    Դնսմասք

    Dnsmasq-ը թեթև DHCP և DNS անունների քեշավորման սերվեր է:

    Եթե ​​ձեր համակարգը օգտագործում է DNSMasq որպես քեշավորման սերվեր, ապա DNS քեշը մաքրելու համար անհրաժեշտ է վերագործարկել Dnsmasq ծառայությունը.

    sudo systemctl վերագործարկեք dnsmasq.service

    sudo ծառայության dnsmasq վերագործարկում

    Nscd

    Nscd-ը քեշավորման դեյմոն է և հանդիսանում է DNS քեշավորման նախընտրելի համակարգ RedHat-ի վրա հիմնված բաշխումների մեծ մասի համար:

    Եթե ​​ձեր համակարգն օգտագործում է Nscd, ապա ձեզ հարկավոր է վերագործարկել Nscd ծառայությունը՝ DNS քեշը մաքրելու համար.

    sudo systemctl վերագործարկեք nscd.service

    sudo ծառայության nscd-ի վերագործարկում

    Մաքրել/ջնջել DNS քեշը MacOS-ում

    MacOS-ում քեշը մաքրելու հրամանը մի փոքր տարբերվում է կախված ձեր օգտագործած տարբերակից: Հրամանը պետք է գործարկվի որպես համակարգի ադմինիստրատորի իրավունք ունեցող օգտվող (sudo օգտվող):

    MacOS-ում DNS քեշը մաքրելու համար հետևեք հետևյալ քայլերին.

    1. Բացեք Finder-ը:
    2. Գնալ դեպի Ծրագրեր > Կոմունալ ծառայություններ > Տերմինալ: Սա կբացի տերմինալի պատուհանը:
    3. Հրամանի տողում մուտքագրեք հետևյալ տողը և սեղմեք Enter:

      sudo killall -HUP mDNSResponder

      Մուտքագրեք ձեր sudo գաղտնաբառը և կրկին սեղմեք Enter: Հաջողության դեպքում համակարգը ոչ մի հաղորդագրություն չի վերադարձնում:

    MacOS-ի ավելի վաղ տարբերակների համար քեշը մաքրելու հրամանը տարբեր է:

    MacOS 10.11 և 10.9 տարբերակները

    sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder

    MacOS տարբերակը 10.10

    sudo discoveryutil mdnsflushcache sudo discoveryutil udnsflushcache

    MacOS 10.6 և 10.5 տարբերակները

    sudo dscacheutil -flushcache

    Մաքրել/ջնջել բրաուզերի DNS քեշը

    Ժամանակակից վեբ բրաուզերներից շատերն ունեն ներկառուցված DNS հաճախորդ, որը կանխում է կրկնօրինակ հարցումները ամեն անգամ, երբ այցելում եք կայք:

    Google Chrome

    Google Chrome-ի DNS քեշը մաքրելու համար հետևեք հետևյալ քայլերին.

    1. Բացեք նոր ներդիր և մուտքագրեք Chrome-ի հասցեագոտում՝ chrome://net-internals/#dns:
    2. Սեղմեք Մաքրել հյուրընկալողի քեշը կոճակը:

    Եթե ​​դա ձեզ մոտ չի աշխատում, փորձեք մաքրել քեշը և թխուկները:

    1. Սեղմեք CTRL+Shift+Del՝ Մաքրել զննարկման տվյալների երկխոսության տուփը բացելու համար:
    2. Ընտրեք ժամանակային միջակայք: Ընտրեք «Բոլոր ժամանակները»՝ ամեն ինչ ջնջելու համար:
    3. Ստուգեք «Թխուկներ և կայքի այլ տվյալներ» և «Քեշավորված պատկերներ և ֆայլեր» վանդակները:
    4. Սեղմեք «Ջնջել տվյալները» կոճակը:

    Այս մեթոդը պետք է աշխատի Chrome-ի վրա հիմնված բոլոր բրաուզերների համար, ներառյալ Chromium-ը, Vivaldi-ն և Opera-ն:

    FireFox

    Firefox-ի DNS քեշը մաքրելու համար հետևեք հետևյալ քայլերին.

    1. Վերևի աջ անկյունում սեղմեք համբուրգերի պատկերակը ☰ Firefox-ի ընտրացանկը բացելու համար.
    2. Կտտացրեք ⚙ Ընտրանքներ (Նախապատվություններ) հղմանը:
    3. Կտտացրեք ձախ կողմում գտնվող «Գաղտնիություն և անվտանգություն» կամ «Գաղտնիություն» ներդիրին:
    4. Ոլորեք ներքև դեպի Պատմություն բաժինը և սեղմեք Մաքրել պատմությունը... կոճակը:
    5. Ընտրեք ժամանակային միջակայք ջնջելու համար: Ընտրեք «Բոլորը»՝ ամեն ինչ ջնջելու համար:
    6. Ընտրեք բոլոր դաշտերը և սեղմեք Մաքրել հիմա:

    Եթե ​​դա ձեզ մոտ չի աշխատում, փորձեք հաջորդ մեթոդը և ժամանակավորապես անջատեք DNS քեշը:

    1. Բացեք նոր ներդիր և մուտքագրեք about:config Firefox հասցեի տողում:
    2. Գտեք network.dnsCacheExpiration, ժամանակավորապես սահմանեք արժեքը 0-ի և սեղմեք OK: Դրանից հետո փոխեք լռելյայն արժեքը և սեղմեք OK:
    3. Գտեք network.dnsCacheEntries, ժամանակավորապես սահմանեք արժեքը 0-ի և սեղմեք OK: Դրանից հետո փոխեք լռելյայն արժեքը և սեղմեք OK:

    Եզրակացություն

    Դուք սովորել եք, թե ինչպես մաքրել կամ մաքրել DNS քեշը Windows, Linux և MacOS օպերացիոն համակարգերում:

    Linux-ը և MacOS-ը կարող են օգտագործել dig հրամանը՝ DNS հարցումներ կատարելու և DNS-ի խնդիրները լուծելու համար:

    Եթե ​​ունեք հարցեր կամ կարծիքներ, ազատ զգալ թողեք մեկնաբանություն:

Ամեն տարի ինտերնետի արագությունը՝ և՛ վերջին մղոնը, և՛ հիմնական ալիքները, ավելի են բարձրանում։ Միայն մեկ բան է հաստատուն. ուշացումն արդեն հասել է ֆիզիկական սահմանների. օպտիկական մանրաթելում լույսի արագությունը կազմում է մոտ 200 հազար կիլոմետր վայրկյանում, և, համապատասխանաբար, ավելի արագ, քան ~150 մվ, Ատլանտյան օվկիանոսից այն կողմ սերվերի պատասխանը չի կարող ստացվել Ատլանտյան օվկիանոսում: տեսանելի ապագա (չնայած, իհարկե, կան հրճվանքներ, ինչպես օպտիկական մանրաթելն օդային միջուկով կամ ռադիոռելեային հաղորդակցություն, բայց դա դժվար թե հասանելի լինի հասարակ մահկանացուների համար):

Երբ մենք փորձում ենք, օրինակ, Ռուսաստանից բացել ԱՄՆ-ում տեղակայված կայք (նրա NS սերվերները հավանաբար այնտեղ են), և տիրույթը չի գտնվել ձեր մատակարարի DNS քեշում, մենք ստիպված կլինենք երկար սպասել նույնիսկ մինչև մի գիգաբիթ ինտերնետ, գուցե նույնիսկ մի ամբողջ վայրկյան. մինչ մենք օվկիանոսից այն կողմ մենք կստանանք տիրույթի NS սերվերների անունները, մինչդեռ մենք կլուծենք նրանց IP-ն, մինչդեռ մենք ինքնին կուղարկենք և կստանանք DNS հարցումը...

Մի քանի տարի առաջ Google-ը գործարկեց իր հանրային DNS սերվերները, և դրանց անցումը խթանելու համար նրանք մշակեցին NameBench կոչվող օգտակար ծրագիրը, որն իրականացնում է DNS թեստեր ձեր սերֆինգի պատմության վրա և ցույց է տալիս, թե որքան ավելի արագ է Google DNS-ը, քան ձեր մատակարարի DNS սերվերը:

Բայց ինձ հաջողվեց ստեղծել իմ սեփական DNS սերվերը, որն ավելի արագ է աշխատում, քան Google Public DNS-ը, և այս կարճ գրառման մեջ ես ուզում եմ կիսվել արդյունքներով:

PDNSD

pdnsd- DNS վստահված անձի քեշավորում: Ի լրումն DNS հարցումների սովորական քեշավորման (նվազագույն TTL-ը խստորեն սահմանելու ունակությամբ, դա կարող է անհրաժեշտ լինել շատ աղքատ ինտերնետում), այն կարող է հարցում ուղարկել միաժամանակ մի քանի «ծնող» DNS սերվերներ և հաճախորդին տալ առաջին պատասխանը.

Զուգահեռ սոցիոլոգիական հարցումների ընդգրկումն է, որ մեզ տալիս է արագության հիմնական առավելությունը, որովհետեւ երբ պրովայդերներից որևէ մեկի քեշում հայտնաբերվում է արդյունք, մենք շատ արագ ենք ստանում արդյունքը և չենք սպասում ամբողջական և դանդաղ լուծման, եթե առաջին մատակարարը պատասխան չունի քեշում:

Տեղադրվել է Ubuntu-ում՝ օգտագործելով banal apt-get:

Կազմաձևում մի քանի կետ

գլոբալ ( perm_cache=10240; //Քեշի առավելագույն չափը կիլոբայթներով: //Լռելյայնորեն այն 1024 էր, իմ բոլոր գրառումները չէին տեղավորվում: cache_dir="/var/cache/pdnsd"; [...] min_ttl=60m; // Քեշում գրառումը պահելու նվազագույն ժամանակը: //Նույնիսկ եթե TTL-ը ժամանում է 60 րոպեից պակաս, այն կկազմի 60 րոպե max_ttl=1w; // Քեշում գրառումը պահելու առավելագույն ժամանակը neg_ttl=5m; // Բացասական պատասխանների քեշավորման ժամանակը (այսինքն, եթե տիրույթը չի գտնվել) [..] par_queries=3; //Միաժամանակ հարցված «ծնող» DNS սերվերների թիվը) սերվեր (պիտակ = «հիմնական»; ip = 85.21.192.5 //Այնտեղ 4 սերվեր են, եթե առաջին 3-ը չպատասխանեն, ապա հարցումը կուղարկվի 4-րդ, 213.234.192.7 //Առաջին 2 սերվերը ձեր մատակարարի սերվերն է, իսկ մի քանի հարևանը՝ 8.8.4.4 //Սա Google Հանրային DNS - նրանք քեշում են ամեն հազվադեպ և արագ լուծում, 8.8.8.8; [.. ] )

Սկզբունքորեն, քեշավորումը կարող է լինել ավելի քիչ ագրեսիվ (օրինակ min_ttl=1m), բայց շահագործման մեկ տարվա ընթացքում հատուկ խնդիրներ չեն առաջացել։ Խնդիրների դեպքում դուք կարող եք կամայականորեն ջնջել մեկ մուտք քեշից.
sudo pdnsd-ctl գրառումը 3.14.by ջնջել կամ միանգամից.
sudo pdnsd-ctl դատարկ քեշ

Թեստի արդյունքները NameBench-ում



Մենք տեսնում ենք, որ հարցումների 50%-ի դեպքում մենք պատասխան ենք ստանում 10մ-ից պակաս ժամանակում, 85%-ի համար Google Public DNS-ն ավելի արագ է, և այնուհետև արդյունքները բնականաբար համընկնում են Google-ի հետ։

Թեստի արդյունքների հիման վրա NameBench-ը ուրախությամբ հայտնում է մեզ.

8.8.8.8 SYS-192.167.0.98-ի դանդաղ կրկնօրինակը 8.8.4.4 SYS-192.167.0.98-ի դանդաղ կրկնօրինակը

Այսպիսով, խելացի քեշավորման DNS վստահված անձը զուգահեռ հարցումներով թույլ է տալիս արագացնել նույնիսկ 100 մեգաբիթանոց ինտերնետը: Իսկ դանդաղ (ռադիո) կապերի դեպքում՝ բարձր ուշացումով և փաթեթների կորստով, տարբերությունը կարող է նմանվել երկնքի և երկրի:

Պատկերացրեք, թե ինչ կլիներ, եթե մենք ստիպված լինեինք հիշել IP- բոլոր կայքերի հասցեները, որոնք մենք օգտագործում ենք ամեն օր: Նույնիսկ եթե մենք զարմանալի հիշողություն ունենայինք, կայք նավարկելու գործընթացը ծիծաղելիորեն դանդաղ ու աշխատատար կլիներ:

Ի՞նչ կասեք, եթե մենք պետք է այցելենք մի քանի վեբ կայքեր կամ օգտագործենք մի քանի հավելվածներ, որոնք գտնվում են նույն համակարգչի կամ վիրտուալ հոսթի վրա: Սա կլինի ամենավատ գլխացավերից մեկը, որ կարելի է երևակայել, էլ չեմ խոսում փոփոխության հնարավորության մասին IP- առանց նախնական ծանուցման կայքի կամ հավելվածի հետ կապված հասցեներ:

Հենց դրա մասին մտածելը բավական պատճառ կլինի որոշ ժամանակ անց ինտերնետից կամ ինտրանետներից օգտվելը դադարեցնելու համար:

Սա այն է, ինչ աշխարհն առանց տիրույթի անունների համակարգի (նաև հայտնի է որպես DNS) Բարեբախտաբար, այս ծառայությունը լուծում է վերը նշված բոլոր խնդիրները, նույնիսկ եթե կապը IP- հասցեի և դոմենի անվան փոփոխություն:

Այդ իսկ պատճառով, այս հոդվածում մենք կսովորենք, թե ինչպես կարգավորել և օգտագործել պարզ DNS-սերվեր, ծառայություն, որը թույլ կտա թարգմանել տիրույթի անունները IP- հասցեներ և հակառակը:

DNS անունների լուծումներ

Փոքր ցանցերի համար, որոնք ենթակա չեն հաճախակի փոփոխությունների, ֆայլը /etc/hostsկարող է օգտագործվել որպես տիրույթի անունը որոշելու տարրական մեթոդ՝ լուծելու համար IP- հասցեներ.

Այս ֆայլը, օգտագործելով շատ պարզ շարահյուսություն, թույլ է տալիս կապել անուն (և/կամ այլանուն) IP- հասցե. Դա արվում է հետևյալ կերպ.

Օրինակ,

192.168.0.1 gateway gateway.mydomain.com 192.168.0.2 web.mydomain.com

Այս կերպ Դուք կարող եք կապվել վեբ մեքենայի հետ կամ անունով web.mydomain.com, կամ ըստ նրա IP- հասցե.

Խոշոր ցանցերի կամ հաճախակի փոփոխությունների ենթակա ցանցերի համար՝ օգտագործելով ֆայլը /etc/hostsդոմենների անունները լուծելու համար IP-հասցեներն ընդունելի լուծում չեն լինի։ Հենց այստեղ է առաջանում հատուկ ծառայության անհրաժեշտությունը։

Եկեք գնանք աշխատանքի կուլիսներում DNS. DNS- սերվերը պահանջում է մեծ տվյալների բազա ծառի տեսքով, որը սկսվում է արմատից ( «.» ) գոտիներ.

Հետևյալ նկարը կօգնի մեզ հասկանալ, թե ինչի մասին է խոսքը.

Վերևի նկարը ցույց է տալիս արմատային գոտին (.) պարունակում է com, eduԵվ ցանցառաջին մակարդակի տիրույթներ. Այս տիրույթներից յուրաքանչյուրը կառավարվում է (կամ կարող է) կառավարվել տարբեր կազմակերպությունների կողմից՝ մեկ խոշոր կենտրոնականից կախվածությունից խուսափելու համար: Սա թույլ է տալիս ճիշտ բաշխել հարցումները հիերարխիայում:

Տեսնենք, թե ինչ է տեղի ունենում.

1. Երբ հաճախորդը հարցում է անում DNS- սերվերի համար web1.sales.me.com, սերվերը հարցում է ուղարկում վերև (արմատ) DNS- սերվեր, որը հարցումը փոխանցում է գոտու անվան սերվերին .com.

Սա իր հերթին հարցում է ուղարկում հաջորդ մակարդակի անվանասերվերին (գոտում me.com), իսկ հետո դեպի sales.me.com. Այս գործընթացը կրկնվում է այնքան անգամ, որքան անհրաժեշտ է մինչև լիովին որակավորված տիրույթի անունը (FQDN, web1.sales.me.comայս օրինակում) չի վերադարձվի այն գոտու անվան սերվերի կողմից, որտեղ այն գտնվում է:

2. Այս օրինակում անունների սերվերը in sales.me.comհասցեի համար պատասխանատու web1.sales.me.comև վերադարձնում է դոմենի անվան համար ցանկալի ասոցիացիան. IPև այլ տեղեկություններ (եթե այն կազմաձևված է դրա համար):

Այս ամբողջ տեղեկատվությունը ուղարկվում է աղբյուրին DNS-սերվեր, որն այնուհետև այն հետ է փոխանցում այն ​​հաճախորդին, ով այն խնդրել է: Ապագա նույնական հարցումների համար նույն քայլերը կրկնելուց խուսափելու համար հարցման արդյունքները պահվում են DNS- սերվեր: Սա այն կարևոր կողմն է, որի համար սովորաբար կոչվում է նման պարամետր ռեկուրսիվ քեշավորման DNS սերվերի կարգավորում.

DNS սերվերի տեղադրում և կարգավորում

IN Linuxառավել օգտագործված DNS- սերվերն է կապել(կարճ Berkeley Internet Name Daemon-ի համար), որը կարող է տեղադրվել հետևյալ կերպ.

# yum install bind bind-utils # zypper install bind bind-utils # aptitude install bind9 bind9utils

Այն բանից հետո, երբ մենք տեղադրել ենք կապելև հարակից կոմունալ ծրագրերը, նախքան որևէ փոփոխություն կատարելը, պատճենեք կազմաձևման ֆայլը.

# cp /etc/named.conf /etc/named.conf.orig # cp /etc/bind/named.conf /etc/bind/named.conf.orig

Հետո եկեք բացենք անունով.confև անցնենք պարամետրերի բլոկին, որտեղ մենք պետք է նշենք հետևյալ կարգավորումները ռեկուրսիվ քեշավորման սերվերի համար. IP 192.168.0.18/24, որին կարող են մուտք գործել միայն նույն ցանցի հոսթները (որպես անվտանգության միջոց):

Փոխանցման գոտու ընտրանքները օգտագործվում են նշելու համար, թե որ անունների սերվերները պետք է առաջինը հարցում կատարեն (հետևյալ օրինակում մենք օգտագործում ենք Google-ի անունների սերվերները) մեր տիրույթից դուրս գտնվող հոսթների համար.

Ընտրանքներ (... լսել 53-րդ նավահանգիստը (127.0.0.1; 192.168.0.18); թույլատրել-հարցում (localhost; 192.168.0.0/24; ); ռեկուրսիա այո; փոխանցողներ (8.8.8.8; 8.8.4.4; ); . ..)

Ընտրանքների բլոկի սահմաններից դուրս մենք կսահմանենք մեր գոտին sales.me.com(Ubuntu-ում դա սովորաբար արվում է առանձին ֆայլում, որը կոչվում է named.conf.local), որը ցուցադրում է տիրույթը տրվածով IP-Հասցե և հակադարձ գոտի համապատասխանեցման համար IP- համապատասխան տարածքի հասցեները.

Այնուամենայնիվ, յուրաքանչյուր գոտու փաստացի կոնֆիգուրացիան տեղի կունենա առանձին ֆայլերում, ինչպես նշված է ֆայլի հրահանգում («վարպետը» նշանակում է, որ մենք կօգտագործենք միայն մեկ DNS սերվեր):

Ֆայլին ավելացրեք հետևյալ տողերը անունով.conf:

«sales.me.com» գոտի: IN (տիպի վարպետ; ֆայլ «/var/named/sales.me.com.zone»; ); գոտի «0.168.192.in-addr.arpa» IN (տիպի վարպետ; ֆայլ «/var/named/0.162.198.in-addr.arpa.zone»; );

նշեք, որ inaddr.arpa(IPv4 հասցեների համար) և ip6.arpa(IPv6-ի համար) հակադարձ գոտիների կոնֆիգուրացիաների կոնվենցիաներ են:

Վերոնշյալ փոփոխությունները պահելուց հետո անունով.confմենք կարող ենք ստուգել հետևյալ սխալները.

# named-checkconf /etc/named.conf

Եթե ​​որևէ սխալ հայտնաբերվի, վերը նշված հրամանը տալիս է տեղեկատվական հաղորդագրություն՝ դրանց հայտնաբերման պատճառներով և տողով: Հակառակ դեպքում ոչինչ չի վերադարձնի։

DNS գոտիների կարգավորում

Ֆայլերում /var/named/sales.me.com.zoneԵվ /var/named/0.168.192.in-addr.arpa.zoneմենք կկազմաձևենք առաջ (տիրույթ → IP հասցե) և հակադարձ (IP հասցե → տիրույթ) գոտիները:

Եկեք նախ նայենք ուղղակի կազմաձևին.

1. Ֆայլի վերևում կգտնեք տող, որը սկսվում է TTL(Կարճ՝ Time To Live-ի համար), որը սահմանում է, թե որքան ժամանակ պետք է պահպանվի քեշավորված պատասխանը, մինչև այն փոխարինվի նոր հարցման արդյունքներով:

Ստորև բերված տողում մենք կհղենք մեր տիրույթին և նշենք էլ.փոստի հասցեն, որից պետք է ուղարկվեն ծանուցումները (խնդրում ենք նկատի ունենալ, որ root.sales.me.comնշանակում է ).

2. Ձայնագրում SOA(Սկիզբը լիազորություն) ցույց է տալիս, որ այս համակարգը հեղինակավոր անունների սերվեր է տիրույթում գտնվող մեքենաների համար sales.me.com.

Եթե ​​ունեք երկու անուն սերվեր (մեկ հիմնական և մեկ slave), յուրաքանչյուր տիրույթի համար պահանջվում են հետևյալ կարգավորումները (չնայած դա մեր դեպքը չէ, քանի որ դա չի պահանջվում քննության ժամանակ, դրանք ներկայացված են այստեղ հղում ստանալու համար).

Սերիալօգտագործվում է գոտի սահմանման ֆայլի մեկ տարբերակն առանձնացնելու նախորդից (որտեղ պարամետրերը կարող են փոխվել): Եթե ​​քեշավորված պատասխանը մատնանշում է այլ ելքի վրա Սերիալ, հարցումը կրկին կատարվում է հաճախորդին վերադարձնելու փոխարեն։

Ստրկական (երկրորդային) անունների սերվերի հետ կարգավորումներում Թարմացնելնշում է այն ժամանակը, որի ընթացքում երկրորդական սերվերը պետք է ստուգի հիմնական սերվերից նոր սերիական համարը:

Բացի այդ, Կրկին փորձեքասում է սերվերին, թե որքան հաճախ պետք է երկրորդականը փորձի կապվել առաջնայինի հետ, եթե առաջնայինից պատասխան չի ստացվել, մինչդեռ Ժամկետը սպառվում էցույց է տալիս, երբ երկրորդական ռեժիմում գոտու սահմանումն այլևս վավեր չէ այն բանից հետո, երբ այլևս հնարավոր չէ պատասխան ստանալ հիմնական սերվերից, և բացասական TTLայն ժամանակն է, որի ընթացքում գոյություն չունեցող տիրույթը չի պահվում ( NX տիրույթ).

3. Ն.Ս.-մուտքում նշվում է, որ այն հեղինակավոր է DNS-սերվեր մեր տիրույթի համար (որը նշված է տողի սկզբում @ նշանով):

4. Ձայնագրում Ա(IPv4 հասցեների համար) կամ AAAA(IPv6 հասցեների համար) որոշում է անունները IP- հասցեներ.

Ստորև բերված օրինակում.

Dns՝ 192.168.0.18 (ինքնը՝ DNS սերվեր) web1: 192.168.0.29 (վեբ սերվեր sales.me.com գոտում) mail1՝ 192.168.0.28 (փոստի սերվեր sales.me.com գոտում) mail2: 192.16 .0.30 (այլ փոստի սերվեր)

5. Ձայնագրում MXնշում է այս տիրույթի փոստի փոխանցման լիազորված գործակալների (MTAs) անունները: Հյուրընկալողի անվանը պետք է նախորդի մի թիվ, որը ցույց է տալիս այն առաջնահերթությունը, որը պետք է ունենա ընթացիկ փոստի սերվերը, եթե դրանք կան երկու կամ ավելի ՏԿԱԻՆտիրույթի համար (որքան ցածր է արժեքը, այնքան բարձր է առաջնահերթությունը) հետևյալ օրինակում. փոստ 1հիմնական է, մինչդեռ փոստ 2երկրորդական է ՏԿԱԻՆ).

6. Ձայնագրում CNAMEսահմանում է այլանուն (www.web1) հյուրընկալողի համար (web1):

ԿԱՐԵՎՈՐԿարևոր է կետի առկայությունը (.) անունների վերջում.

$TTL 604800 @ IN SOA sales.me.com: root.sales.me.com. (2016051101; Սերիա 10800; Թարմացնել 3600; Կրկին փորձել 604800; Սպառել 604800) ; Բացասական TTL; @ IN NS dns.sales.me.com: dns IN A 192.168.0.18 web1 IN A 192.168.0.29 mail1 IN A 192.168.0.28 mail2 IN A 192.168.0.30 @ IN MX 10 mail1.sales.me.com: @ IN MX 20 mail2.sales.me.com: www.web1 CNAME web1-ում

Դիտարկենք հակադարձ գոտու կոնֆիգուրացիան (/var/named/0.168.192.in-addr.arpa.zone): Գրառում SOAնույնը, ինչ նախորդ ֆայլում, մինչդեռ վերջին երեք տողերը մուտքի հետ PTR(ցուցիչ) նշեք վերջին օկտետը հյուրընկալողի հասցեում IPv4 փոստ 1, վեբ 1Եվ փոստ 2(192.168.0.28, 192.168.0.29 և 192.168.0.30 համապատասխանաբար):

$TTL 604800 @ IN SOA sales.me.com: root.sales.me.com. (2016051101; Սերիա 10800; Թարմացնել 3600; Կրկին փորձել 604800; Սպառել 604800) ; Նվազագույն TTL @ IN NS dns.sales.me.com: 28 IN PTR mail1.sales.me.com: 29 PTR-ում web1.sales.me.com: 30 IN PTR mail2.sales.me.com:

Դուք կարող եք ստուգել գոտու ֆայլերը սխալների համար.

# named-checkzone sales.me.com /var/named/sales.me.com.zone # named-checkzone 0.168.192.in-addr.arpa /var/named/0.168.192.in-addr.arpa.zone

Հետևյալ սքրինշոթը ցույց է տալիս, թե որն է ակնկալվող արդյունքը.

Հակառակ դեպքում, դուք կստանաք սխալի հաղորդագրություն և խորհուրդ, թե ինչպես լուծել այն.

Հիմնական կազմաձևման ֆայլը և գոտու ֆայլերը հաստատելուց հետո վերագործարկեք անվանված ծառայությունը՝ փոփոխությունները կիրառելու համար:

IN CentOSԵվ openSUSEանել:

# systemctl վերագործարկումն անվանվել է

Եվ մի մոռացեք ներառել նաև այն.

# systemctl ակտիվի անունը

IN Ubuntu:

$ sudo ծառայության bind9 վերագործարկում

Վերջապես, դուք պետք է խմբագրեք հիմնական ցանցային ինտերֆեյսերի կազմաձևերը.

/etc/sysconfig/network-scripts/ifcfg-enp0s3-ում CentOS-ի և openSUSE-ում ---- DNS1=192.168.0.18 ---- /etc/network/interfaces-ում՝ Ubuntu-ի համար ---- dns-nameservers 192.168.0.18

Այժմ վերագործարկեք ցանցային ծառայությունը՝ փոփոխությունները կիրառելու համար:

DNS սերվերի փորձարկում

Այս պահին մենք պատրաստ ենք խնդրել մեր DNS- տեղական և արտաքին անունների և հասցեների սերվեր: Հետևյալ հրամանները կվերադառնան IP- հյուրընկալողի հետ կապված հասցե վեբ 1:

# host web1.sales.me.com # host web1 # host www.web1

Ինչպես կարող ենք պարզել, թե ով է մշակում նամակները sales.me.com? Դա հեշտ է պարզել, պարզապես պահանջեք գրառումներ MXտիրույթի համար.

# host -t mx sales.me.com

Նմանապես, եկեք կատարենք հակառակ հարցումը: Սա կօգնի մեզ պարզել անունը IP- հասցեներ.

# հաղորդավար 192.168.0.28 # հաղորդավար 192.168.0.29

Դուք կարող եք փորձել նույն գործողությունները արտաքին հոստերի համար.

Ապահովելու համար, որ հարցումներն իրականում անցնում են մեր միջոցով DNS-սերվեր, եկեք միացնենք գրանցումը.

# rndcquerylog

Եվ ստուգեք ֆայլը /var/log/messages(CentOS-ի և openSUSE-ի վրա).

# host -t mx linux.com # host 8.8.8.8

Գրանցումն անջատելու համար DNS, նորից մուտքագրեք.

# rndcquerylog

IN UbuntuԳրանցումն ակտիվացնելու համար դուք պետք է ավելացնեք հետևյալ անկախ բլոկը (նույն մակարդակը, ինչ ընտրանքների բլոկը): /etc/bind/named.conf:

Մուտքագրում (ալիքի query_log (ֆայլ «/var/log/bind9/query.log»; խստության դինամիկ; տպագրության կատեգորիա այո; տպման խստությունը այո; տպման ժամանակի այո; ); կատեգորիայի հարցումներ (query_log; ););

Նկատի ունեցեք, որ գրանցամատյանի ֆայլը պետք է գոյություն ունենա և գրի լինի անունով:

Արդյունքներ

Այս հոդվածում մենք բացատրեցինք, թե ինչպես կարելի է ստեղծել հիմնական ռեկուրսիվ, քեշավորում DNS- սերվեր և ինչպես կարգավորել գոտիները տիրույթի համար:

Ձեր ճիշտ շահագործումն ապահովելու համար DNS-սերվեր, համոզվեք, որ միացրեք այս ծառայությունը ձեր firewall-ում (TCP պորտ 53), ինչպես նկարագրված է («Configuring Iptables Firewall to Enable Remote Access to Services»):

.

Cisco-ի և Linux-ի դասընթացներ զբաղվածությամբ:

Շտապե՛ք դիմել. Մնացել է մի երկու տեղ։ Խմբերը սկսվում են հուլիսի 22, և հաջորդը օգոստոսի 19, սեպտեմբերի 23, հոկտեմբերի 21, նոյեմբերի 25, դեկտեմբերի 16, հունվարի 20, փետրվարի 24..

Ի՞նչ կստանաս։

  • Մենք կօգնենք ձեզ դառնալ ցանցի կառավարման փորձագետ և ստանալ Cisco CCNA Routing & Switching կամ Linux LPI միջազգային վկայականներ:
  • Մենք առաջարկում ենք ապացուցված ծրագիր և դասագիրք Cisco Networking Academy-ի և Linux Professional Institute-ի փորձագետներից, հավաստագրված հրահանգիչների և անձնական մենթորի կողմից:
  • Մենք կօգնենք ձեզ աշխատանք գտնել և կարիերա կառուցել: Մեր շրջանավարտների 100%-ն աշխատում է։

Ինչպե՞ս է ընթանում մարզումը:

  • Մենք երեկոյան առցանց դասախոսություններ ենք անցկացնում մեր հարթակում կամ անձամբ սովորում Կիևի գրասենյակում:
  • Մենք ձեզ կհարցնենք պրակտիկայի համար հարմար ժամանակի մասին և կհարմարվենք. մենք հասկանում ենք, որ սովորելու համար քիչ ժամանակ կա:
  • Եթե ​​ցանկանում եք անհատական ​​գրաֆիկ, մենք կքննարկենք և կիրականացնենք այն։
  • Մենք հստակ ժամկետներ ենք սահմանելու ինքնակազմակերպման համար։ Անձնական ղեկավարը կապի մեջ կլինի հարցերին պատասխանելու, խորհուրդ տալու և դրդելու ձեզ՝ պահպանել քննությունների ժամկետները:

Մենք նաև կօգնենք ձեզ՝

DNS-ի նպատակն է թարգմանել դոմեյնների անունները, որոնք մարդկանց համար հեշտ է հիշել, IP հասցեներով, որոնք համակարգիչները կարող են հասկանալ, գործընթաց, որը կոչվում է անվան լուծում: Ի՞նչ կտա մեզ մեր սեփական քեշավորման DNS սերվերի տեղադրումը: Սա մի փոքր կարագացնի կայքերի արձագանքը + Linux-ը այնքան էլ լավ չի ընդունում NetBios անունները, բայց երբեմն ստիպված ես համակարգիչներ կամ տպիչներ գտնել տեղական ցանցում, բայց ուզում ես դա անել անունով:

IP հասցեները հիշելը հարմար չէ, և անընդհատ DHCP սերվերի գրանցամատյանը դիտելը նույնպես մեր մեթոդը չէ: Հենց նման դեպքերի համար է անհրաժեշտ DNS տեղական ցանցում։ Bind9 փաթեթի տեղադրումն ինքնին դժվար չէ, խափանումները սովորաբար առաջանում են դրա կազմաձևման փուլում, քանի որ Համակարգի կոնֆիգուրացիայի հեշտությամբ ընթեռնելի ֆայլերից հետո մարդը բախվում է անհասկանալի շարահյուսության, որն, ի դեպ, շատ նման է S ծրագրավորման լեզվին։ սերվերը կաշխատի տեղական ցանցի ներսում, անիմաստ է այն տեղափոխել chroot միջավայր, և ամբողջ կարգավորումը շատ քիչ ժամանակ է պահանջում: Դրանով լիրիկական մասը կարող է ավարտվել, եկեք անցնենք տեղադրմանը և կազմաձևմանը:

Եկեք տեղադրենք Bind9 DNS սերվերը.

# apt - ստանալ install bind9

Ավարտից, ներբեռնումից և տեղադրումից հետո մենք պետք է խմբագրենք դրա կազմաձևման ֆայլը.

#vim /etc/bind/named. կոնֆ. տարբերակները

Մենք գտնում ենք բաժինը, այն գտնվում է կոնֆիգուրացիայի ֆայլի հենց սկզբում, բացի դրանից, այնտեղ ուրիշ ոչինչ չկա...

ընտրանքներ (գրացուցակ «/var/cache/bind» ; // Եթե կա firewall ձեր և ձեր ուզած անունների սերվերների միջև// հետ խոսելու համար գուցե անհրաժեշտ լինի շտկել firewall-ը, որպեսզի թույլ տա մի քանի անգամ// նավահանգիստներ խոսելու համար: Տես http://www.kb.cert.org/vuls/id/800113// Եթե ձեր ISP-ն տրամադրել է մեկ կամ մի քանի IP հասցե կայունության համար// nameservers, դուք հավանաբար ցանկանում եք օգտագործել դրանք որպես առաքիչներ:// Ապամեկնաբանեք հետևյալ բլոկը և տեղադրեք հասցեները փոխարինող// all-0"s placeholder. // forwarders ( // 0.0.0.0; //); auth - nxdomain no ; # conform RFC1035 listen - on - v6 ( any ; ); );

Փոխանցողների բաժինը պատասխանատու է այն բանի համար, թե որտեղ կուղարկվի անվանման լուծման համար DNS հարցումը, եթե այն չկա իր սեփական տվյալների բազայում: Վերջերս ես ընդհանրապես գոհ չէի, այս սերվերների աշխատանքը պրովայդերների հետ այն է, թե ինչու կարող եք միացնել երրորդ կողմին, օրինակ Google-ին, շատ հեշտ է հիշել IP 8.8.8.8-ը, ես դրա օրինակով կօգտագործեմ. կարգավորեք այն, բայց ոչ ոք ձեզ չի խանգարում օգտագործել այն, ինչ ձեզ ամենաշատն է դուր գալիս:

Մենք խմբագրում ենք բաժինը, նախ պետք է դրանից հեռացնել մեկնաբանությունները և ավելացնել երրորդ կողմի DNS, եթե մի քանի սերվեր ավելացնելու անհրաժեշտություն կա, օրինակ, եթե Google սերվերը չի դիմանում ձեր հարցումներին և փչանում է :), ապա Այլ սերվերների IP-ն կարող է գրվել սյունակում, այնուհետև կարող եք հասնել սխալների ավելի մեծ հանդուրժողականության:

առաքիչներ (8.8.8.8; 193.58.251.251; //Ռուսական DNS ծառայություն -SkyDNS};

Այս բաժնում ավելի լավ է մուտքագրել սերվերի IP-ն, որը դուք նշել եք ֆայլում /etc/resolv.confկամ մուտքագրեք այն բաժնում nameserverայս IP-ն: Պահպանեք փոփոխությունները և դուրս եկեք: Վերագործարկեք սերվերը և ստուգեք. Մենք մուտքագրում ենք հրամանի տողում nslookup mail.ru
Պետք է ելք՝

Ոչ հեղինակավոր պատասխան՝ Անուն՝ փոստ: ru Հասցեներ՝ 94.100.191.202

Սա հուշում է, որ մեր սերվերը հիմնականը չէ այս գոտու սպասարկման մեջ (mail.ru), այլ ավելացրել է հարցումներ քեշին:
Այժմ մենք պետք է ստեղծենք DNS գոտի մեր ցանցի համար, որպեսզի մեքենաները կարողանան գտնել տարբեր ցանցային ծառայություններ. կարող են լինել, օրինակ, ցանցային տպիչներ, դրանք կարող են լինել կամ անկախ կամ համօգտագործված այլ աշխատանքային կայաններում:
Մեր գոտին կարելի է անվանել orgname – այսինքն. Կազմակերպության անվանումը.
Առաջին հերթին մենք ստեղծում ենք գոտի, դրա համար մենք կխմբագրենք named.conf.local

#vim /etc/bind/named. կոնֆ. տեղական

և դրան ավելացնել հետևյալը.

գոտի «orgname» (տպեք master; ֆայլ «/etc/bind/db.orgname»; );

Պահպանել և դուրս գալ
Այժմ մենք պետք է ստեղծենք գոտի կազմաձևման ֆայլ

# vim / etc / bind / db . orgname

և դրա մեջ տեղադրեք հետևյալը.
(Խնդրում ենք մեծ ուշադրություն դարձնել կազմաձևման ֆայլի շարահյուսությանը, նույնիսկ կետերը նշանակություն ունեն)

@IN SOA orgname. արմատ. orgname. (20101015 4ժ; թարմացման ժամանակը - 4 ժամ 1ժ; կրկնել ամեն ժամ 1վտ; որքան ժամանակ պահել տեղեկատվությունը - 1 շաբաթ 1դ); Ռեկորդի TTL (ապրելու ժամանակը) 1 օր է @ IN NS orgname: ; nameservername @ IN A 192.168.10.1; A - ռեկորդ - մեր DNS սերվերի IP հասցեն, որը սպասարկում է այս գոտին, @ նշանակում է, որ սա արմատային գոտին է: * IN CNAME @ printer IN A 192.168.10.25; Դուք կարող եք ստեղծել DNS գրառում 192.168.10.25 հասցեում գտնվող ցանցային տպիչի համար

Այժմ, երբ նոր ցանցային սարք ավելացնելիս պետք է 2 բան անել.
1) Պահպանեք IP հասցե DHCP սերվերի վրա, կարող եք կարդալ այն մասին, թե ինչպես դա անել հոդվածում - DHCP սերվերի կարգավորում
2) Ստեղծեք DNS գոտի այս IP-ի համար, մուտքագրեք սարքի անունը XXX.XXX.XXX.XXX-ում: Որտեղ. սարքի անունը սարքի ցանցի անվանումն է. XXX.XXX.XXX.XXX-ն իր IP հասցեն է, որը վերապահված է DHCP սերվերի վրա:

այժմ մենք պետք է խմբագրենք resolv.conf ֆայլը

# vim / etc / resolv . կոնֆ

և մտիր այնտեղ.

nameserver 127.0.0.1

այն ամենը, ինչ եղել է, կարելի է մեկնաբանել՝ դնելով #
սերվերը վերագործարկվում է

#վերագործարկում

Դա արվել է այնպես, որ սերվերը փնտրի ամեն ինչ իր սեփական տվյալների բազայում, և միայն դրանից հետո BIND-ը հարցումները կուղղորդի դեպի սերվեր 8.8.8.8 IP, որի IP-ն ներառված է հրահանգում: առաքիչներ.
Այժմ դուք կարող եք ստուգել ֆունկցիոնալությունը.
Եթե ​​փորձարկումը տեղի է ունենում Windows-ում.

ping սարքի անունը. orgname

Եթե ​​փորձարկենք Linux-ից.

ping սարքի անունը. orgname - գ 4

Ping-ը պետք է գնա IP-ին, որը դուք նշել եք XXX.XXX.XXX.XXX-ի փոխարեն

Հրամանով կարող եք նաև ստուգել հարցումների մշակման արագությունը փորել

# dig @127.0.0.1 tut.by ;<<>> DiG 9.9.5-9+deb8u6-Debian<<>> @127.0.0.1 tut.by ; (գտնվել է 1 սերվեր) ;; գլոբալ ընտրանքներ՝ +cmd ;; Պատասխան ստացա. ;; ->>ԳԼԽԱՎՈՐ<<- opcode: QUERY, status: NOERROR, id: 63893 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;tut.by. IN A ;; ANSWER SECTION: tut.by. 103 IN A 178.172.160.5 tut.by. 103 IN A 178.172.160.4 tut.by. 103 IN A 178.172.160.2 tut.by. 103 IN A 178.172.160.3 ;; AUTHORITY SECTION: . 6029 IN NS i.root-servers.net. . 6029 IN NS b.root-servers.net. . 6029 IN NS m.root-servers.net. . 6029 IN NS k.root-servers.net. . 6029 IN NS e.root-servers.net. . 6029 IN NS d.root-servers.net. . 6029 IN NS j.root-servers.net. . 6029 IN NS g.root-servers.net. . 6029 IN NS l.root-servers.net. . 6029 IN NS f.root-servers.net. . 6029 IN NS h.root-servers.net. . 6029 IN NS a.root-servers.net. . 6029 IN NS c.root-servers.net. ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Mar 22 16:46:24 MSK 2016 ;; MSG SIZE rcvd: 310

DNS-ը (Domain Name System) կարևոր և բավականին դժվար կարգավորվող բաղադրիչ է, որն անհրաժեշտ է կայքերի և սերվերների աշխատանքի համար: Շատ օգտատերեր օգտագործում են DNS սերվերներ, որոնք տրամադրվում են իրենց հոսթինգ մատակարարի կողմից, բայց ձեր սեփական DNS սերվերների սեփականատերը որոշ առավելություններ ունի:

Այս ձեռնարկում դուք կսովորեք, թե ինչպես տեղադրել Bind9-ը և այն կարգավորել որպես Ubuntu 14.04 սերվերի վրա պահող կամ փոխանցող DNS սերվեր:

Պահանջներ

  • Հասկանալով DNS սերվերների հիմնական տեսակները: Մանրամասներին կարող եք ծանոթանալ այստեղ.
  • Երկու մեքենա, որոնցից առնվազն մեկը աշխատում է Ubuntu 14.04-ով: Առաջին մեքենան կկարգավորվի որպես հաճախորդ (IP հասցե 192.0.2.100), իսկ երկրորդը որպես DNS սերվեր (192.0.2.1):

Դուք կսովորեք, թե ինչպես կարգավորել հաճախորդի մեքենան DNS սերվերի միջոցով հարցումներ ուղարկելու համար:

DNS սերվերի քեշավորում

Այս տիպի սերվերները կոչվում են նաև լուծիչներ, քանի որ նրանք մշակում են ռեկուրսիվ հարցումներ և սովորաբար կարող են փնտրել DNS տվյալներ այլ սերվերներից:

Երբ քեշավորող DNS սերվերը վերահսկում է հաճախորդի հարցման պատասխանը, այն վերադարձնում է պատասխանը հաճախորդին և նաև այն պահում է քեշում այն ​​ժամանակահատվածի համար, որը թույլատրվում է համապատասխան DNS գրառումների TTL արժեքով: Այնուհետև քեշը կարող է օգտագործվել որպես հետագա հարցումների պատասխանների աղբյուր՝ ընդհանուր հարցումների մշակման ժամանակը արագացնելու համար:

Ձեր ցանցի կազմաձևման գրեթե բոլոր DNS սերվերները կլինեն քեշավորման սերվերներ: Քեշավորման DNS սերվերը լավ ընտրություն է բազմաթիվ իրավիճակների համար: Եթե ​​դուք չեք ցանկանում ապավինել ձեր հոսթինգի մատակարարի DNS սերվերներին կամ այլ հանրային DNS սերվերներին, ստեղծեք ձեր սեփական քեշավորման DNS սերվերը: Որքան կարճ է հեռավորությունը DNS սերվերից մինչև հաճախորդի մեքենաներ, այնքան ավելի կարճ ժամանակ է պահանջվում DNS հարցումների սպասարկման համար:

DNS սերվերի վերահասցեավորում

Հաճախորդի տեսանկյունից, վերահասցեավորվող DNS սերվերը գրեթե նույնական տեսք կունենա քեշավորման սերվերի հետ, սակայն մեխանիզմներն ու աշխատանքային ծանրաբեռնվածությունը բոլորովին տարբեր են:

Փոխանցող DNS սերվերն ունի նույն առավելությունները, ինչ քեշավորման սերվերը: Այնուամենայնիվ, այն իրականում չի կատարում որևէ ռեկուրսիվ հարցում: Փոխարենը, այն ուղարկում է բոլոր հարցումները արտաքին լուծման սերվերին և այնուհետև պահում է արդյունքները հետագա հարցումների համար:

Սա թույլ է տալիս վերահղման սերվերին սպասարկել հարցումները իր քեշից՝ առանց ռեկուրսիվ հարցումների մշակման: Այսպիսով, այս սերվերը մշակում է միայն մեկ հարցումներ (վերահղված հաճախորդի հարցումներ) և ոչ ամբողջ ռեկուրսիայի ընթացակարգը: Սա կարող է առավելություն լինել սահմանափակ արտաքին թողունակությամբ միջավայրերում, որտեղ քեշավորման սերվերները պետք է հաճախ փոխվեն, և այն իրավիճակներում, երբ տեղական հարցումները պետք է ուղղորդվեն մի սերվեր, իսկ արտաքին հարցումները՝ մյուսին:

1. Տեղադրեք Bind-ը DNS սերվերի վրա

Bind փաթեթը կարելի է գտնել Ubuntu-ի պաշտոնական պահոցում: Թարմացրեք ձեր փաթեթի ինդեքսը և տեղադրեք Bind-ը՝ օգտագործելով apt manager-ը: Դուք նաև պետք է տեղադրեք մի քանի կախվածություն:

sudo apt-get թարմացում
sudo apt-get install bind9 bind9utils bind9-doc

Դրանից հետո կարող եք սկսել սերվերի կարգավորումը: Քեշավորման սերվերի կոնֆիգուրացիան կարող է օգտագործվել որպես վերահասցեավորման սերվերի կազմաձևման ձևանմուշ, այնպես որ նախ պետք է կարգավորել քեշավորման DNS սերվերը:

2. Քեշավորման DNS սերվերի կարգավորում

Նախ անհրաժեշտ է կարգավորել Bind-ը որպես քեշավորման DNS սերվեր: Այս կոնֆիգուրացիան կստիպի սերվերին ռեկուրսիվ կերպով փնտրել հաճախորդների հարցումների պատասխանները այլ DNS սերվերների վրա: Այն հաջորդաբար կհարցնի բոլոր համապատասխան DNS սերվերներին, մինչև պատասխան գտնի:

Bind-ի կազմաձևման ֆայլերը պահվում են /etc/bind գրացուցակում:

Ֆայլերի մեծ մասը խմբագրման կարիք չունի: Հիմնական կազմաձևման ֆայլը կոչվում է named.conf (named-ը և bind-ը նույն հավելվածի երկու անուն են): Այս ֆայլը հղում է անում named.conf.options, named.conf.local և named.conf.default-zones ֆայլերին:

Քեշավորվող DNS սերվերը կարգավորելու համար անհրաժեշտ է միայն խմբագրել named.conf.options:

sudo nano named.conf.options

Այս ֆայլն այսպիսի տեսք ունի (մեկնաբանությունները բաց են թողնվել պարզության համար).

տարբերակներ (
գրացուցակ «/var/cache/bind»;
dnssec-վավերացման ավտոմատ;

listen-on-v6 (ցանկացած; );
};

Քեշավորման սերվեր ստեղծելու համար դուք պետք է ստեղծեք մուտքի վերահսկման ցուցակ կամ ACL:

Դուք պետք է պաշտպանեք DNS սերվերը, որը մշակում է հարձակվողներից ռեկուրսիվ հարցումները: DNS ուժեղացման հարձակումները հատկապես վտանգավոր են, քանի որ դրանք կարող են սերվերին ներգրավել ծառայության հերքման բաշխված գրոհների մեջ:

DNS ուժեղացման հարձակումները սերվերների և կայքերի ոչնչացման եղանակներից մեկն են: Դա անելու համար հարձակվողները փորձում են գտնել հանրային DNS սերվերներ, որոնք մշակում են ռեկուրսիվ հարցումները: Նրանք խաբում են զոհի IP հասցեն և հարցում են ուղարկում, որը շատ մեծ պատասխան կվերադարձնի DNS սերվերին: Այս դեպքում DNS սերվերը չափից շատ տվյալներ է վերադարձնում տուժողի սերվերին՝ ի պատասխան փոքր հարցման՝ մեծացնելով հարձակվողի հասանելի թողունակությունը։

Հանրային ռեկուրսիվ DNS սերվերի հոսթինգը պահանջում է զգույշ կազմաձևում և կառավարում: Ձեր սերվերի կոտրումը կանխելու համար կազմաձևեք IP հասցեների կամ ցանցային տիրույթների ցանկը, որոնց սերվերը կարող է վստահել:

Նախքան ընտրանքների բլոկը, ավելացրեք acl բլոկ: Ստեղծեք պիտակ ACL խմբի համար (այս ձեռնարկում խումբը կոչվում է goodclients):

լավ հաճախորդներ (
};
տարբերակներ (
. . .

Այս բլոկում նշեք IP հասցեները կամ ցանցերը, որոնք մուտք կունենան այս DNS սերվերին: Քանի որ սերվերը և հաճախորդը աշխատում են /24 ենթացանցում, կարող եք սահմանափակել մուտքը դեպի այս ենթացանց: Դուք նաև պետք է ապաշրջափակեք localhost-ը և localnets-ը, որոնք ավտոմատ կերպով միանում են:

լավ հաճախորդներ (
192.0.2.0/24;
localhost;
տեղական ցանցեր;
};
տարբերակներ (
. . .

Դուք այժմ ունեք ապահով հաճախորդ ACL: Դուք կարող եք սկսել կարգավորել հարցումների լուծումը ընտրանքների բլոկում: Դրան ավելացրեք հետևյալ տողերը.

տարբերակներ (
գրացուցակ «/var/cache/bind»;
ռեկուրսիա այո;

. . .

Ընտրանքների բլոկը բացահայտորեն հնարավորություն է տալիս ռեկուրսիա և այնուհետև կարգավորում է թույլտվություն-հարցման տարբերակը ACL-ն օգտագործելու համար: Դուք կարող եք նաև օգտագործել մեկ այլ պարամետր, ինչպիսին է թույլտվություն-ռեկուրսիան, ACL խմբին անդրադառնալու համար: Երբ ռեկուրսիան միացված է, թույլտվություն-ռեկուրսիան կսահմանի հաճախորդների ցանկը, որոնք կարող են օգտվել ռեկուրսիվ ծառայություններից:

Այնուամենայնիվ, եթե թույլ-ռեկուրսիան սահմանված չէ, Bind-ը վերադառնում է allow-query-cache ցուցակին, այնուհետև թույլտվության հարցումների ցանկին և վերջապես լռելյայն տեղական ցանցերի և localhost ցուցակներին: Քանի որ մենք միայն տեղադրում ենք քեշավորման սերվեր (այն չունի իր սեփական գոտիները և չի ուղարկում հարցումներ), թույլատրելի հարցումների ցանկը երբևէ կկիրառվի միայն ռեկուրսիային: Սա ACL-ի սահմանման ամենատարածված ձևն է:

Պահպանեք և փակեք ֆայլը:

Սրանք բոլոր այն կարգավորումներն են, որոնք պետք է ավելացվեն քեշավորման DNS սերվերի կազմաձևման ֆայլին:

ՆշումԵթե ​​ցանկանում եք օգտագործել միայն այս տեսակի DNS, անցեք ստուգելու կազմաձևերը, վերագործարկեք ծառայությունը և կարգավորեք ձեր հաճախորդը:

3. Վերահղման DNS սերվերի կարգավորում

Եթե ​​ձեր ենթակառուցվածքն ավելի հարմար է փոխանցման DNS սերվերի համար, կարող եք մի փոքր կարգավորել կարգավորումը:

Ներկայումս named.conf.options ֆայլն ունի հետևյալ տեսքը.

լավ հաճախորդներ (
192.0.2.0/24;
localhost;
տեղական ցանցեր;
};
տարբերակներ (
գրացուցակ «/var/cache/bind»;
ռեկուրսիա այո;
թույլտվություն-հարցում (լավ հաճախորդներ;);
dnssec-վավերացման ավտոմատ;
auth-nxdomain no; # համապատասխանել RFC1035-ին
listen-on-v6 (ցանկացած; );
};

Դուք կարող եք օգտագործել նույն ACL-ը՝ DNS սերվերը հաճախորդների հատուկ ցանկով սահմանափակելու համար: Այնուամենայնիվ, սա պահանջում է կազմաձևման մի փոքր փոփոխություն, որպեսզի սերվերն այլևս չփորձի կատարել ռեկուրսիվ հարցումներ:

Մի փոխեք ռեկուրսիան ոչ-ի: Վերահղման սերվերը դեռևս աջակցում է ռեկուրսիվ ծառայություններ: Վերահղման սերվերը կարգավորելու համար դուք պետք է ստեղծեք քեշավորման սերվերների ցանկ, որոնց այն կվերահղորդի հարցումները:

Սա արվում է Options() բլոկում: Նախ, դրա մեջ պետք է ստեղծեք նոր փոխանցողների բլոկ, որտեղ կպահվեն ռեկուրսիվ անունների սերվերների IP հասցեները, որոնց վրա ցանկանում եք վերահղել հարցումները: Այս դեպքում դրանք կլինեն Google DNS սերվերներ (8.8.8.8 և 8.8.4.4).

. . .
տարբերակներ (
գրացուցակ «/var/cache/bind»;
ռեկուրսիա այո;
թույլտվություն-հարցում (լավ հաճախորդներ;);
առաքիչներ (

8.8.8.8;

8.8.4.4;

};
. . .

Արդյունքում կազմաձևումն ունի հետևյալ տեսքը.

լավ հաճախորդներ (
192.0.2.0/24;
localhost;
տեղական ցանցեր;
};
տարբերակներ (
գրացուցակ «/var/cache/bind»;
ռեկուրսիա այո;
թույլտվություն-հարցում (լավ հաճախորդներ;);
առաքիչներ (
8.8.8.8;
8.8.4.4;
};
միայն առաջ;
dnssec-վավերացման ավտոմատ;
auth-nxdomain no; # համապատասխանել RFC1035-ին
listen-on-v6 (ցանկացած; );
};

Վերջին փոփոխությունը վերաբերում է dnssec պարամետրին: Ընթացիկ կազմաձևով և կախված DNS սերվերների կարգավորումներից, որոնց վերահղված են հարցումները, գրանցամատյաններում կարող են հայտնվել հետևյալ սխալները.

Հունիսի 25 15:03:29 անունով քեշը. սխալ (հետապնդել DS սերվերներին) լուծելիս «in-addr.arpa/DS/IN»՝ 8.8.8.8#53
Հունիսի 25 15:03:29 քեշի անունը՝ սխալ (առանց վավեր DS) լուծելիս «111.111.111.111.in-addr.arpa/PTR/IN»՝ 8.8.4.4#53

Դրանցից խուսափելու համար դուք պետք է փոխեք dnssec-validation պարամետրը դեպի այո և բացահայտորեն միացնեք dnssec-ը:

. . .
միայն առաջ;
dnssec-միացնել այո;
dnssec-վավերացում այո;
auth-nxdomain no; # համապատասխանել RFC1035-ին
. . .

Պահպանեք և փակեք ֆայլը: Փոխանցման DNS սերվերի կարգավորումն ավարտված է:

4. Ստուգեք կարգավորումները և վերագործարկեք Bind-ը

Այժմ դուք պետք է համոզվեք, որ կարգավորումներն աշխատում են այնպես, ինչպես սպասվում էր:

Կազմաձևման ֆայլերի շարահյուսությունը ստուգելու համար մուտքագրեք.

sudo named-checkconf

Եթե ​​ֆայլերում սխալներ չկան, հրամանի տողը որևէ արդյունք չի ցուցադրի:

Եթե ​​սխալի հաղորդագրություն եք ստանում, ուղղեք այն և նորից փորձարկեք:

Այնուհետև կարող եք վերագործարկել Bind daemon-ը՝ կարգավորումները թարմացնելու համար:

sudo ծառայության bind9 վերագործարկումը

Ապա դուք պետք է ստուգեք սերվերի տեղեկամատյանները: Գործարկեք հրամանը սերվերի վրա.

sudo tail -f /var/log/syslog

Այժմ բացեք նոր տերմինալ և սկսեք կարգավորել հաճախորդի մեքենան:

5. Հաճախորդի կարգավորում

Մուտք գործեք հաճախորդի մեքենա: Ստուգեք, որ հաճախորդը նշված է կազմաձևված DNS սերվերի ACL խմբում: Հակառակ դեպքում, DNS սերվերը կհրաժարվի սպասարկել այս հաճախորդի հարցումները:

Խմբագրեք /etc/resolv.conf ֆայլը՝ սերվերը դեպի անունների սերվեր ուղղելու համար:

Այստեղ կատարված փոփոխությունները կպահպանվեն միայն մինչև վերաբեռնումը, ինչը հիանալի է փորձարկման համար: Եթե ​​դուք գոհ եք թեստի կարգավորումների արդյունքներից, կարող եք այս կարգավորումները դարձնել մշտական:

Բացեք ֆայլը sudo-ով տեքստային խմբագրիչում.

sudo nano /etc/resolv.conf

Ֆայլը պետք է թվարկի DNS սերվերները, որոնք կօգտագործվեն հարցումները լուծելու համար: Դա անելու համար օգտագործեք nameserver հրահանգը: Մեկնաբանեք բոլոր ընթացիկ գրառումները և ավելացրեք անունների սերվերի տող, որը մատնացույց է անում ձեր DNS սերվերին.

nameserver 192.0.2.1
# nameserver 8.8.4.4
# nameserver 8.8.8.8
# nameserver 209.244.0.3

Պահպանեք և փակեք ֆայլը:

Այժմ կարող եք ուղարկել փորձարկման հարցում՝ համոզվելու համար, որ այն ճիշտ է լուծում:

Դրա համար կարող եք օգտագործել ping.

ping -c 1 google.com
PING google.com (173.194.33.1) 56 (84) բայթ տվյալներ:
64 բայթ sea09s01-in-f1.1e100.net-ից (173.194.33.1): icmp_seq=1 ttl=55 ժամանակ=63,8 ms
--- google.com ping վիճակագրություն ---
1 փաթեթ փոխանցված, 1 ստացված, 0% փաթեթի կորուստ, ժամանակը 0ms
rtt min/avg/max/mdev = 63.807/63.807/63.807/0.000 ms

Վերև