Geschiedenis van DNS
In de jaren 70 werden mensen het beu om de IP-adressen te onthouden van de servers waartoe ze toegang wilden hebben. Tegelijkertijd ontstond het idee om een eenvoudigere en beter te onthouden naam te gebruiken in plaats van een numeriek hostadres.
Medewerkers van het Stanford Research Institute bedachten een tekstbestand HOSTS.TXT , dat een lijst met tekenreeksnamen en de bijbehorende numerieke adressen van computers op het ARPANET bevatte.
Adressen werden handmatig toegewezen. Om een hostnaam en -adres aan te vragen of een computer aan het hoofdbestand toe te voegen, namen gebruikers tijdens kantooruren telefonisch contact op met het netwerkinformatiecentrum van Stanford.
Aan het begin van de jaren tachtig was het onderhouden van een enkele, gecentraliseerde hosttabel traag en omslachtig geworden, en het groeiende netwerk had een automatisch naamgevingssysteem nodig om technische en personele problemen op te lossen.
In 1984 schreven vier studenten van UC Berkeley de eerste versie van het hiërarchische domeinnaamsysteem. Het wordt nu veel gebruikt, vooral op Unix-systemen, en is nog steeds de meest gebruikte DNS-software op internet.
Inleiding tot DNS
Domain Name System (DNS) is een distributiesysteem voor het opslaan en ophalen van informatie over domeinen. Het wordt meestal gebruikt om een IP-adres van een hostnaam (computer of apparaat) te verkrijgen, mailrouteringsinformatie te verkrijgen en/of hosts te bedienen voor protocollen in een domein.
Het systeem is georganiseerd in de vorm van een bepaalde hiërarchie van DNS-servers die samenwerken volgens een bepaald protocol. De basis voor het begrijpen van DNS is het begrijpen van de hiërarchische structuur van de naam en zones.
Elke server die verantwoordelijk is voor een domeinzone kan de verantwoordelijkheid voor een ander deel van het domein overdragen aan een andere server, wat het mogelijk maakt om de verantwoordelijkheid voor de relevantie van informatie toe te wijzen aan de servers van verschillende organisaties die alleen verantwoordelijk zijn voor "hun" deel van de domeinnaam.
Het DNS-systeem bevat een hiërarchie van DNS-servers die overeenkomt met de zonehiërarchie. Elke zone wordt ondersteund door ten minste één gezaghebbende DNS-server die informatie over het domein host.
Belangrijk! De naam en het IP-adres hebben niet noodzakelijk één op één met elkaar te maken. Eén IP-adres kan meerdere domeinnamen hebben, waardoor u meerdere websites op één computer kunt ondersteunen (dit wordt shared hosting genoemd ).
Het kan ook andersom - aan één domeinnaam kunnen veel IP-adressen gekoppeld worden: hiermee creëer je loadbalancing en wordt er actief gebruik van gemaakt in CDN-netwerken .
Om de stabiliteit van het systeem te vergroten, worden veel servers met identieke informatie gebruikt en het protocol heeft middelen om de synchronisatie van informatie op verschillende servers te behouden. Er zijn 13 rootservers, hun adressen veranderen praktisch niet.
Interessant! Het DNS-protocol gebruikt TCP- of UDP-poort 53 om te reageren op vragen. Traditioneel worden verzoeken en antwoorden als één UDP-datagram verzonden. TCP wordt gebruikt wanneer de responsgegevens groter zijn dan 512 bytes.
DNS-records
De DNS-server slaat een set parameters op voor elke domeinnaam. Dit zijn records over de domeinnaam, het IP-adres en verschillende service-informatie.
Er zijn in totaal enkele tientallen van dergelijke inzendingen, dus we zullen alleen de meest populaire bekijken:
A | Adres | IP adres |
AAAA | Adres IPv6 | Adres in IPv6-formaat |
CNAME | Canonieke naam | Canonieke naam voor alias |
MX | mail wisselaar | E-mailgatewayadres voor domein |
NS | naam server | Het adres van het knooppunt dat verantwoordelijk is voor de domeinzone |
SOA | Begin van autoriteit | Vermelding van het gezag van informatie |
SRV | server selectie | Serverlocaties opgeven voor services |
PTR | wijzer | Adresnaamovereenkomst - Omgekeerde overeenkomst voor A en AAAA |
tekst | tekst reeks | Schrijf willekeurige binaire gegevens, tot 255 bytes |
De meest interessante hier zijn:
- Met het A- record kunt u een IP-adres opgeven dat overeenkomt met een domein.
- Met CNAME kunt u een synoniem voor de naam instellen, bijvoorbeeld www.codegym.cc == codegym.cc.
- Het MX- record bevat informatie over de mailserver: wat te doen als er een brief binnenkomt op xxx@codegym.cc.
- NS - geeft het adres aan van de DNS-server, die informatie over dit domein bevat. Handig wanneer records in de cache worden opgeslagen en worden opgeslagen op niet-native knooppunten.
IP-adres zoeken
Laten we eens kijken hoe het DNS-systeem werkt.
Stel dat u api.codegym.cc in uw browser hebt getypt. De browser neemt contact op met de lokale DNS-service en vraagt u om een IP-adres voor het domein api.codegym.cc op te geven. Dit is wat er daarna zal gebeuren...
Eerst kijkt de DNS-service of dit domein in het lokale hosts-bestand op uw computer staat. Als dat zo is, wordt het IP-adres ervan overgenomen. Zo niet, dan stuurt hij een verzoek naar de hem bekende DNS-server: “Wat is het IP-adres van api.codegym.cc?”.
Het is echter mogelijk dat de DNS-server niets weet, niet alleen over de gevraagde naam, maar zelfs over het hele codegym.cc-domein. In dit geval maakt de server contact met de rootserver, bijvoorbeeld 198.41.0.4. Deze server zegt: "Ik heb geen informatie over dit adres, maar ik weet dat 204.74.112.1 verantwoordelijk is voor de ru-zone."
Vervolgens stuurt de DNS-server zijn verzoek naar 204.74.112.1, maar het antwoordt: "Ik heb geen informatie over deze server, maar ik weet dat 207.142.131.234 verantwoordelijk is voor de zone codegym.cc.". Ten slotte wordt hetzelfde verzoek naar een derde DNS-server gestuurd en ontvangt een antwoord - een IP-adres, dat wordt verzonden naar de client, dat wil zeggen de browser.
In dit geval werkten de volgende regels tijdens het zoeken naar een IP op naam:
- De browser heeft een recursief verzoek verzonden naar een bekende DNS-server (als reactie op dit type verzoek moet de server een IP-adres retourneren, of een leeg antwoord en een NXDOMAIN-foutcode).
- De DNS-server die het verzoek van de browser ontving, stuurde achtereenvolgens niet-recursieve verzoeken, waarop hij antwoorden ontving van andere DNS-servers, totdat hij een antwoord ontving van de server die verantwoordelijk is voor de aangevraagde zone.
- De rest van de genoemde DNS-servers verwerkten verzoeken niet-recursief (en zouden hoogstwaarschijnlijk verzoeken niet recursief hebben verwerkt, zelfs als een dergelijke vereiste in het verzoek stond).
Het is soms mogelijk dat de aangevraagde server een recursieve query naar een "upstream" DNS-server stuurt en wacht op een gereed antwoord.
Belangrijk! Bij recursieve queryverwerking gaan alle antwoorden via de DNS-server en krijgt deze de mogelijkheid om ze in de cache op te slaan. Een herhaald verzoek om dezelfde domeinnamen komt meestal niet verder dan de cache van de server en oproepen naar andere servers komen helemaal niet voor.
De toegestane cachetijd voor antwoorden wordt geleverd met de antwoorden (TTL-veld van het bronrecord).
hosts-bestand
We hebben gemerkt dat de eerste zoekopdracht in het lokale hosts-bestand staat. Dit is de erfgenaam van het HOSTS.TXT-bestand, dat werd uitgevonden in de dagen van ARPANET. Ja, het bestaat nog steeds en is nog steeds in gebruik.
Het is gelegen langs het pad:
- /etc/hosts op Linux.
- %SystemRoot%\system32\drivers\etc\hosts op Windows.
- /systeem/etc/hosts op Android.
Meestal bevat het bestand een locatiedefinitie voor het localhost-knooppunt:
127.0.0.1 localhost
De structuur is heel eenvoudig: eerst komt het IP-adres, dan de domeinnaam.
Bruikbaar
Met behulp van het hosts-bestand is het mogelijk om advertenties te filteren door domeinadressen van banners om te leiden naar het adres 127.0.0.0, 127.0.0.1 of 0.0.0.0.
Het gebruik van 127.0.0.1 wordt over het algemeen niet aanbevolen, aangezien dit resulteert in een responstime-out en bijbehorende vertragingen als de server niet bestaat of verkeerd is geconfigureerd. En als u een advertentiedomein toewijst aan het IP-adres 0.0.0.0, vallen alle verzoeken ernaar onmiddellijk weg).
Openbare DNS-servers
Meestal krijgt u een DNS-server bij uw internetservice wanneer u deze aansluit. Maar zo'n gratis DNS-server is niet altijd de beste optie. Bovendien wilt u misschien niet elke keer dat u een site bezoekt een query met de domeinnaam naar de DNS-server van uw ISP sturen.
Daarom schakelen veel mensen liever over op openbare gratis DNS-servers. Ten eerste zijn ze erg snel en hebben ze een grote cache met domeinnamen. U krijgt een snellere laadtijd van de site en uptime met een minimale kans op technische problemen.
Ten tweede veiligheid. Sommige DNS-services kunnen de toegang tot phishing- en kwaadaardige sites blokkeren en bieden inhoudfiltering om kinderen te beschermen tegen ongepaste online-inhoud.
Dergelijke DNS-servers kunnen zelfs oplichters bestrijden. U gaat bijvoorbeeld naar een nepbankwebsite en de DNS-server geeft u niet het IP-adres van de oplichters, maar de beveiligingsdienst.
Lijst met dergelijke servers
wolkenvlam | 1.1.1.1 1.0.0.1 |
Cloudflare belooft dat het geen bezoekersgegevens zal gebruiken om advertenties weer te geven en nooit verzoekbron-IP-adressen op schijf zal branden. |
Google openbare DNS | 8.8.8.8 8.8.4.4 |
Slaat volledige informatie op over het IP-adres van het verzoekende apparaat gedurende ongeveer 24-48 uur voor probleemoplossing en diagnose |
Comodo beveiligde DNS | 8.26.56.26 8.20.247.20 |
Blokkeert phishing-sites, maar waarschuwt ook als u sites probeert te bezoeken met malware, spyware |
Yandex.DNS | 77.88.8.8 77.88.8.1 |
Gratis DNS-service van een populaire Russische zoekmachine |
GO TO FULL VERSION