{"id":1344,"date":"2021-05-10T12:03:16","date_gmt":"2021-05-10T09:03:16","guid":{"rendered":"https:\/\/www.scalahosting.com\/kb\/?p=1344"},"modified":"2022-06-08T15:11:44","modified_gmt":"2022-06-08T12:11:44","slug":"what-is-an-soa-record","status":"publish","type":"post","link":"https:\/\/www.scalahosting.com\/kb\/what-is-an-soa-record\/","title":{"rendered":"What is an SOA Record?"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">An SOA record means <\/span><b>Start of Authority<\/b><span style=\"font-weight: 400;\">. The record holds <\/span><b>specific authoritative information<\/b><span style=\"font-weight: 400;\"> about the global parameters of a DNS zone.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This includes information on the <\/span><a href=\"https:\/\/www.scalahosting.com\/kb\/what-are-my-nameservers\/\"><b>primary name server<\/b><\/a><span style=\"font-weight: 400;\">, the domain\u2019s serial number, the domain administrator\u2019s email, and several timers for refreshing the zone.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Therefore, an<\/span><b> SOA resource record<\/b><span style=\"font-weight: 400;\"> shows what <\/span><b>DNS server hosts<\/b><span style=\"font-weight: 400;\"> the most accurate information for a specified domain. It also changes anytime the DNS settings change.<\/span><\/p>\n<h2><b>How do SOA Records Work?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">The SOA records are the basis of the <\/span><b>DNS zone files.<\/b><span style=\"font-weight: 400;\"> The DNS structure is a <\/span><b>decentralized, hierarchical system<\/b><span style=\"font-weight: 400;\">, with the SOA resource records at the top and the slave or secondary servers at the bottom.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">While there are many name servers, they do not supply information to random servers but name servers in an allocated zone.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For this reason, <\/span><b>DNS servers handle zone files<\/b><span style=\"font-weight: 400;\"> which are text files that contain a zone\u2019s <\/span><a href=\"https:\/\/www.scalahosting.com\/kb\/dns-records-explained\/\"><b>DNS records<\/b><\/a><b>.<\/b><span style=\"font-weight: 400;\"> Each zone file must have an SOA record to determine the various authoritative servers for that domain.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This process makes it the Start of Authority by providing information on whether or not a server is authoritative enough to handle a query.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The SOA\u2019s mode of operation makes it <\/span><a href=\"https:\/\/www.scalahosting.com\/kb\/what-is-dns\/\"><b>essential to the DNS system<\/b><\/a><span style=\"font-weight: 400;\">. Rather than one server bearing the brunt of all queries, they\u2019re spread among many servers. A zone transfer must be done regularly <\/span><b>to keep the zone files updated<\/b><span style=\"font-weight: 400;\"> on all servers.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To do this, the servers at the lowest hierarchy sync their data with the <\/span><b>primary servers at the top of the DNS system.<\/b><span style=\"font-weight: 400;\"> The SOA record governs how the zone transition takes place.<\/span><\/p>\n<h2><b>The SOA Record Structure<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">The SOA record has several fields containing relevant information that helps it function.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">We&#8217;ll take a look at them shortly.<\/span><\/p>\n<h3><b>MName<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">This is the domain name of the <\/span><b>primary (master) name server<\/b><span style=\"font-weight: 400;\"> for a specific zone.<\/span><\/p>\n<h3><b>RName<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">This field contains the <\/span><b>email address of the domain administrator<\/b><span style=\"font-weight: 400;\">. When formatting the email address, you must exclude the <\/span><b>@ symbol<\/b><span style=\"font-weight: 400;\"> and replace it with a period<\/span><b> (.)<\/b><span style=\"font-weight: 400;\">. The period separates the username from the domain.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In cases where you have a period before the <\/span><b>@ symbol <\/b><span style=\"font-weight: 400;\">in the main address, you must replace it with a backslash <\/span><b>(\\).<\/b><\/p>\n<p><span style=\"font-weight: 400;\">When you\u2019ve effected the changes, this email \u2014 <\/span><b>sample@scalahosting.com<\/b><span style=\"font-weight: 400;\"> becomes this \u2014 <\/span><b>sample.scalahosting.com. <\/b><span style=\"font-weight: 400;\">And, <\/span><b>blog.sample@scalahosting.com<\/b><span style=\"font-weight: 400;\"> becomes, <\/span><b>blog\\.sample.scalahosting.com.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">In essence, the email address is written in <\/span><b>DNS format<\/b><span style=\"font-weight: 400;\">, not email format.<\/span><\/p>\n<h3><b>Serial Number<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">This is the serial number to a<\/span><b> specific zone<\/b><span style=\"font-weight: 400;\">. It is a timestamp that changes each time you update your zone files.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When a <\/span><b>secondary name server<\/b><span style=\"font-weight: 400;\"> observes an increase in the number, it initiates zone transfers using that value to update its copy of the zone.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Anytime you change the zone files, you must <\/span><b>overwrite the serial number<\/b><span style=\"font-weight: 400;\"> using any of the following methods.<\/span><\/p>\n<p><b>Increment it by one integer &#8211; <\/b><span style=\"font-weight: 400;\">If your current SOA serial number is <\/span><b>105<\/b><span style=\"font-weight: 400;\">, change it<\/span> <span style=\"font-weight: 400;\">to <\/span><b>106<\/b><span style=\"font-weight: 400;\"> when you make a change to the file data.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you don\u2019t alter the values, the domain\u2019s secondary name servers won\u2019t <\/span><b>update their copy of the database<\/b><span style=\"font-weight: 400;\">, causing both primary <\/span><i><span style=\"font-weight: 400;\">(master)<\/span><\/i><span style=\"font-weight: 400;\"> and secondary <\/span><i><span style=\"font-weight: 400;\">(slave)<\/span><\/i><span style=\"font-weight: 400;\"> servers to be out of sync.<\/span><\/p>\n<p><b>Use the date format &#8211; <\/b><span style=\"font-weight: 400;\">The acceptable date format is <\/span><b>YYYYMMDDVV<\/b><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><b>Where each of them means :\u00a0<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Y = Year<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">M = Month<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">D = Date<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">V = Version number<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">This format is <\/span><b>easy to manage<\/b><span style=\"font-weight: 400;\">, and you can identify the date you made the change on the serial number. When you make changes on the same day, you <\/span><b>increase the version number<\/b><span style=\"font-weight: 400;\"> by one integer. On a new day, the version number resets to <\/span><b>00.<\/b><\/p>\n<h3><b>Refresh Rate<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The refresh rate specifies the time lag <\/span><i><span style=\"font-weight: 400;\">(in seconds) <\/span><\/i><span style=\"font-weight: 400;\">when a secondary server queries for an updated copy of the zone file. A typical value is <\/span><b>86400.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">If the query goes unanswered, the<\/span><b> Retry<\/b><span style=\"font-weight: 400;\"> field regulates the next refresh attempt.<\/span><\/p>\n<h3><b>Retry Rate<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">This signifies how long the<\/span><b> secondary server<\/b><span style=\"font-weight: 400;\"> should wait before requesting a zone transfer again. This rate is significantly lower than the last refresh rate value. A typical value is <\/span><b>7200<\/b><\/p>\n<h3><b>Expire Time<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">The expire time specifies the upper time limit (in seconds) of how long a <\/span><b>secondary server <\/b><span style=\"font-weight: 400;\">should hold on to a zone file data before discarding.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This happens when the secondary server doesn\u2019t receive any feedback from the <\/span><b>primary servers.<\/b><span style=\"font-weight: 400;\"> The <\/span><b>Expire <\/b><span style=\"font-weight: 400;\">value determines how long to use that zone file before the server considers it as non-authoritative.<\/span><\/p>\n<h3><b>Minimum (default) TTL<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">This field specifies the minimum time to live (<\/span><i><span style=\"font-weight: 400;\">TTL<\/span><\/i><span style=\"font-weight: 400;\">) value for all resource records in the zone file. The <\/span><b>TTL informs<\/b><span style=\"font-weight: 400;\"> other servers on the duration to keep data in the cache before discarding it.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The default value is<\/span><b> 3600 seconds.<\/b><\/p>\n<h2><b>How to Check an SOA Record<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">You can check your website\u2019s SOA record in multiple ways. The most popular method is through a web service like <\/span><a href=\"https:\/\/dns.google\/\"><b>Google Public DNS<\/b><\/a><b>.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">With the web service lookup tools, the process is straightforward. You\u2019ll simply enter the <\/span><b>website name <\/b><span style=\"font-weight: 400;\">on the tool page to receive a result.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Usually, you\u2019ll get results only on<\/span><b> A Records, <\/b><span style=\"font-weight: 400;\">but if you edit the appropriate field and select SOA, you should get the correct information.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Other tools you can use are <\/span><a href=\"https:\/\/www.whatsmydns.net\/\"><b>Whatsmydns.net<\/b><\/a><b>, <\/b><a href=\"https:\/\/mxtoolbox.com\/DNSLookup.aspx\"><b>MxToolbox<\/b><\/a><span style=\"font-weight: 400;\">, and <\/span><a href=\"https:\/\/dnschecker.org\/\"><b>DNS Checker<\/b><\/a><b>.<\/b><\/p>\n","protected":false},"excerpt":{"rendered":"<p>An SOA record means Start of Authority. The record holds specific authoritative information about the global parameters of a DNS zone.\u00a0 This includes information on the primary name server, the domain\u2019s serial number, the domain administrator\u2019s email, and several timers for refreshing the zone. Therefore, an SOA resource record shows what DNS server hosts the [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_analysis_target_kw":"","footnotes":""},"categories":[34],"tags":[],"class_list":["post-1344","post","type-post","status-publish","format-standard","hentry","category-web-hosting"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/1344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/comments?post=1344"}],"version-history":[{"count":2,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/1344\/revisions"}],"predecessor-version":[{"id":4839,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/1344\/revisions\/4839"}],"wp:attachment":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/media?parent=1344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/categories?post=1344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/tags?post=1344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}