DNS

DNS
Nimi Domain Name System
Taso ( OSI-mallin mukaan ) Sovellettu
Perhe TCP/IP
Portti/ID 53/ TCP , 53/ UDP
Protokollan tarkoitus Domain-nimen ratkaisu
Erittely RFC 1034 , RFC 1035 /STD 13
Tärkeimmät toteutukset (asiakkaat) Sisäänrakennettu kaikkiin verkkokäyttöjärjestelmiin
Ydintoteutukset ( palvelimet ) BIND , NSD , PowerDNS tai Microsoft DNS Server
 Mediatiedostot Wikimedia Commonsissa

DNS ( englanniksi  Domain Name System  "domain name system") on tietokoneella hajautettu järjestelmä verkkotunnuksia koskevien tietojen hankkimiseksi . Yleisimmin käytetään IP-osoitteen saamiseen isäntänimestä ( tietokoneesta tai laitteesta), sähköpostin reititystietojen saamiseksi ja/tai toimialueen protokollien palvelinisännistä ( SRV-tietue ).

Hajautettua DNS-tietokantaa tukee DNS-palvelimien hierarkia, jotka ovat vuorovaikutuksessa tietyn protokollan kautta .

DNS:n perustana on ajatus hierarkkisesta nimirakenteesta ja vyöhykkeistä . Jokainen nimestä vastuussa oleva palvelin voi siirtää vastuun verkkotunnuksen lisäosasta toiselle palvelimelle (hallinnollisesta näkökulmasta - toiselle organisaatiolle tai henkilölle), mikä mahdollistaa vastuun siirtämisen tiedon relevanssista eri palvelimille. organisaatiot (henkilöt), jotka ovat vastuussa vain "omasta" osasta verkkotunnuksen nimestä.

Vuodesta 2010 lähtien DNS-järjestelmä on toteuttanut tiedon eheystarkistuksia nimeltä DNS Security Extensions ( DNSSEC ). Lähetettyä dataa ei salata, vaan sen aitous varmistetaan kryptografisin menetelmin. Toteutettu DANE - standardi varmistaa luotettavan kryptografisen tiedon ( sertifikaattien ) siirron DNS:n avulla, jota käytetään luomaan suojattuja yhteyksiä kuljetus- ja sovelluskerrosten välille .

DNS:n tärkeimmät ominaisuudet

DNS:llä on seuraavat ominaisuudet:

DNS on tärkeä Internetin toiminnalle , koska isännän IP-osoitteen tietoja tarvitaan muodostaaksesi yhteyden isäntään, ja ihmisten on helpompi muistaa aakkosellinen (yleensä merkityksellinen) osoitteet kuin numerosarja. Joissakin tapauksissa tämä mahdollistaa virtuaalisten palvelimien, kuten HTTP-palvelimien, käytön, mikä erottaa ne pyynnön nimellä. Aluksi muunnos toimialueen ja IP-osoitteiden välillä tehtiin käyttämällä erityistä tekstitiedostoa hosts , joka käännettiin keskitetysti ja lähetettiin automaattisesti jokaiselle sen paikallisverkon koneelle. Webin kasvun myötä tarvittiin tehokas, automatisoitu mekanismi, josta tuli DNS.

DNS:n kehitti Paul Mokapetris vuonna 1983 ; alkuperäinen kuvaus toimintamekanismeista on RFC 882 :ssa ja RFC 883 :ssa . Vuonna 1987 RFC 1034 :n ja RFC 1035 :n julkaiseminen muutti DNS-spesifikaatiota ja poistui RFC 882 :sta , RFC 883 :sta ja RFC 973:sta .

Lisäominaisuudet

Historia

Yksinkertaisemman ja mieleenpainuvamman nimen käyttö numeerisen isäntäosoitteen sijaan on peräisin ARPANET - aikakaudelta . Stanford Research Institute (nykyisin SRI International ) ylläpiti tekstitiedostoa HOSTS.TXT, joka yhdistä isäntänimet numeerisiin tietokoneosoitteisiin ARPANETissa . Numeeristen osoitteiden ylläpidosta, jota kutsutaan osoitettujen numeroiden luetteloksi, hoiti Jon Postel Etelä-Kalifornian yliopiston Information Science Institutesta (ISI), jonka tiimi työskenteli tiiviisti NII:n kanssa [1] .

Osoitteet määritettiin manuaalisesti. Pyydäkseen isäntänimeä ja osoitetta ja lisätäkseen tietokoneen perustiedostoon käyttäjät ottivat yhteyttä Elisabeth Feinlerin johtamaan SRI Network Information Centeriin (NIC) puhelimitse työaikana.

1980-luvun alkuun mennessä yhden, keskitetyn isäntätaulukon ylläpitämisestä oli tullut hidasta ja hankalaa, ja kasvava verkko tarvitsi automaattisen nimeämisjärjestelmän teknisten ja henkilöstöongelmien ratkaisemiseksi. Postel asetti itselleen tehtävän löytää kompromissi viiden kilpailevan ehdotuksen välillä Paul Mokapetrisin ongelman ratkaisemiseksi. Mokapetris loi sen sijaan käsitteen hierarkkisesta verkkotunnusjärjestelmästä.

IETF - työryhmä julkaisi alkuperäiset RFC 882- ja RFC 883 -määritykset marraskuussa 1983.

Vuonna 1984 neljä UC Berkeleyn opiskelijaa, Douglas Terry, Mark Painter, David Riggle ja Songnian Zhou, kirjoittivat ensimmäisen version BIND - nimipalvelimesta (Berkeley Internet Name Daemon) . Vuonna 1985 DEC:n Kevin Dunlap uudisti merkittävästi DNS-toteutusta. Mike Karel, Phil Almquist ja Paul Vixey ovat tukeneet BINDiä siitä lähtien. 1990-luvun alussa BIND siirrettiin Windows NT -alustalle . Se on laajalle levinnyt erityisesti Unix-järjestelmissä, ja se on edelleen Internetin yleisimmin käytetty DNS-ohjelmisto.

Marraskuussa 1987 DNS-määritykset - RFC 1034 ja RFC 1035 - otettiin käyttöön . Sen jälkeen on otettu käyttöön satoja RFC :itä, jotka muuttavat ja täydentävät DNS:ää.

Tietoturvaongelmat

Aluksi turvallisuushuolet eivät olleet suuria näkökohtia DNS-ohjelmiston kehittämisessä tai minkään varhaisessa Internetissä käytettävässä ohjelmistossa, koska verkko ei ollut avoin suurelle yleisölle. Internetin kasvu kaupallisella alalla 1990-luvulla muutti kuitenkin tietoturvatoimenpiteiden vaatimuksia tietojen eheyden ja käyttäjien todentamisen suojelemiseksi.

Hyökkääjät ovat löytäneet ja hyödyntäneet useita haavoittuvuuksia. Yksi tällaisista ongelmista on DNS-välimuistin myrkytys , jossa tiedot välitetään välimuistin ratkaisejiin sillä teeskennellä, että ne ovat arvovaltainen alkuperäpalvelin, mikä saastuttaa tietosäilön mahdollisesti väärillä tiedoilla ja pitkillä vanhenemispäivillä (eli aika). Tämän jälkeen laillisten sovellusten pyynnöt voidaan ohjata hyökkääjän hallitsemille verkkoisäntäkoneille.

DNS-vastauksia ei aiemmin allekirjoitettu kryptografisesti, mikä mahdollistaa useita hyökkäysvaihtoehtoja. Modernit Domain Name Security Extensions ( DNSSEC ) muokkaavat DNS:ää ja lisäävät tuen kryptografisesti allekirjoitetuille vastauksille. Muut laajennukset, kuten TSIG, lisäävät tuen salaustodennusta luotettujen kumppanien välillä, ja niitä käytetään yleisesti vyöhykkeiden siirtojen tai dynaamisten päivitystoimintojen valtuutukseen.

Joitakin verkkotunnuksia voidaan käyttää huijausvaikutusten aikaansaamiseen. Esimerkiksi paypal.com ja paypa1.com ovat eri nimiä, mutta käyttäjät eivät välttämättä pysty erottamaan niitä graafisesta käyttöliittymästä riippuen käyttäjän valitsemasta kirjasimesta. Monissa fonteissa kirjain l ja numero 1 näyttävät hyvin samanlaisilta tai jopa identtisiltä. Tämä ongelma on akuutti järjestelmissä, jotka tukevat kansainvälistyneiden verkkotunnusten nimiä, koska monet ISO 10646 -merkkikoodeista voidaan näyttää tyypillisillä tietokoneen näytöillä. Tätä haavoittuvuutta käytetään joskus hyväksi tietojenkalastelussa .

Tekniikoita, kuten käänteinen DNS suoralla tietueen validoinnilla, voidaan myös käyttää DNS-tulosten vahvistamiseen, mutta ne eivät ole kryptografisesti kelvollisia. tämä ei ota huomioon mahdollisuutta korvata reititystiedot ( englanniksi  BGP-kaappaus ).

Terminologia ja toimintaperiaatteet

DNS:n keskeiset käsitteet ovat:

DNS - järjestelmä sisältää DNS - palvelimien hierarkian , joka vastaa vyöhykehierarkiaa . Jokaista vyöhykettä tukee vähintään yksi arvovaltainen DNS-palvelin ( englannin kielestä  authoritative  - authoritative), joka sisältää tietoja toimialueesta.

Nimi ja IP-osoite eivät ole identtisiä  - yhdellä IP-osoitteella voi olla useita nimiä, mikä mahdollistaa useiden verkkosivustojen tukemisen yhdellä tietokoneella (tätä kutsutaan virtuaaliseksi hosting -palveluksi ). Päinvastoin on myös totta - monet IP-osoitteet voidaan yhdistää samaan nimeen: näin voit luoda kuormituksen tasapainotuksen .

Järjestelmän vakauden lisäämiseksi käytetään monia identtisiä tietoja sisältäviä palvelimia, ja protokollalla on keinot ylläpitää eri palvelimilla sijaitsevien tietojen synkronointia. Pääpalvelimia on 13 , niiden osoitteet eivät käytännössä muutu. [2]

DNS-protokolla käyttää TCP- tai UDP - porttia 53 vastatakseen kyselyihin. Perinteisesti pyynnöt ja vastaukset lähetetään yhtenä UDP-datagrammina . TCP:tä käytetään, kun vastausdatan koko ylittää 512 tavua ja AXFR- pyyntöihin.

Rekursio

Termi rekursio DNS:ssä viittaa DNS-palvelimen käyttäytymisalgoritmiin : "suorita asiakkaan puolesta täydellinen tarvittavien tietojen haku koko DNS-järjestelmästä, tarvittaessa viitaten muihin DNS-palvelimiin" .

DNS-kysely voi olla rekursiivinen  - vaatii täyden haun - ja ei-rekursiivinen (tai iteratiivinen ) - ei vaadi täyttä hakua.

Vastaavasti DNS-palvelin voi olla rekursiivinen (pystyy suorittamaan täydellisiä hakuja) ja ei-rekursiivinen (ei pysty suorittamaan täydellisiä hakuja). Jotkut DNS-palvelinohjelmistot, kuten BIND , voidaan määrittää tekemään kyselyitä joillekin asiakkaille rekursiivisesti ja toisille ei - rekursiivisesti .

Kun DNS-palvelin vastaa ei-rekursiiviseen kyselyyn sekä kyvyttömyyteen tai kieltoon suorittaa rekursiivisia kyselyitä, DNS-palvelin joko palauttaa tietoja vyöhykkeestä, josta se on vastuussa , tai palauttaa virheen. Ei-rekursiivisen palvelimen asetukset, kun vastaus palauttaa niiden palvelimien osoitteet, joilla on enemmän tietoa pyydetystä vyöhykkeestä kuin vastaavalla palvelimella (useimmiten juuripalvelimien osoitteet), ovat virheellisiä ja tällainen palvelin voi olla käytetään DoS-hyökkäysten järjestämiseen .

Rekursiivisen kyselyn tapauksessa DNS-palvelin pollaa palvelimia (nimessä olevan vyöhyketason alenevassa järjestyksessä), kunnes se löytää vastauksen tai havaitsee, että verkkotunnusta ei ole olemassa (käytännössä haku alkaa lähimmästä DNS:stä palvelimet haluttuun palvelimeen, jos tiedot niistä ovat saatavilla välimuistissa ja ajan tasalla, palvelin ei voi tehdä kyselyjä muille DNS-palvelimille).

Harkitse esimerkkiä koko järjestelmän toiminnasta.

Oletetaan, että kirjoitimme selaimeen osoitteen ru.wikipedia.org. Selain etsii vastaavuutta tämän osoitteen ja hosts - tiedostossa olevan IP - osoitteen välillä . Jos tiedosto ei sisällä vastaavuutta, selain kysyy DNS-palvelimelta: "mikä on IP-osoite ru.wikipedia.org"? DNS-palvelin ei kuitenkaan välttämättä tiedä mitään pyydetystä nimestä, vaan jopa koko toimialueesta wikipedia.org. Tässä tapauksessa palvelin ottaa yhteyttä juuripalvelimeen  - esimerkiksi 198.41.0.4. Tämä palvelin sanoo - "Minulla ei ole tietoa tästä osoitteesta, mutta tiedän, että 204.74.112.1 on vastuussa vyöhykkeestä org." Sitten DNS-palvelin lähettää pyyntönsä numeroon 204.74.112.1, mutta se vastaa "Minulla ei ole tietoa tästä palvelimesta, mutta tiedän, että 207.142.131.234 vastaa vyöhykkeestä wikipedia.org." Lopuksi sama pyyntö lähetetään kolmannelle DNS-palvelimelle ja vastaanottaa vastauksen - IP-osoitteen, joka lähetetään asiakkaalle - selaimelle.

Tässä tapauksessa nimeä selvitettäessä eli etsittäessä IP-osoitetta nimellä:

Joskus on mahdollista, että pyydetty palvelin lähettää rekursiivisen kyselyn "ylävirran" DNS-palvelimelle ja odottaa valmis vastausta.

Rekursiivisen kyselyn käsittelyn avulla kaikki vastaukset kulkevat DNS-palvelimen kautta, ja se saa mahdollisuuden tallentaa ne välimuistiin . Toistuva samojen nimien pyyntö ei yleensä ylitä palvelimen välimuistia , muille palvelimille ei soiteta ollenkaan. Vastauksille sallittu välimuistiaika tulee vastausten mukana ( resurssitietueen TTL -kenttä ).

Rekursiiviset pyynnöt vaativat enemmän resursseja palvelimelta (ja luovat enemmän liikennettä), joten ne hyväksytään yleensä palvelimen omistajan tuntemista solmuista (esimerkiksi palveluntarjoaja tarjoaa mahdollisuuden tehdä rekursiivisia pyyntöjä vain asiakkailleen, yrityksissä verkko, rekursiiviset pyynnöt hyväksytään vain paikalliselta segmentiltä). Ei-rekursiiviset kyselyt vastaanotetaan yleensä kaikilta verkon isänniltä (ja vain isäntäkoneen isännöimää vyöhykettä koskevat kyselyt saavat merkityksellisen vastauksen, muiden vyöhykkeiden DNS-kyselyt palauttavat yleensä muiden palvelimien osoitteet).

Käänteinen DNS-kysely

DNS:ää käytetään ensisijaisesti symbolisten nimien ratkaisemiseen IP-osoitteiksi, mutta se voi suorittaa myös käänteisen prosessin. Tätä varten käytetään olemassa olevia DNS-työkaluja. Tosiasia on, että erilaisia ​​tietoja voidaan verrata DNS-tietueeseen, mukaan lukien jokin symbolinen nimi. On olemassa erityinen verkkotunnus in-addr.arpa, jonka merkintöjä käytetään IP-osoitteiden muuntamiseen symbolisiksi nimiksi. Jos haluat esimerkiksi saada DNS-nimen osoitteelle 11.22.33.44, voit kysyä DNS-palvelimelta merkinnän 44.33.22.11.in-addr.arpaja se palauttaa vastaavan symbolisen nimen. IP-osoitteen osien kirjoitusjärjestys on käänteinen, koska IP-osoitteissa korkeat bitit sijaitsevat alussa ja symbolisissa DNS-nimissä korkeat bitit (lähempänä juuria) sijaitsevat lopussa.

DNS-tietueet

DNS-tietueet tai resurssitietueet ( englanniksi  resurssitietueet , RR ) ovat tiedon tallennus- ja siirtoyksiköitä DNS:ssä. Jokainen resurssitietue koostuu seuraavista kentistä [3] :

Tärkeimmät DNS-tietueiden tyypit ovat:

Varatut verkkotunnukset

RFC 2606 ( Reserved Top Level DNS Names) määrittelee verkkotunnukset, joita tulee käyttää esimerkkeinä (esimerkiksi dokumentaatiossa) ja myös testaustarkoituksiin. example.com, example.orgjaexample.net lisäksi tähän ryhmään kuuluvat myös testjne invalid.

Kansainvälistyneet verkkotunnukset

Verkkotunnus voi koostua vain rajoitetusta ASCII - merkkijoukosta, jolloin verkkotunnuksen osoite voidaan kirjoittaa käyttäjän kielestä riippumatta. ICANN on hyväksynyt Punycode - pohjaisen IDNA -järjestelmän , joka muuntaa minkä tahansa Unicode -merkkijonon kelvolliseksi DNS-merkistöksi.

DNS-ohjelmisto

Nimipalvelimet:

Katso myös

Muistiinpanot

  1. IEEE Annals [3B2-9] man2011030074.3p 11:54. . - 29.7.011. — Sivu 74 s.
  2. ↑ Juurivyöhykkeen nykyinen versio sijaitsee aina osoitteessa: ftp://ftp.internic.net/domain/named.root
  3. 1 2 Domain Name System (DNS) IANA-  näkökohdat . tools.ietf.org. Haettu 7. helmikuuta 2019. Arkistoitu alkuperäisestä 2. elokuuta 2020.
  4. P.V. Mockapetris. Verkkotunnukset - käsitteet ja palvelut  . tools.ietf.org. Haettu 7. helmikuuta 2019. Arkistoitu alkuperäisestä 23. kesäkuuta 2018.
  5. P.V. Mockapetris. Verkkotunnukset - toteutus ja määrittely  (englanniksi) . tools.ietf.org. Haettu 7. helmikuuta 2019. Arkistoitu alkuperäisestä 3. huhtikuuta 2019.

Linkit

Artikkelit

RFC:t