DNSaaS – Zarządzanie strefą DNS
Klienci Atman Cloud mają możliwość delegacji domen DNS na chmurowe serwery autorytatywne.
Chęć delegacji domeny należy zgłosić mailowo bądź przez system zgłoszeń do biura obsługi klienta.
W treści należy zawrzeć następujące elementy:
- nazwę projektu w Atman Cloud;
- adres mailowy (będzie on widoczny w SOA);
- nazwę delegowanej domeny – FQDN.
Po zgłoszeniu domena zostanie dodana do projektu klienta w panelu cloud(panel.cloud.atman.pl) i będzie widoczna w zakładce Project -> DNS -> Zones.

Nasze serwery dns znajdują się pod poniższymi nazwami domenowymi. Na nie klient powinien delegować swoją domenę.
- dns1.cloud.atman.pl
- dns2.cloud.atman.pl
- dns3.cloud.atman.pl
Zarządzanie strefą DNS
Strefą dns można zarządzać na kilka sposobów, m.in:
- panelu przeglądarkowego WWW – Horizon;
- CLI openstack’owego;
- za pomocą narzędzia Terraform.
Zarządzanie z poziomu panelu WWW
Logujemy się do panelu cloud – panel.cloud.atman.pl.
Następnie przechodzimy do zakładki Project -> DNS -> Zones. I wybieramy naszą domenę a następnie przechodzimy do zakładki Record Sets. Z tego poziomu mamy możliwość podglądu aktualnie znajdujących się rekordów w strefie jak i możemy również dodawać nowe.

W celu utworzenia nowego rekordu klikamy na przycisk znajdujący się w prawym górnym rogu – CREATE RECORD SET.
Otworzy się nam wtedy nowe okienko konfiguracji nowego rekordu.

Wypełniamy pola w powyższej formatce i klikamy ikonę SUBMIT.
Zarządzanie za pomocą CLI
Do zarządzania strefą DNS potrzebujemy stacji z zainstalowanym Openstack CLI.
Poniżej przykład jak można to zrobić na stacji z systemem operacyjnym Ubuntu 18.04.
CLI można zainstalować w następujący sposób:$ apt install python-openstackclient python-designateclient
Następnie pobieramy nasz plik openrc.sh z danymi dostępowymi. Jest on dostępny z poziomu panelu przeglądarkowego.

Wczytujemy dane dostępowe za pomocą polecenia: $ source openrc.sh
Przechodzimy do CLI Openstack’a:$ openstack
(openstack)
Sprawdzenia aktualnej listy domen przypisanych do projektu możemy dokonać za pomocą poniższego polecenia:(openstack) zone list

Sprawdzenie listy rekordów w strefie:(openstack) recordset list <nazwa strefy>
Przykład:(openstack) recordset list przyklad-dns.pl.

Dodawanie nowych rekordów
Dodawanie rekordu typu A(openstack) recordset create <nazwa_naszej_domeny> --type <typ rekordu> <nazwa_dns> --record <adres_IP>
Przykład:(openstack) recordset create przyklad-dns.pl. --type A test1 --record 192.168.1.21
W wyniku czego otrzymujemy:

Przykład dodawanie rekordu CNAME:(openstack) recordset create przyklad-dns.pl. --type CNAME test --record przyklad-dns.pl.
Dla adresów floating IP jest również możliwość ustawienia rekordów PTR.
Wyświetlanie rekordów ptr:(openstack) ptr record list

Rekordy PTR możemy edytować zgodnie z poniższym przykładem:(openstack) ptr record set Waw01:1dd7dbab-5f49-4951-a276-8bd078ba310b przyklad-dns.pl.

Poszczególne rekordy możemy usunąć w następujący sposób:
(openstack) recordset delete <id_strefy lub nazwa_strefy> <id_rekordu>
Przykład:(openstack) recordset delete przyklad-dns.pl. 35dac887-9577-4ea8-907b-7cae3d1d9fee
Link do dokumentacji Openstack
https://docs.openstack.org/python-designateclient/latest/user/shell-v2.html
Zarządzanie strefą DNS za pomocą narzędzia Terraform
Do zarządzania strefą DNS w tym przypadku potrzebujemy systemu z zainstalowanym oprogramowaniem Terraform.
Tworzymy plik z rozszerzeniem .tf.
W pliku powinny znaleźć się m.in. następujące fragmenty konfiguracji.
Konfiguracja provider’a:
provider "openstack" { user_name = "<nazwa użytkownika>" tenant_name = "<nazwa projektu>" password = "<hasło>" auth_url = "https://api.cloud.atman.pl:5000/v3" region = "Waw01" domain_name = "Default" }
Konfiguracja rekordu DNS:
resource "openstack_dns_recordset_v2" "nasza_domena" { zone_id = "<id_domeny>" # id naszej strefy, można podejrzeć w panelu www lub CLI np. 9d7329dc-1772-4ee5-a77e-1a9b11592a97 name = "<nazwa_domeny>" # przyklad-dns.pl. description = "<opis>" # opis type = "<typ rekordu>" # np. A, TXT, MX, CNAME, itd. records = ["<addres_IP / nazwa dns>"] # w zależności od typu np. 217.17.34.10 lub test.przyklad-dns.pl. }
Następnie inicjalizujemy nasz projekt: $ terraform init
Sprawdzamy co zostanie zmienione: $ terraform plan
Wprowadzamy zmiany: $ terraform apply
Link do dokumentacji Terraform’a
https://www.terraform.io/docs/providers/openstack/r/dns_recordset_v2.html