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