Sdílet prostřednictvím


Správa záznamů a sad záznamů DNS v Azure DNS pomocí Azure PowerShellu

V tomto článku se dozvíte, jak spravovat záznamy DNS pro vaši zónu DNS pomocí Azure PowerShellu. Záznamy DNS je možné spravovat také pomocí azure CLI pro různé platformy nebo webu Azure Portal.

Příklady v tomto článku předpokládají, že jste už nainstalovali Azure PowerShell, přihlásili se a vytvořili zónu DNS.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Úvod

Před vytvářením záznamů DNS v DNS Azure je nejprve nutné pochopit, jak DNS Azure organizuje záznamy DNS v sadách záznamů DNS.

Názvy záznamů

V Azure DNS se záznamy zadávají pomocí relativních názvů. „Plně kvalifikovaný“ název domény (FQDN) obsahuje název zóny, zatímco „relativní“ název ho neobsahuje. Například relativní název www záznamu v zóně contoso.com dává plně kvalifikovaný název www.contoso.comzáznamu .

Záznam „vrcholu“ je záznam DNS v kořeni (nebo „vrcholu“) zóny DNS. Například v zóně contoso.comDNS má záznam vrcholu také plně kvalifikovaný název contoso.com (někdy se nazývá nahá doména). Podle konvence se k vyjádření záznamů vrcholu používá relativní název '@'.

Typy záznamů

Každý záznam DNS má název a typ. Záznamy jsou uspořádány do různých typů podle dat, která obsahují. Nejběžnějším typem je záznam „A“, který mapuje název na adresu IPv4. Dalším běžným typem záznamu je „MX“, který mapuje název na poštovní server.

Azure DNS podporuje všechny běžné typy záznamů DNS: A, AAAA, CAA, CNAME, MX, NS, PTR, SOA, SRV a TXT. Záznamy SPF se vyjadřují pomocí záznamů TXT.

Sady záznamů

Někdy můžete potřebovat vytvořit víc než jeden záznam DNS s daným názvem a typem. Předpokládejme například, že web „www.contoso.com“ je hostovaný na dvou různých IP adresách. Tento web vyžaduje dva různé záznamy A, jeden pro každou IP adresu. Tady je příklad sady záznamů:

www.contoso.com.        3600    IN    A    134.170.185.46
www.contoso.com.        3600    IN    A    134.170.188.221

Azure DNS spravuje všechny záznamy DNS pomocí sady záznamů. Sada záznamů (známá také jako sada záznamů „prostředků“) je kolekce záznamů DNS v zóně, které mají stejný název a jsou stejného typu. Většina sad záznamů obsahuje jediný záznam. Příklady jako ten výše, kde sada záznamů obsahuje více než jeden záznam, však nejsou výjimkou.

Předpokládejme třeba, že už jste vytvořili záznam A „www“ v zóně „contoso.com“, který odkazuje na IP adresu 134.170.185.46 (první záznam výše). Když budete chtít vytvořit druhý záznam, bude potřeba tento záznam přidat do existující sady záznamů, ne vytvořit další sadu záznamů.

Výjimkou jsou typy záznamů SOA a CNAME. Standardy DNS nedovolují pro tyto typy více záznamů se stejným názvem, proto tyto sady záznamů můžou obsahovat jenom po jednom záznamu.

Další informace o záznamech DNS v DNS Azure najdete v tématu Zóny a záznamy DNS.

Vytvoření nového záznamu DNS

Pokud chcete vytvořit novou sadu záznamů, musí mít jiný název a typ než všechny existující záznamy. Pokud má nový záznam stejný název a typ jako existující záznam, budete ho muset přidat do existující sady záznamů.

Vytvoření záznamů A v nové sadě záznamů

Sady záznamů vytvoříte pomocí rutiny New-AzDnsRecordSet. Při vytváření sady záznamů musíte zadat název sady záznamů, zónu, hodnotu TTL (Time to Live), typ záznamu a záznamy, které se mají vytvořit.

Parametry pro přidání záznamů do sady záznamů se liší podle typu sady záznamů. Pokud například používáte sadu záznamů typu A, musíte zadat IP adresu pomocí parametru -IPv4Address. Různé typy záznamů budou mít další parametry.

Následující příklad vytvoří sadu záznamů s relativním názvem www v zóně contoso.comDNS . Plně kvalifikovaný název sady záznamů je www.contoso.com. Typ záznamu je A a hodnota TTL je 3600 sekund. Sada záznamů obsahuje jeden záznam s IP adresou 1.2.3.4.

New-AzDnsRecordSet -Name "www" -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -IPv4Address "1.2.3.4") 

Pokud chcete vytvořit sadu záznamů na vrcholu zóny (v tomto případě "contoso.com"), použijte název sady záznamů @(s výjimkou uvozovek):

New-AzDnsRecordSet -Name "@" -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -IPv4Address "1.2.3.4") 

Pokud potřebujete vytvořit sadu záznamů obsahující více než jeden záznam, nejprve vytvořte místní pole a přidejte záznamy a pak pole předejte New-AzDnsRecordSet následujícím způsobem:

$aRecords = @()
$aRecords += New-AzDnsRecordConfig -IPv4Address "1.2.3.4"
$aRecords += New-AzDnsRecordConfig -IPv4Address "2.3.4.5"
New-AzDnsRecordSet -Name www –ZoneName "contoso.com" -ResourceGroupName MyResourceGroup -Ttl 3600 -RecordType A -DnsRecords $aRecords

Metadata sady záznamů lze použít k přidružení dat specifických pro aplikaci ke každé sadě záznamů jako párů klíč-hodnota. Následující příklad ukazuje, jak vytvořit sadu záznamů se dvěma položkami metadat, dept=finance a environment=production.

New-AzDnsRecordSet -Name "www" -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -IPv4Address "1.2.3.4") -Metadata @{ dept="finance"; environment="production" } 

Azure DNS také podporuje "prázdné" sady záznamů, které můžou fungovat jako zástupný symbol pro rezervaci názvu DNS před vytvořením záznamů DNS. Prázdné sady záznamů jsou viditelné v řídicí rovině Azure DNS, ale zobrazují se na názvových serverech Azure DNS. Následující příklad vytvoří prázdnou sadu záznamů:

New-AzDnsRecordSet -Name "www" -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords @()

Vytvoření záznamů jiných typů

Když jste se podrobně naučili vytvářet záznamy A, následující příklady ukazují, jak vytvořit záznamy jiných typů záznamů podporovaných službou Azure DNS.

V každém případě si ukážeme, jak vytvořit sadu záznamů obsahující jeden záznam. Dřívější příklady záznamů "A" je možné přizpůsobit tak, aby vytvořily sady záznamů jiných typů obsahujících více záznamů, s metadaty nebo pro vytvoření prázdných sad záznamů.

Neexistuje žádný příklad pro vytvoření sady záznamů SOA, protože soa se vytvářejí a odstraňují s každou zónou DNS. Záznam SOA nejde vytvořit ani odstranit samostatně. SoA však lze upravit, jak je znázorněno v pozdějším příkladu.

Vytvoření sady záznamů AAAA s jedním záznamem

New-AzDnsRecordSet -Name "test-aaaa" -RecordType AAAA -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -Ipv6Address "2607:f8b0:4009:1803::1005") 

Vytvoření sady záznamů CAA s jedním záznamem

New-AzDnsRecordSet -Name "test-caa" -RecordType CAA -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -Caaflags 0 -CaaTag "issue" -CaaValue "ca1.contoso.com") 

Vytvoření sady záznamů CNAME s jedním záznamem

Poznámka:

Standardy DNS nepovolují záznamy CNAME na vrcholu zóny (-Name '@'), ani nepovolují sady záznamů obsahující více než jeden záznam.

Další informace naleznete v tématu CNAME záznamy.

New-AzDnsRecordSet -Name "test-cname" -RecordType CNAME -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -Cname "www.contoso.com") 

Vytvoření sady záznamů MX s jedním záznamem

V tomto příkladu použijeme název sady záznamů @k vytvoření záznamu MX na vrcholu zóny (v tomto případě "contoso.com").

New-AzDnsRecordSet -Name "@" -RecordType MX -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -Exchange "mail.contoso.com" -Preference 5) 

Vytvoření sady záznamů NS s jedním záznamem

New-AzDnsRecordSet -Name "test-ns" -RecordType NS -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -Nsdname "ns1.contoso.com") 

Vytvoření sady záznamů PTR s jedním záznamem

V tomto případě "my-arpa-zone.com" představuje zónu zpětného vyhledávání ARPA představující váš rozsah IP adres. Každá sada záznamů PTR v této zóně odpovídá IP adrese v rámci tohoto rozsahu IP adres. Název záznamu "10" je poslední oktet ip adresy v tomto rozsahu IP adres reprezentovaných tímto záznamem.

New-AzDnsRecordSet -Name 10 -RecordType PTR -ZoneName "my-arpa-zone.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -Ptrdname "myservice.contoso.com") 

Vytvoření sady záznamů SRV s jedním záznamem

Při vytváření sady záznamů SRV zadejte _service a _protocol v názvu sady záznamů. Při vytváření sady záznamů na vrcholu zóny není nutné do názvu sady záznamů zahrnout znak @.

New-AzDnsRecordSet -Name "_sip._tls" -RecordType SRV -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -Priority 0 -Weight 5 -Port 8080 -Target "sip.contoso.com") 

Vytvoření sady záznamů TXT s jedním záznamem

Následující příklad ukazuje, jak vytvořit záznam TXT. Další informace o maximální délce řetězce podporované v záznamech TXT naleznete v záznamech TXT.

New-AzDnsRecordSet -Name "test-txt" -RecordType TXT -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -Ttl 3600 -DnsRecords (New-AzDnsRecordConfig -Value "This is a TXT record") 

Získání sady záznamů

Chcete-li načíst existující sadu záznamů, použijte Get-AzDnsRecordSet. Tato rutina vrátí místní objekt, který představuje sadu záznamů v Azure DNS.

New-AzDnsRecordSetStejně jako v případě , název sady záznamů musí být relativní název, což znamená, že musí vyloučit název zóny. Musíte také zadat typ záznamu a zónu obsahující sadu záznamů.

Následující příklad ukazuje, jak načíst sadu záznamů. V tomto příkladu je zóna určena pomocí -ZoneName parametrů a -ResourceGroupName parametrů.

$rs = Get-AzDnsRecordSet -Name "www" -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup"

Místo toho můžete také určit zónu pomocí objektu zóny předaného pomocí parametru -Zone .

$zone = Get-AzDnsZone -Name "contoso.com" -ResourceGroupName "MyResourceGroup"
$rs = Get-AzDnsRecordSet -Name "www" -RecordType A -Zone $zone

Výpis sad záznamů

Můžete také použít Get-AzDnsZone k výpisu sad záznamů v zóně tak, že vynecháte buď nebo oba -Name parametry.-RecordType

Následující příklad vrátí všechny sady záznamů v zóně:

$recordsets = Get-AzDnsRecordSet -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup"

Následující příklad ukazuje, jak můžete načíst všechny sady záznamů daného typu zadáním typu záznamu při vynechání názvu sady záznamů:

$recordsets = Get-AzDnsRecordSet -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup"

Pokud chcete načíst všechny sady záznamů s daným názvem, musíte načíst všechny sady záznamů a pak filtrovat výsledky:

$recordsets = Get-AzDnsRecordSet -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" | where {$_.Name.Equals("www")}

Ve všech výše uvedených příkladech lze zónu zadat buď pomocí -ZoneName parametrů a -ResourceGroupNameparametrů (jak je znázorněno), nebo zadáním objektu zóny:

$zone = Get-AzDnsZone -Name "contoso.com" -ResourceGroupName "MyResourceGroup"
$recordsets = Get-AzDnsRecordSet -Zone $zone

Přidání záznamu do existující sady záznamů

Pokud chcete přidat záznam do existující sady záznamů, postupujte takto:

  1. Získání existující sady záznamů

    $rs = Get-AzDnsRecordSet -Name www –ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -RecordType A
    
  2. Přidejte nový záznam do místní sady záznamů.

    Add-AzDnsRecordConfig -RecordSet $rs -Ipv4Address "5.6.7.8"
    
  3. Aktualizujte změny tak, aby odrážely službu Azure DNS.

    Set-AzDnsRecordSet -RecordSet $rs
    

Použití Set-AzDnsRecordSet nahrazuje existující sadu záznamů v Azure DNS (a všechny záznamy, které obsahuje) zadanou sadou záznamů. Kontroly značky Etag slouží k zajištění, že se nepřepíší souběžné změny. K potlačení těchto kontrol můžete použít volitelný -Overwrite přepínač.

Tato posloupnost operací může být také předaná, což znamená, že předáte objekt sady záznamů pomocí kanálu místo předání jako parametru:

Get-AzDnsRecordSet -Name "www" –ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -RecordType A | Add-AzDnsRecordConfig -Ipv4Address "5.6.7.8" | Set-AzDnsRecordSet

Výše uvedené příklady ukazují, jak přidat záznam A do existující sady záznamů typu A. Podobná posloupnost operací se používá k přidání záznamů do sad záznamů jiných typů a nahrazení -Ipv4Address parametru Add-AzDnsRecordConfig jinými parametry specifickými pro každý typ záznamu. Parametry pro každý typ záznamu jsou stejné jako rutina New-AzDnsRecordConfig , jak je znázorněno v dalších příkladech typů záznamů výše.

Sady záznamů typu CNAME nebo SOA nemůžou obsahovat více než jeden záznam. Toto omezení vzniká ze standardů DNS. Nejedná se o omezení Azure DNS.

Odebrání záznamu z existující sady záznamů

Proces odebrání záznamu ze sady záznamů se podobá procesu přidání záznamu do existující sady záznamů:

  1. Získání existující sady záznamů

    $rs = Get-AzDnsRecordSet -Name www –ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -RecordType A
    
  2. Odeberte záznam z objektu místní sady záznamů. Odebraný záznam musí být přesná shoda se stávajícím záznamem napříč všemi parametry.

    Remove-AzDnsRecordConfig -RecordSet $rs -Ipv4Address "5.6.7.8"
    
  3. Potvrďte změnu zpět do služby Azure DNS. -Overwrite Volitelný přepínač slouží k potlačení kontrol souběžných změn značky Etag.

    Set-AzDnsRecordSet -RecordSet $Rs
    

Když použijete výše uvedenou sekvenci k odebrání posledního záznamu ze sady záznamů, neodstraní se sada záznamů, ale ponechá prázdnou sadu záznamů. Pokud chcete sadu záznamů úplně odebrat, přečtěte si téma Odstranění sady záznamů.

Podobně jako přidání záznamů do sady záznamů může být také posloupnost operací, která odebere sadu záznamů:

Get-AzDnsRecordSet -Name www –ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" -RecordType A | Remove-AzDnsRecordConfig -Ipv4Address "5.6.7.8" | Set-AzDnsRecordSet

Různé typy záznamů jsou podporovány předáním příslušných parametrů specifických pro typ do Remove-AzDnsRecordSet. Parametry pro každý typ záznamu jsou stejné jako pro rutinu New-AzDnsRecordConfig , jak je znázorněno v dalších příkladech typů záznamů výše.

Úprava existující sady záznamů

Postup úpravy existující sady záznamů je podobný krokům, které provedete při přidávání nebo odebírání záznamů ze sady záznamů:

  1. Načíst existující sadu záznamů pomocí .Get-AzDnsRecordSet
  2. Upravte objekt místní sady záznamů:
    • Přidání nebo odebrání záznamů
    • Změna parametrů existujících záznamů
    • Změna metadat sady záznamů a času na aktivní (TTL)
  3. Potvrďte změny pomocí rutiny Set-AzDnsRecordSet . Tím se stávající sada záznamů v Azure DNS nahradí zadanou sadou záznamů.

Při použití Set-AzDnsRecordSet příkazu se kontroly značky Etag použijí k zajištění, že souběžné změny nebudou přepsány. K potlačení těchto kontrol můžete použít volitelný -Overwrite přepínač.

Aktualizace záznamu v existující sadě záznamů

V tomto příkladu změníme IP adresu existujícího záznamu A:

$rs = Get-AzDnsRecordSet -name "www" -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup"
$rs.Records[0].Ipv4Address = "9.8.7.6"
Set-AzDnsRecordSet -RecordSet $rs

Úprava záznamu SOA

Záznamy z automaticky vytvořené sady záznamů SOA na vrcholu zóny (-Name "@"včetně uvozovek) není možné přidávat ani odebírat. Můžete ale upravit libovolný z parametrů v rámci záznamu SOA (s výjimkou hosta) a hodnoty TTL sady záznamů.

Následující příklad ukazuje, jak změnit vlastnost Email záznamu SOA:

$rs = Get-AzDnsRecordSet -Name "@" -RecordType SOA -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup"
$rs.Records[0].Email = "admin.contoso.com"
Set-AzDnsRecordSet -RecordSet $rs

Úprava záznamů NS na vrcholu zóny

Sada záznamů NS na vrcholu zóny se automaticky vytvoří s každou zónou DNS. Obsahuje názvy názvových serverů Azure DNS přiřazených k zóně.

Do této sady záznamů NS můžete přidat další názvové servery, které podporují domény spoluhostování s více než jedním poskytovatelem DNS. Můžete také upravit hodnotu TTL a metadata pro tuto sadu záznamů. Předvyplněné názvové servery Azure DNS ale nemůžete odebrat ani upravit.

Toto omezení platí pouze pro sadu záznamů NS na vrcholu zóny. Jiné sady záznamů NS ve vaší zóně (jak se používají k delegování podřízených zón) je možné upravit bez omezení.

Následující příklad ukazuje, jak přidat další názvový server do sady záznamů NS na vrcholu zóny:

$rs = Get-AzDnsRecordSet -Name "@" -RecordType NS -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup"
Add-AzDnsRecordConfig -RecordSet $rs -Nsdname ns1.myotherdnsprovider.com
Set-AzDnsRecordSet -RecordSet $rs

Úprava metadat sady záznamů

Metadata sady záznamů lze použít k přidružení dat specifických pro aplikaci ke každé sadě záznamů jako párů klíč-hodnota.

Následující příklad ukazuje, jak upravit metadata existující sady záznamů:

# Get the record set
$rs = Get-AzDnsRecordSet -Name www -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup"

# Add 'dept=finance' name-value pair
$rs.Metadata.Add('dept', 'finance') 

# Remove metadata item named 'environment'
$rs.Metadata.Remove('environment')  

# Commit changes
Set-AzDnsRecordSet -RecordSet $rs

Odstranění sady záznamů

Sady záznamů je možné odstranit pomocí rutiny Remove-AzDnsRecordSet . Odstranění sady záznamů také odstraní všechny záznamy v sadě záznamů.

Poznámka:

Nelze odstranit sady záznamů SOA a NS na vrcholu zóny (-Name '@'). Azure DNS je vytvořil automaticky při vytvoření zóny a po odstranění zóny je automaticky odstraní.

Následující příklad ukazuje, jak odstranit sadu záznamů. V tomto příkladu se explicitně zadává název sady záznamů, typ sady záznamů, název zóny a skupina prostředků.

Remove-AzDnsRecordSet -Name "www" -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup"

Místo toho lze sadu záznamů zadat podle názvu a typu a zóny určené pomocí objektu:

$zone = Get-AzDnsZone -Name "contoso.com" -ResourceGroupName "MyResourceGroup"
Remove-AzDnsRecordSet -Name "www" -RecordType A -Zone $zone

Jako třetí možnost je možné určit samotnou sadu záznamů pomocí objektu sady záznamů:

$rs = Get-AzDnsRecordSet -Name www -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup"
Remove-AzDnsRecordSet -RecordSet $rs

Když zadáte sadu záznamů, která se má odstranit pomocí objektu sady záznamů, použijí se kontroly značky Etag k zajištění toho, aby se neodstranily souběžné změny. K potlačení těchto kontrol můžete použít volitelný -Overwrite přepínač.

Objekt sady záznamů může být také předaný místo předání jako parametr:

Get-AzDnsRecordSet -Name www -RecordType A -ZoneName "contoso.com" -ResourceGroupName "MyResourceGroup" | Remove-AzDnsRecordSet

Výzvy k potvrzení

Všechny rutiny New-AzDnsRecordSet, Set-AzDnsRecordSet a Remove-AzDnsRecordSet podporují výzvy k potvrzení.

Každá rutina zobrazí výzvu k potvrzení, pokud $ConfirmPreference má proměnná předvoleb PowerShellu hodnotu Medium nebo nižší. Vzhledem k tomu, že výchozí hodnota $ConfirmPreference je High, tyto výzvy nejsou při použití výchozího nastavení PowerShellu zadané.

Aktuální nastavení $ConfirmPreference můžete přepsat pomocí parametru -Confirm. Pokud zadáte -Confirm nebo -Confirm:$True, rutina před spuštěním zobrazí výzvu k potvrzení. Pokud zadáte -Confirm:$False , rutina vás k potvrzení nezobrazí.

Další informace o -Confirm a $ConfirmPreference najdete v tématu Informace o proměnných předvoleb.

Další kroky

Přečtěte si další informace o zónách a záznamech v Azure DNS.
Zjistěte, jak chránit zóny a záznamy při používání Azure DNS.
Projděte si referenční dokumentaci k Azure DNS PowerShellu.