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**. ![pic1](images/DNS_1.png) 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. ![pic2](images/DNS_2.png) 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. ![pic3](images/DNS_3.png) 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. ![pic4](images/DNS_4.png) 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`` ![pic5](images/DNS_5.png) Sprawdzenie listy rekordów w strefie: ``(openstack) recordset list `` *Przykład:* ``(openstack) recordset list przyklad-dns.pl`` ![pic6](images/DNS_6.png) **Dodawanie nowych rekordów"** Dodawanie rekordu typu A ``(openstack) recordset create --type --record `` *Przykład:* ``(openstack) recordset create przyklad-dns.pl. --type A test1 --record 192.168.1.21`` W wyniku czego otrzymujemy: ![pic7](images/DNS_7.png) *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`` ![pic8](images/DNS_8.png) Rekordy PTR możemy edytować zgodnie z poniższym przykładem: ``(openstack) ptr record set Waw01:1dd7dbab-5f49-4951-a276-8bd078ba310b przyklad-dns.pl`` ![pic9](images/DNS_9.png) Poszczególne rekordy możemy usunąć w następujący sposób: ``(openstack) recordset delete `` *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 = "" tenant_name = "" password = "" 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 naszej strefy, można podejrzeć w panelu www lub CLI np. 9d7329dc-1772-4ee5-a77e-1a9b11592a97 name = "" # przyklad-dns.pl. description = "" # opis type = "" # np. A, TXT, MX, CNAME, itd. records = [""] # 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 **Znane limitacje** Rekord TXT posiada limit 255 znaków. W przypadku, gdy otrzymany klucz DKIM posiada więcej znaków, należy go podzielić na kilka części. Więcej informacji dostępnych pod adresem: