DNS stands for Domain Name System.
This system contains a worldwide, decentralized database of domain names with a hierarchical structure.
In the early years of the internet, only a few hundred computers were permanently connected to the network. Each computer had a unique name (‘flat name’) and an address in numbers. At that time, all the addresses and associated names were stored in a large text file with the name HOSTS.TXT.

This text file was maintained and stored on a computer at the Stanford Research Institute & Network Information Centre (SRI-NIC). All the other machines on the network downloaded this file from the SRI-NIC-server via FTP with some regularity.

This worked fine because the host file did not need to be modified more often than once or twice per week. But suddenly the internet took off: the number of computers that were permanently connected grew explosively. This caused the file to grow continuously. Because of this, all the computers that were connected to the network needed to fetch the new version increasingly frequently.

All the computers remained dependent on the same SRI-NIC server, and this ultimately started to cause problems. A certain Paul Mockapetris came up with a solution to this problem in the form of the Domain Name System (RFC1034 and RFC1035).

The DNS also controls the translation between the IP address and the domain name. This means that there must be constant translation on the internet between the domain name and IP address and vice versa: this is done by the DNS. The DNS also contains information about what servers are responsible for processing email within a certain domain.

DNS records

  • @ : the zone itself, for example “example.com“.
    This @ symbol is a relative statement of the zone, if the zone is written out in full (absolute), then this must end with a dot (‘.’).
  • IN : stands for the class Internet; this involves internet records. This can also be CH, for example, which stands for Chaosnet (records);
  • SOA : stands for Start Of Authority and indicates the name server that the zone manages. The email address of the DNS/zone administrator is given after this. The email address @-symbol is replaced by a dot (‘.’) because an @-symbol has a different meaning in the zone file.
  • the TTL (Time To Live) tells us that the zone file must be refreshed every 15 minutes in the DNS cache. This is the standard value at VEVIDA and cannot be changed.
  • NS : tells us what name servers are responsible for the respective zone.
  • MX : tells us what mail servers process the email for the zone. This field is not mandatory. If it is missing, the email is delivered to the IN A, which is the IP address of the example.com. A-record. If no mail server is running here, it will not be possible to deliver email for the domain.
  • TXT : stands for TEXT, a record with textual information about a domain or zone.
  • A : stands for Address records, the IP address to which the request must be forwarded.
  • AAAA : is the same as an A-record, but for IPv6 addresses.
  • CNAME : stands for Canonical Name records, with which a host name is set as an alias for a different host name. Attention: A host name other than the respective zone must always be concluded with a dot (‘.’). Otherwise the original zone will again be pasted after it.

SPF

SPF TXT records are increasingly being used in name server zone files.

With an SPF record for a domain, it is possible to indicate what mail servers may send emails for a certain domain. For each incoming email, a mail server with SPF support will check whether the sender’s domain has an SPF record, and if this is the case, whether the sending mail server is present in the SPF record. If this is not the case, the email is held back (depending on the settings).

This is intended to make it virtually impossible for spammers to use false senders. For example, if we want to set that email from vevida.com may only be sent from our own SMTP servers, all emails with info@vevida.com as the sender that are sent from other SMTP servers will no longer be accepted by receiving mail servers.

SPF records are saved in DNS zone files as TXT records in the respective zone. It is important that the record has the correct value and syntax. For example, an SPF record could look like this:

@ TXT “v=spf1 a:mail.example.com include:spf.vevida.com -all”

The example above would work very well in practice. A domain name with its own mail server that has the A-record ‘mail’ can send email from the name of example.com. Email that is sent from the contact form on the website must also be delivered. For this reason, our SMTP servers are located in the zone ‘spf.vevida.com’.

More information about SPF records and the possibilities can be found at:
http://www.openspf.org/SPF_Record_Syntax

Example of a zone file

A DNS server works with so-called zone files, this contains all the records that are important for your site. Here is an example if you are interested:

$TTL 15m ; default time-to-live
 ;
 ; Voorbeeld zonefile t.b.v. de VEVIDA Servicepagina's
 ;
 @        IN        SOA        ns1.vevida.net.        hostmaster.vevida.nl.  (
 2004072601              ; Serial
 14400                      ; Refresh
 1800        ; Retry
 1209600                   ; Expire
 15m )                     ; cache TTL for negative answers
 ;
 uwdomein.com.        IN        NS        ns1.vevida.net.
 uwdomein.com.        IN        NS        ns2.vevida.net.
 uwdomein.com.        IN        NS        ns3.vevida.com.
 uwdomein.com.        IN        MX        10    mx1.vevida.com.
 uwdomein.com.        IN        MX        10    mx2.vevida.com.
 uwdomein.com.        IN        MX        10    mx3.vevida.com.
 uwdomein.com.        IN        MX        10    mx4.vevida.com.
 uwdomein.com.        IN        MX        20    backup-mx.vevida.com.
 ;
 admin                              IN         AAAA   ::1 ; IPv6 enabled
 ftp                           IN            A              213.244.179.90
 localhost                    IN            A              127.0.0.1
 uwdomein.com.           IN            A              213.244.179.90
 www                                        IN            A              213.244.179.90
 pop                          IN            CNAME      pop.vevida.com.

What exactly happens

What actually happens when someone types in an address for a web page in their browser?

When you enter a domain name into your browser, for example “http://www.vevida.com/”, the browser will contact the primary and/or secondary name server. This will almost always be the name server of your Internet Access Provider.

The domain name will be read in reverse:

.com.vevida.www

The address is found in this sequence:

This DNS server regularly consults the name servers that contain the addresses of the name servers that update the information for the most important domains, the Top Level Domain Name Servers or root servers (.com, .org, .net, .edu domains and all countries).

  • This information is saved by the provider’s name server. On the basis of this information, it knows immediately what Top Level Domain Name Server it needs to consult for information about the .com domains.
  • As a response, the Top Level Domain Name Server for the .com domains will return the IP address of the name server that is responsible for the VEVIDA domain.
  • The name server of the provider then makes contact with the domain name server that covers the VEVIDA domain. As input, this server receives the domain name: “http://www.vevida.com/”, it searches as to whether anything is known about “www” in the VEVIDA domain, after which it will answer with the IP address that belongs to the machine.
  • The name server of the provider now gives the IP address to the browser. The browser then makes direct contact with the VEVIDA web server via the IP address and asks for the homepage.
  • The web server returns this page, after which it appears in the browser.

If this works properly (depending on bandwidth and the like), this only takes a few seconds.

This also immediately tells you the reason why you always need to allow for a few days of downtime if you want to move your site (to or from VEVIDA). The domain name must be sent to a new IP address and this must also be made known everywhere. According to the rules of the SIDN (Foundation for Internet Domain Registration in the Netherlands) this may take a maximum of 4 days.

Subdomains

A subdomain (or A-record) is a name that takes the place of www. A subdomain is actually a reference to a subdirectory on your website or, for example, to your own web server at home.

You can have subdomains created for your website, which allows you to give different parts of your company individual names on your website. For example finances.yourcompany.com or sales.yourcompany.com. These names are not active as standard. You can activate these names via the communication module on MyVevida. In this, indicate what subdomains you want to activate.

It is also possible to set up your own email server; ask us if we can change the MX-record (Mail eXchanger). VEVIDA will no longer process your email, and VEVIDA cannot then be held responsible for the non-arrival of email, for example. Discuss this with your Internet Access Provider first. Not every provider will allow you to run a (mail) server.

Click here for more information about MX records.

It is not possible to add additional DNS servers to your domain other than:

  • ns1.vevida.net
  • ns2.vevida.net
  • ns3.vevida.com

We can arrange various kinds of DNS changes for you, such as A-records (subdomains), CNAMES, and MX-records. If you want to register a domain with VEVIDA and have it hosted somewhere else, we can forward the relevant A-records on our DNS servers to the IP addresses that you indicate.

We can also create IPv6 subdomains (AAAA records). This can only be done to your own IPv6 address.

Subdomains and host header domains with ASP

If you have registered extra DRZH domains and have converted them to host headers, you can forward them to another folder using the following script. Replace example.org with your own domain name, example.com is the DRZH host header domain. Place this in a default.asp file that is otherwise empty and place this in the root of the www-folder:

 <%
 Option Explicit
 Select Case LCase(Request.ServerVariables("HTTP_HOST"))
 ' Hoofddomein
 Case "example.org", "www.example.org"
 Response.Redirect "/index2.html"
 ' Tweede domein
 Case "hostheader-example.nl", "www.hostheader-example.nl"
 Response.Redirect "/example/"
 ' http 301 redirect
 Case "redirect-example.nl", "www.redirect-example.nl"
 Response.Status="301 Moved Permanently" 
 Response.AddHeader "Location", "http://www.example.org/"
 ' Subdomein van het hoofddomein
 Case "admin.example.org"
 Response.Redirect "/admin/"
 ' Subdomein op hostheader domein
 Case "sales.hostheader-example.nl"
 Response.Redirect "/sales/"
 
 ' Wanneer niets gevonden wordt, redirect
 ' naar de indexpagina van het hoofddomein
 Case Else
 Response.Redirect "/index2.html"
 End Select
 %>

You can activate the requested subdomains using the following ASP script:

 <%
 Select Case request.ServerVariables("HTTP_HOST")
 Case "sales.example.org" 
 response.redirect("/sales/")
 Case "service.example.org" 
 response.redirect("/service/")
 ' Toon de standaard pagina
 Case Else
 response.redirect("/main.asp")
 End Select
 %>

For advanced users, we have another script. We do not offer further support for this. By changing response.redirect to server.transfer and linking to a file, it is possible to leave the subdomain in place in the URL bar at the top.

 <%
 Select Case request.ServerVariables("HTTP_HOST")
 Case "sales.uwdomein.com" 
 server.transfer("/sales/index.asp")
 Case "service.uwdomein.com" 
 server.transfer("/service/service.asp")
 ' Toon de standaard pagina
 Case Else
 server.transfer("/main.asp")
 End Select
 %>

Note: If you use server.transfer you must link to an ASP file.

By using a frameset, the following script makes also it possible to leave the subdomain in place in the URL bar at the top. Place this in an empty file and call it default.asp. The variable Link (Link =) refers to the location of the web page of that subdomain; the variable Titel (Titel =) refers to the title of the page.

<%@ Language=VBScript %>
 <%
 Option Explicit
 Dim Link, Titel
 Select Case request.ServerVariables("HTTP_HOST")
 Case "ftp.uwdomein.com" 
 Link = "/404.asp"
 Titel = "File not Found"
 Case "sales.uwdomein.com" 
 Link = "/sales/"
 Titel = "Uwdomein Sales afdeling"
 ' Toon de standaard pagina
 Case Else
 Link = "/main.asp"
 Titel = "Welkom op Uwdomein!"
 End Select
 %>
 
 <!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
 <html>
 <head>
 <title><%=Titel%></title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <meta name="Keywords" content="keyword1, keyword2, keyword3, ..." />
 </head>
 
 <frameset rows="*">
 <frame src="<%=Link%>" />
 <noframes>
 <body>
 <%=request.ServerVariables("HTTP_HOST")%>
 <p><a href="<%=Link%>">Ga naar de website</a></p>
 
 <!-- do not remove the following line, uncomment if you like -->
 <!-- Hosted by <a href="http://www.vevida.com/" targer="_blank">VEVIDA Services BV</a> -->
 
 </body>
 </noframes>
 </frameset>
 </html>

Subdomains and host header domains with PHP

If you have registered extra DRZH domains and have had them converted to host headers, if desired you can forward them to another folder using the following script. Replace example.org with your own domain name, example.com is the DRZH host header domain.

 <?php
 $http_host = $_SERVER['HTTP_HOST'];
 
 switch( $http_host ) {
 // Hoofddomein
 case "example.org":
 case "www.example.org":
 header("Location: /index2.html");
 exit;
 // Tweede domein
 case "hostheader-example.nl":
 case "www.hostheader-example.nl":
 header("Location: /example/");
 exit;
 // http 301 redirect
 case "redirect-example.nl":
 case "www.redirect-example.nl":
 header("HTTP/1.0 301 Moved permanently");
 header("Location: http://www.example.org/");
 exit;
 // Subdomein van het hoofddomein
 case "admin.example.org":
 header("Location: /admin/");
 exit;
 // Subdmein op hostheader domein
 case "sales.hostheader-example.nl":
 header("Location: /sales/");
 exit;
 
 // Wanneer niets gevonden wordt, redirect
 // naar de indexpagina van het hoofddomein
 default:
 header("Location: /index2.html");
 exit;
 }
 ?>

With the release of PHP version 5, the script to use subdomains has also been changed: The index.php file only contains the following code. Replace example.org with your own domain name:

 <?php
 $http_host = $_SERVER['HTTP_HOST'];
 
 switch( $http_host ) {
 case "subdomein1.example.org":
 header("Location: http://www.example.org/subdomein1/");
 exit;
 case "subdomein2.example.org":
 header("Location: http://www.example.org/subdomein2/");
 exit;
 default:
 header("Location: http://www.example.org/home.php");
 exit;
 }
 ?>

Subdomein1 and subdomein2 must be replaced here with your own subdomain names. If necessary, you can add an extra subdomain by including an extra ‘case’ statement. For example:

 case "subdomein3.uwdomein.com":
 header("Location: http://www.example.org/subdomein3/");
 exit;

This extra ‘case’ statement must be placed above ‘default:’.

Subdomains with ASP.Net, C#

 <html>
 <head>
 <script runat="server">
 void Page_Load(object s, EventArgs e) {
 // We plaatsen eerst de waarde van HTTP_HOST in 
 // een string.
 
 string host = System.Web.HttpContext.Current.
 Request.ServerVariables["HTTP_HOST"].ToString();
 
 // Vervolgens maken we een string array waarin we 
 // meerdere subdomeinen kunnen opgeven.
 // Hierbij moet de klant opletten dat de map waarin het 
 // subdomein staat hetzelfde is als in de string array hieronder. 
 // Het maakt niet uit of het hoofdletters zijn of kleine 
 // letters aangezien .ToLower()wordt gebruikt.
 
 string[] subdomeinen = {"sales","service","etc"};
 
 // Dan gaan we kijken of een van de subdomeinen 
 // matched met de host.
 
 foreach (string str in subdomeinen) {
 // vervang uwdomein.com door uw domeinnaam met extentie.
 if ((str.ToLower() + ".uwdomein.com") == host.ToLower()) {
 // We hebben een match dus jump naar de juiste locatie.
 Page.Server.Transfer("/" + str + "/default.aspx");
 }
 }
 }
 
 // Samenvatting:
 //
 // De Server variable HTTP_HOST wordt in de string "host" geplaatst
 // Er is een string array gebruikt voor meerdere subdomeinen zodat u 
 // makkelijk een subdomein erbij kan plaatsen, aangezien alle 
 // subdomeinen worden afgegegaan.
 // Dan wordt gekeken of de waardes in de array overeenkomen met 
 // de string "host", zo ja, dan wordt er verwezen naar de juiste map 
 // in de hostomgeving.
 // Uiteraard is alle text rechts van de // commentaar!
 
 </script>
 </head>
 </html>

One of our customers wants all but one of the subdomains to lead to a folder with the name of the respective subdomain. The one subdomain must direct to another folder. The code has been modified slightly to make this possible.

 [...]
 foreach (string str in subdomeinen) {
 // vervang uwdomein.com door uw domeinnaam met extentie.
 if ((str.ToLower() + ".uwdomein.com") == host.ToLower()) {
 
 // hier wordt de uitzondering er tussen uit geplukt
 if ((str.ToLower() + ".uwdomein.com") == "subdomeinnaam.uwdomein.com") {
 Page.Server.Transfer("/map/map2/Default.aspx");
 break;
 }
 
 // We hebben een match dus jump naar de juiste locatie.
 Page.Server.Transfer("/" + str + "/default.aspx");
 break;
 }
 }
 [...]

Calling up DNS information: nslookup / dig

The trick below makes it possible to retrieve the IP address of our server, where your site is hosted, before the DNS updates with your Internet Access Provider have been completed. You do need to have a PC with the Windows 2000/XP operating system or Linux.

Windows 2000/XP

  1. Click Start and go to Run;
  2. Type in command.com and press OK
  3. Nu krijgt u een zwart scherm met C:>, typ hierachter
    nslookup uwdomein.com ns1.vevida.net en druk op de [ENTER] toets;You will then see a black screen with C:>. After this type
    nslookup yourdomain.com ns1.vevida.net and press the [ENTER] key;

The result that you obtain should be similar to:

 C:>nslookup www.vevida.com ns1.vevida.net
 Server:  ns1.vevida.net
 Address:  213.19.161.190
 Aliases:  190.161.19.213.in-addr.arpa
 
 Name:    www.vevida.com
 Address:  213.19.161.132
 
 C:>

Linux

Open a terminal or x-term screen and type after the prompt ($):
nslookup www.vevida.com ns1.vevida.net

The result that you obtain should be similar to:

 $ nslookup -sil www.vevida.com ns1.vevida.net
 Server:         ns1.vevida.net
 Address:        213.19.161.190#53
 
 Name:   www.vevida.com
 Address: 213.19.161.132

Or using the dig command, type after the prompt ($):
dig @ns1.vevida.net www.vevida.com A

The result that you obtain should be similar to:

 $ dig @ns1.vevida.net www.vevida.com A
 
 ; <<>> DiG 9.2.1 <<>> @ns1.vevida.net www.vevida.com A
 ;; global options:  printcmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58255
 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
 
 ;; QUESTION SECTION:
 ;www.vevida.com.                        IN      A
 
 ;; ANSWER SECTION:
 www.vevida.com.         900     IN      A       213.19.161.132
 
 ;; AUTHORITY SECTION:
 vevida.com.             900     IN      NS      ns2.vevida.net.
 vevida.com.             900     IN      NS      ns3.vevida.com.
 vevida.com.             900     IN      NS      ns1.vevida.net.
 
 ;; ADDITIONAL SECTION:
 ns1.vevida.net.         900     IN      A       213.19.161.190
 ns2.vevida.net.         900     IN      A       80.84.240.242
 ns3.vevida.com.         900     IN      A       213.244.179.76
 
 ;; Query time: 27 msec
 ;; SERVER: 213.19.161.190#53(ns1.vevida.net)
 ;; WHEN: Wed Nov 10 16:14:00 2004
 ;; MSG SIZE  rcvd: 160

Using the host command, type after the prompt ($):
host www.vevida.com ns1.vevida.net

The result that you obtain should be similar to:

 $ host www.vevida.com ns1.vevida.net
 Using domain server:
 Name: ns1.vevida.net
 Address: 213.19.161.190#53
 Aliases:
 
 www.vevida.com has address 213.19.161.132

Where www.vevida.com is of course your own domain name. If you replace ftp.uwdomein.com with the last IP address you can then upload your website to our server.

Attention: Because VEVIDA offers shared hosting (a number of websites on one server) you cannot view your website via this IP address. This does not work using Frontpage either. If you want to use Frontpage, unfortunately you will have to wait until the so-called DNS updates are completed. Advanced users can modify the HOSTS file.

More information

Erik Hensema has written a short but clear introduction to DNS and Bind. This does not go too deeply into the subject, but deep enough to set up a reasonably sized system. This provides a lot of information about DNS, among other things.
Technical information regarding the DNS system can also be found in RFC1034, RFC1035, BIND9.net and DNSSec.net, for example.

« Back

Customer service

Cannot find what you are looking for? Please contact our customer service:

We are glad to be of service.