Internet & Applicaties

DNS


Zo, we hebben onze keuzes gemaakt. Een van de eerste zaken waar ik het over wil hebben is de DNS hosting. Dit wordt over het algemeen aangeboden door het bedrijf waar je je domeinnamen van huurt. Ten minste, dat wil je wel zo hebben. Zelf DNS hosten loont niet echt de moeite.

Ik wil hier een paar tips geven hoe je het gemakkelijkste je DNS kunt instellen. Tevens kun je hier dus zien waar je op moet letten bij de keuze van je domeinnaam hosting bedrijf. Want als die het bijvoorbeeld niet mogelijk maakt om je MX records in te stellen, dan wordt mail forwarding een stuk lastiger. Je domeinnaam hosting provider moet dus minstens de mogelijkheden bieden waar ik het op deze pagina over heb, anders moet je toch nodig naar een andere op zoek.

In de hierna volgende voorbeelden gaan we uit van de volgende configuratie:

  • VPS server IPv4 adres: 123.123.123.123
  • VPS server IPv6 adres: 2001:1234::ABCD
  • Domeinnaam 1: oeioei.nl
  • Domeinnaam 2: foutlook.ga
  • Email adres 1: webmaster@oeioei.nl
  • Email adres 2: beheerder@oeioei.nl
  • Email adres 3: webmaster@foutlook.ga
  • Email adres 4: beheerder@foutlook.ga

De IP adressen zijn fictief, net zoals de email adressen. De domeinnamen zijn echt, en beide in mijn beheer. Ondanks dat ik in deze voorbeelden uitga van slechts 2 domeinnamen kun je zo veel domeinnamen aan je server koppelen als je wilt. Ook het aantal email adressen wat je per domeinnaam kunt toekennen is oneindig groot.
Ik ga hier ook uit van slechts een server. Maar ook dat is uit te breiden zo ver je wilt.

O ja, ik ga er ook even van uit dat de domeinnamen en de email adressen reeds bestaan en worden gehost door je huidige hosting provider. We willen immers gaan omschakelen.

A En AAAA Records


Je hebt een VPS gehuurd, en wellicht al ingericht. Tenminste, hij is reeds voorzien van een OS waar jij mee uit de voeten kunt en je kunt er op inloggen om hem in te gaan richten zoals je hem hebben wilt. Zo'n VPS heeft natuurlijk een IP adres. Wat zeg ik, als het goed is heeft hij er 2, want vandaag de dag wil je toch echt ook een IPv6 adres hebben.
Dus we hebben zowel een IPv4 adres als een IPv6 adres.

Een IPv4 adres is soms nog wel te onthouden, maar een IPv6 adres is dat meestal niet. Daarom willen we namen gaan koppelen aan die IP adressen. Dat doen we dus via de DNS server, die door je hosting provider wordt beheerd. Welke dat geworden is kun je op de vorige pagina bekijken. Voor de voorbeelden hieronder gebruik ik even www.freenom.com.

IPv4 adressen worden aan domeinnamen gekoppeld via zogenaamde A records. IPv6 adressen worden aan domeinnamen gekoppeld via AAAA records. In ons voorbeeld hebben we 2 domeinnamen tot onze beschikking, laten we de domeinnaam foutlook.ga gebruiken voor het beheer van de server. Je hoeft dus niet perse al je domeinnamen te koppelen met je VPS voor het beheer. Liever niet zelfs, zoals we verderop zullen zien. Bedenk nu een gemakkelijk te onthouden hostnaam voor je server, waarmee je de A en AAAA records gaat aanmaken.
Laten we voor het gemak maar de naam web01.foutlook.ga gebruiken. Dan moeten we bij www.freenom.com de volgende instellingen gaan maken:

A record

Bij de Name geef je dus de hostnaam op van je VPS server, in ons geval dus web01. Bij record Type geef je in dit geval het A type op. De TTL geeft aan hoe lang de DNS servers op de wereld dit record in hun cache moeten bewaren (gemeten in seconden). Heel druk bezochte websites zetten dat getal op een paar uur, zodat de DNS servers over de gehele wereld niet al te vaak op zoek hoeven naar de juiste waardes. Aangezien onze websites iets minder bezocht gaan worden dan die van facebook bijvoorbeeld kunnen we de TTL gerust wat lager zetten. Het voordeel daarvan is dat we later de IP adressen heel snel kunnen veranderen, want het adres is immers steeds maar 5 minuten geldig. Tenslotte vullen we bij Target het IPv4 adres van onze VPS web server in.
Daarna klikken we op Save Changes.

AAAA record

Voor IPv6 werkt het allemaal precies het zelfde, alleen kiezen we hier voor het record type AAAA en voeren we natuurlijk het IPv6 adres in.

Na het opslaan van de instellingen wachten we een minuutje of 5, of misschien soms wel wat langer. De tijd die je moet wachten is namelijk een beetje afhankelijk van hoe vaak je DNS hoster zijn zone files aanpast, zoals dat heet.
Dus als je lang genoeg gewacht hebt type je op de commandoregel van een Linux machine, je VPS machine bijvoorbeeld, het commando host web01.foutlook.ga in. En als alles goed is gegaan zie je dan het volgende:

web01.foutlook.ga has address 123.123.123.123
web01.foutlook.ga has IPv6 address 2001:1234::ABCD

Dus de naam web01.foutlook.ga wijst voortaan naar jouw VPS machine, zowel voor IPv4 als voor IPv6. Je hoeft de IP adressen van je VPS dus niet meer te onthouden.

Als je, net als ik inmiddels, meerdere web servers gebruikt om je websites te hosten dan kun je de A en AAAA records naar meerdere servers laten wijzen. In bovenstaande voorbeeld zou je dan web01 ook kunnen laten wijzen naar adres 123.123.123.200 bijvoorbeeld. Als iemand dan de DNS gegevens van jouw domeinnaam opzoekt krijgt hij meerdere antwoorden, in willekeurige volgorde gegeven. De applicatie besluit dan meestal om het eerste IP adres te nemen. Maar aangezien de volgorde willekeurig is kan dat elke keer een ander IP adres zijn. Dit noemen ze round-robin load balancing. De last op de server wordt dus via DNS over de verschillende servers verdeeld.
Indien IPv6 beschikbaar is krijgt dat overigens de voorkeur boven IPv4.

CNAME Records


Deze stap wil je pas zetten op het moment dat je je webhosting echt om wilt gaan schakelen van je oude hosting provider naar je eigen VPS server. De nieuwe web server moet daarom volledig operationeel zijn voordat we deze stap gaan zetten. Tot die tijd kun je de zaak natuurlijk wel testen. Hoe dat moet zal ik zo ook uitleggen. Laten we eerst even net doen of we echt over willen gaan schakelen naar de nieuwe web server.

We willen dus onze domeinnamen www.oeioei.nl en www.foutlook.ga gaan koppelen aan onze nieuwe web server. Bedenk ook dat je bijvoorbeeld de namen zonder www. ook wilt koppelen naar de nieuwe web server. Veel mensen slaan namelijk het www deel gewoon over en verwachten dan ook op de betreffende web pagina terecht te komen.
Dat koppelen kan vrij simpel gedaan worden door de A en AAAA records van 4 namen te gaan vullen met de twee adressen van onze nieuwe web server. Dat betekent dus dat je alles bij elkaar 4x2=8 IP adressen in moet gaan stellen. En als je een keer een andere server gaat optuigen die het van de oude over gaat nemen, dan moet je al die adressen weer gaan veranderen.
Daar is een betere oplossing voor, CNAME records genaamd.

Een CNAME record vertaalt een bepaalde domeinnaam naar de gegevens van een andere domeinnaam. Dus kunnen we oeioei.nl, www.oeioei.nl, foutlook.ga en www.foutlook.ga gewoon laten wijzen naar web01.foutlook.ga. Die laatste hebben we hiervoor al ingesteld, dus de IP adressen daarvan zijn reeds bekend.
Dus mochten de IP adressen van die server ooit wijzigen, dan hoef je alleen de A en AAAA records van web01.foutlook.ga aan te passen, de rest gaat dan automatisch mee. Dat scheelt je dus een hoop werk.

Let wel, voordat je overschakelt van je huidige hosting server naar je eigen VPS server moet je natuurlijk wel de A en AAAA records die naar de oude server wijzen nog verwijderen. Anders gaat de helft van het verkeer nog naar de oude server, terwijl de andere helft naar je nieuwe server gaat.

CNAME without www

CNAME with WWW

Zoals je ziet hoef je per domeinnaam maar een CNAME in te vullen, ook al heeft de doel computer 2 of zelfs meer IP adressen. De nieuwe naam erft gewoon de eigenschappen van de doelnaam. Zorg er wel voor dat je records maakt voor een lege Name en de www Name.
Doe dit voor al je domeinnamen die je naar de nieuwe web server wilt laten leiden.

Nadat je in beide gevallen weer op Save Changes hebt geklikt moet je weer een tijdje wachten totdat de DNS zone files zijn doorgevoerd. Indien de TTL van de oude A en AAAA records op enkele uren stond kan het zelfs zijn dat het enkele uren duurt voordat de instellingen zo staan zoals jij wilt. Ondertussen komen de bezoekers van je websites langzaam maar zeker op je nieuwe server terecht.
Voer nu weer het commando host www.foutlook.ga in om te zien of de instellingen al zijn zoals je wilt. Herhaal dat voor alle domeinnamen die je zojuist gewijzigd hebt.

www.foutlook.ga is an alias for web01.foutlook.ga.
web01.foutlook.ga has address 123.123.123.123
web01.foutlook.ga has IPv6 address 2001:1234::ABCD

Maar hoe weet je nou of je web server klaar is en ook volledig werkt? Dat kan simpel door tijdelijk bijvoorbeeld de CNAME test.foutlook.ga te laten wijzen naar je nieuwe server. Zodra alles werkt kun je www.foutlook.ga en foutlook.ga met een gerust hart laten verwijzen naar je nieuwe server. Dan heeft test.foutlook.ga zijn diensten bewezen en kan deze worden verwijderd.

MX Records


We willen ook mail gaan verwerken die naar @foutlook.ga en @oeioei.nl wordt gestuurd. Als je je mail server juist hebt ingesteld, zoals op een volgende pagina wordt beschreven kun je de MX records naar je mail server laten verwijzen.

MX Record

Laat het host veld leeg, want je wilt geen mail laten versturen naar bijvoorbeeld pietje@www.foutlook.ga. De target computer is in ons geval weer web01.foutlook.ga. En de Priority wordt standaard op 10 gezet.

Natuurlijk moet je er voor zorgen dat eventuele oude MX records worden gewist. Zodra de DNS zonefiles zijn bijgewerkt komt de mail voortaan op je nieuwe VPS machine binnen.
Na voldoende wachttijd kun je dan weer met het commando host foutlook.ga zien of alles juist staat ingesteld. Merk op dat dit niet werkt met de naam www.foutlook.ga, want daar is geen MX record voor aangemaakt.

foutlook.ga is an alias for web01.foutlook.ga.
web01.foutlook.ga has address 123.123.123.123
web01.foutlook.ga has IPv6 address 2001:1234::ABCD
foutlook.ga mail is handled by 10 web01.foutlook.ga.

Het is gebruikelijk om een tweede mail server te hebben als fall-back. Dus als je VPS om wat voor reden dan ook niet bereikbaar is, kan de mail nog verwerkt worden door deze tweede server. Daarvoor zet je de priority voor die tweede server op 20, wat dus een lagere prioriteit betekent.
Maar waar haal je zo snel een tweede machine vandaan als je nog maar een VPS machine hebt? Een tweede huren verdubbelt al meteen de kosten.
Die fall-back mail server kan bijvoorbeeld een Raspberry Pi zijn die je thuis hebt draaien. Of het kan een VPS zijn van een vriend van je, die op zijn beurt jouw machine als fall-back machine voor zijn mail kan gebruiken.
Op die manier blijft je mail dus wel binnen komen, ook al heeft jouw mail server er even geen zin meer in.