User Tools

Site Tools


extensions:teemip-zone-mgmt

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
extensions:teemip-zone-mgmt [2019/04/10 14:14] – [Features] cnaudextensions:teemip-zone-mgmt [2019/04/11 10:50] cnaud
Line 1: Line 1:
 +====== DNS Zone Management ======
 +---- dataentry summary ----
 +name             : DNS Zone Management
 +description_wiki : Adds Zone management features to TeemIp
 +index_hidden     : yes
 +level_hidden     : 1
 +version          : 1.0.0
 +release_dt       : 2019-02-09
 +TeemIp_version_min : 2.3
 +code             : teemip-zone-mgmt
 +state            : pilot 
 +diffusion        : TeemIp wiki
 +product_hidden   : included (standalone)
 +module-lists_hidden : 
 +keyword_tags     : dns, zone, domain, records
 +dependencies_s   : teemip-ip-mgmt, teemip-ipv6-mgmt, teemip-network-mgmt
 +download_hidden 
 +download_url     : https://wiki.teemip.com/extensions/teemip-zone-mgmt-1.0.0.zip
 +----
  
 +This extension brings a DNS dimension to TeemIp. It allows DDI administrators to manage DNS views, zones and their DNS records. This is done, of course, in close relation with TeemIp objects already defined in IP space and the CMDB.
 +
 +<note>Vocabulary: by "TeemIp solution" or "TeemIP", it should be understood: TeemIp standalone or the iTop solution on top of which TeemIp as a module has been installed.
 +</note>
 +===== Revision History =====
 +^  Version  ^  Release Date  ^  Comments  ^
 +|  1.0.0  |  2019-02-09  | Initial revision |
 +
 +===== Features =====
 +
 +Next to the management of IP and domain spaces, the DNS Zone Management extension allows Hostmasters to manage DNS zones within TeemIp:
 +  * Document Views and manage DNS zones within their respective views,
 +  * Register DNS Resource Records (A, AAAA, CNAME, MX, NS, PTR, SRV and TXT) in relation with IP addresses or CIs stored in TeemIp,
 +  * Export zone data or retrieve them through WEB services from DNS master servers.
 +===== Limitations =====
 +The extension is, today, static. All DNS records need to be created manually through the UI or through imports. No automatic provisioning of DNS records is done from the IP Management modules or from the CMDB, for instance. That should change in the future release coming soon.
 +===== Requirements =====
 +There is no specific requirements with that extension. TeemIp DNS Zone Management is anyway already embedded in TeemIp standalone starting with TeemIp 2.4.
 +
 +When installed on an iTop application, make sure that 'IPAM for iTop' is installed as well.
 +
 +===== Installation =====
 +Installation on a TeemIp standalone is done with the application itself, through the setup.
 +
 +When adding the module on an iTop application, the process will depends on the iTop version:
 +  * For iTop 2.4.0 and higher, use the new [[https://wiki.openitop.org/doku.php?id=extensions:installation|Standard installation process]].
 +  * For iTop versions older than 2.3.x, use the [[https://wiki.openitop.org/doku.php?id=extensions:installation#itop_before_240|Special installation process]].
 +===== Configuration =====
 +No specific configuration is required for this extension.
 +===== DNS Management Menu =====
 +
 +This menu integrate TeemIp right after the IP Management menu. It proposes an overview to the different TeemIp objects that are related to DNS as well as a list of shortcuts to directly acces them.
 +
 +{{ overview-dns-mgmt-menu.png }}
 +
 +===== Domains =====
 +
 +{{classicon_domain.png  }}
 +
 +These objects modelize the well known domains from the Domain Name Service.
 +
 +
 +Domain objects belong already to TeemIp core modules as documented in the [[2_x:datamodel:teemip-network-mgmt#domain | Data model documentation]]. The DNS Zone Management extension alter them with a new tab that lists the  related zones, ie the zones which name includes the domain name.
 +
 +=== Tabs ===
 +^  Tab  ^  Description  ^
 +| Related zones | All the zones related to the domain |
 +
 +
 +=== Details ===
 +Details of a Domain can be accessed from the specific shortcut available under the DNS Management menu.
 +
 +{{ classdetails_domain_zonetab.png }}
 +===== Views =====
 +
 +{{classicon_view.png  }}
 +
 +TeemIp handles DNS views, the solution offered by DNS to handle different communities of hosts that may require specific DNS answers according to the network where their resolution is requested from.
 +
 +=== Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Name| Alphanumeric string | Yes |
 +| Description | Multiline character string | No |
 +
 +=== Details ===
 +Details of a view can be accessed from the specific shortcut available under the DNS Management menu.
 +
 +{{ classdetails_view.png }}
 +
 +
 +==== Link with IP Addresses ====
 +
 +A given hostname may be resolved into different IPs according to the view it belongs to. This is modelized in TeemIp by making the View an attribute of IP addresses. 
 +
 +=== IP Address Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| **DNS Information** |||
 +| DNS View | Foreign key to a(n) View | No |
 +
 +This changes the properties tab of an IP address as follows:
 +
 +{{ classdetails_ipv4address_withview.png }}
 +===== Zones =====
 +
 +{{classicon_zone.png  }}
 +
 +This is the key object of the DNS world around which everything is built. By definition, the zone is the domain minus what has been delegated from it.
 +
 +=== Zone Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| **General Information** |||
 +| Organization | Foreign key to a(n) Organization | Yes | 
 +| View | Foreign key to a(n) View | No | 
 +| Mapping type| Possible values: Forward, IPv4 Reverse, IPv6 Reverse | Yes |
 +| Zone Name | Alphanumeric string | Yes |
 +| TTL | Duration (days / hours / minutes /seconds) | Yes |
 +| Comment | Alphanumeric string | No |
 +| Requestor | Foreign key to a(n) Person| No | 
 +| **Start Of Authority** |||
 +| Master server | Alphanumeric string | Yes |
 +| Hostmaster mailbox | Email address | Yes |
 +| Serial | Number | Yes |
 +| Refresh | Duration (days / hours / minutes /seconds) | Yes |
 +| Rettry | Duration (days / hours / minutes /seconds) | Yes |
 +| Expire | Duration (days / hours / minutes /seconds) | Yes |
 +| Minimum | Duration (days / hours / minutes /seconds) | Yes |
 +
 +=== Tabs ===
 +^  Tab  ^  Description  ^
 +| NS records| All the NS records of the zone |
 +| A Records | All the A records of the zone |
 +| AAAA Records | All the AAAA records of the zone |
 +| CNAME Records | All the CNAME records of the zone |
 +| Other Records | All the Other records of the zone |
 +
 +=== Creating a new Zone ===
 +Under the DNS management module, clicking on the "Create a new Zone" button available under the Name Space menu or clicking on the "New" button available with Zones lists will display the Zone creation form:
 +
 +{{ classcreate_zone.png }}
 +
 +=== Specific actions ===
 +== Display data file ==
 +
 +TeemIp DNS Zone Management allows you to generate zones data files. These text files follow the format defined by BIND and can be used as zone master data files in BIND master servers. A zone file can be sorted by records or by alphabetical order.
 +
 +From the detailed menu of a zone, click on the "Display data file" action:
 +
 +{{ details-popup-menu-zonedisplaydata.png }}
 +
 +Output file will be displayed in a text box and can easily be copied and pasted to be used within a name servers.
 +
 +{{ details-zone-data-file.png }}
 +
 +<note tip>
 +Zone files can be programmatically retrieved through TeemIp REST/JSON web services. Please, refer to the related [[2_x:integrate:rest_json#operationteemip_get_zone_file| wiki page]] for further details.
 +</note>
 +
 +== WEB Service ==
 +
 +Zone data files can be retrieved through a specific WEB service, as documented in the [[2_x:integrate:rest_json#operationteemip_get_zone_file|REST/JSON chapter]]. This feature can be used from a DNS server to build its master data files for the zones it handles.
 +===== DNS Resource Records =====
 +TeemIp handles the most commonly used DNS Resource Records: A, AAAA, CNAME, MX, NS, PTR, SRV and TXT. These are implemented through standard objects and belong to the data model. They all share the same following attributes:
 +
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Zone | Foreign key to a(n) Zone | Yes |
 +| RR Name | Alphanumeric string  | Yes |
 +| Overwrite zone TTL | Yes or No | No |
 +| TTL | d/h/m/s | N/A |
 +
 +
 +  * The "zone" attribute points to a forward or reverse zone, according to the record type, filtered by the organization that the zone belongs to.
 +  * The "RR Name" is just the name of the record, known as the owner in the specialized literature.
 +  * The default TTL of the zone that the record belongs to, may be overwritten by a specific value specified at the record level. This behaviour is driven by the "Overwrite zone TTL" boolean and the TTL duration. 
 +==== A Records ====
 +{{classicon_arecord.png  }} 
 +This object is used to document the IPv4 Address record.
 +
 +=== Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Zone | Foreign key to a(n) Zone | Yes |
 +| RR Name | Alphanumeric string  | Yes |
 +| Overwrite zone TTL | Yes or No | No |
 +| TTL | d/h/m/s | N/A |
 +| IPv4 Address | Foreign key to a(n) IPv4 Address | Yes |
 +| Comment | Multiline character string  | No |
 +
 +=== Details ===
 +Details of a A Record can be accessed from the specific "A" shortcut menu of the DNS Management module.
 +
 +{{ classdetails_arecord.png }}
 +==== AAAA Records ====
 +{{classicon_aaaarecord.png  }} 
 +This object is used to document the IPv6 Address record.
 +
 +=== Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Zone | Foreign key to a(n) Zone | Yes |
 +| RR Name | Alphanumeric string  | Yes |
 +| Overwrite zone TTL | Yes or No | No |
 +| TTL | d/h/m/s | N/A |
 +| IPv6 Address | Foreign key to a(n) IPv6 Address | Yes |
 +| Comment | Multiline character string  | No |
 +
 +=== Update ===
 +An AAAA record may be updated from the detailed view of the object.
 +{{ classupdate_aaaarecord.png }}
 +==== CNAME Records ====
 +{{classicon_cnamerecord.png  }} 
 +This object is used to document the Canonical Name record.
 +
 +=== Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Zone | Foreign key to a(n) Zone | Yes |
 +| RR Name | Alphanumeric string  | Yes |
 +| Overwrite zone TTL | Yes or No | No |
 +| TTL | d/h/m/s | N/A |
 +| CNAME | Alphanumeric string | Yes |
 +| Comment | Multiline character string  | No |
 +
 +=== Creation ===
 +A new CNAME record may be created from the specific "CNAME" shortcut menu of the DNS Management module. 
 +{{ classcreate_cnamerecord.png }}
 +==== MX Records =====
 +{{classicon_mxrecord.png  }} 
 +This object is used to document the Mail Exchanger record.
 +
 +=== Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Zone | Foreign key to a(n) Zone | Yes |
 +| RR Name | Alphanumeric string  | Yes |
 +| Overwrite zone TTL | Yes or No | No |
 +| TTL | d/h/m/s | N/A |
 +| Preference | Integer | No |
 +| Exchange Server | Alphanumeric string | Yes |
 +| Comment | Multiline character string  | No |
 +
 +=== Details ===
 +Details of a MX Record can be accessed from the specific “MX” shortcut menu of the DNS Management module. 
 +{{ classdetails_mxrecord.png }}
 +==== NS Records =====
 +{{classicon_nsrecord.png  }} 
 +This object is used to document the Name Server record.
 +
 +=== Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Zone | Foreign key to a(n) Zone | Yes |
 +| RR Name | Alphanumeric string  | Yes |
 +| Overwrite zone TTL | Yes or No | No |
 +| TTL | d/h/m/s | N/A |
 +| Name Server | Alphanumeric string | Yes |
 +| Comment | Multiline character string  | No |
 +
 +=== Details ===
 +Details of a NS Record can be accessed from the specific “NS” shortcut menu of the DNS Management module. 
 +{{ classdetails_nsrecord.png }}
 +==== PTR Records =====
 +{{classicon_ptrrecord.png  }} 
 +This object is used to document the Pointer record.
 +
 +=== Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Zone | Foreign key to a(n) Zone | Yes |
 +| RR Name | Alphanumeric string  | Yes |
 +| Overwrite zone TTL | Yes or No | No |
 +| TTL | d/h/m/s | N/A |
 +| Hostname | Alphanumeric string | Yes |
 +| Comment | Multiline character string  | No |
 +
 +=== Details ===
 +Details of a NS Record can be accessed from the specific “NS” shortcut menu of the DNS Management module. 
 +{{ classdetails_ptrrecord1.png }}
 +{{ classdetails_ptrrecord2.png }}
 +==== SRV Records =====
 +{{classicon_srvrecord.png  }} 
 +This object is used to document the Locate Services record.
 +
 +=== Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Zone | Foreign key to a(n) Zone | Yes |
 +| RR Name | Alphanumeric string  | Yes |
 +| Overwrite zone TTL | Yes or No | No |
 +| TTL | d/h/m/s | N/A |
 +| Priority| Integer | No |
 +| Weight| Integer | No |
 +| Port | Integer | No |
 +| Target| Alphanumeric string | Yes |
 +| Comment | Multiline character string  | No |
 +
 +=== Creation ===
 +A new SRV record may be created from the specific "SRV" shortcut menu of the DNS Management module. 
 +{{ classcreate_srvrecord.png }}
 +==== TXT Records =====
 +{{classicon_txtrecord.png  }} 
 +This object is used to document the Text record.
 +
 +=== Properties ===
 +^  Name  ^  Type  ^  Mandatory?  ^
 +| Organization | Foreign key to a(n) Organization | Yes |
 +| Zone | Foreign key to a(n) Zone | Yes |
 +| RR Name | Alphanumeric string  | Yes |
 +| Overwrite zone TTL | Yes or No | No |
 +| TTL | d/h/m/s | N/A |
 +| Text| Alphanumeric string | Yes |
 +| Comment | Multiline character string  | No |
 +
 +=== Update ===
 +A TXT record may be updated from the detailed view of the object. 
 +{{ classupdate_txtrecord.png }}
 +
 +==== Link with IP Addresses ====
 +
 +There is an obvious link between IP addresses and DNS records: an IP has a FQDN and aliases may point to that FQDN. As a consequence, A / AAAA, PTR and CNAME records may be associated with IPs. This is what the extension does by adding a "DNS Records" tab to IP Address objects.
 +
 +{{ classdetails_ipv4address_dnsrecords.png }}
 +
 +<note>
 +At this stage, there is no automatic creation, modification or deletion of DNS records when an IP address is created, modified or deleted. This will become available in the next revision of the extension.
 +</note>
 +===== User Profiles =====
 +The TeemIp DNS Zone Management extension brings a new profile dedicated to the management of DNS objects: domains, zones, views and associated resource records: "Hostmaster - DNS", a "Person handling the DNS space". It has all rights on the DNS objects. 
 +
 +{{ classdetails_DNSprofile.png }}
 +
 +This profile extends capabilities and must be used together with other profiles like ConfigurationManager.
 +
 +<note warning>
 +The DNS management menu is hidden to the users that don't have read capabilities on zones.
 +</note>
extensions/teemip-zone-mgmt.txt · Last modified: 2024/04/05 18:33 by cnaud