PowerShell DNS Cmdlets를 사용하여 DNS 작업 자동화

DNS 레코드는 일반적으로 DNS 서버에서 동적으로 관리됩니다. 그러나 때때로 다양한 유형의 DNS 레코드를 수동으로 생성, 편집 또는 제거해야 할 때가 있습니다. 또는 자동화 스크립트에 다양한 DNS 작업을 추가해야 할 수도 있습니다. 이런 경우에는 PowerShell DNS cmdlet을 사용하는 것이 좋습니다.

이 블로그 글은 TechSnips 기고자인 David Lamb가 만든 동반 동영상이 있습니다. 동영상을 시청하거나, 텍스트를 선호한다면 계속 읽어주세요!

PowerShell DNS Cmdlet을 사용하여 DNS 레코드 보기

PowerShell DNS cmdlet Get-DnsServerResourceRecord을 사용하면 특정 DNS 영역의 모든 리소스 레코드를 볼 수 있습니다. 이 cmdlet을 사용하면 ZoneName 매개변수를 지정하여 해당 영역의 모든 DNS 레코드를 나열할 수 있습니다.

아래에서 볼 수 있듯이, 이는 상당히 긴 레코드 목록을 생성합니다.

PS51> Get-DnsServerResourceRecord -ZoneName corp.ad
Listing DNS records with PowerShell

이 동작은 이 특정 cmdlet이 그래픽 DNS 콘솔보다 이점을 가지고 있다는 것을 강조합니다. 이 보기는 해당 영역의 모든 레코드를 보여줍니다. 그래픽 콘솔에서는 이 정보를 조립하는 데 상당한 시간이 걸릴 것입니다.

이제이 목록을 조금 더 가늘게 만듭니다. 동일한 cmdlet을 사용하되 RRType 매개변수를 추가하여 A 레코드 (IPv4 호스트)를 검색하고 Time To Live (TTL)이 15분보다 큰 레코드를 필터링하면 다루기 쉬운 목록이 됩니다. 다양한 DNS 레코드 속성에 대해 필터링하려면 Where-Object cmdlet을 사용할 수 있습니다.

PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType A | Where-Object TimeToLive -GE "00:15:00"
Finding DNS records with a TimeToLive greater than 15 minutes

한 걸음 더 나아가면 다른 DNS 영역 및 다른 DNS 서버에서 레코드를 검색할 수도 있습니다.

아래 예에서는 DNS 서버 DC03에서 canada.corp.ad 영역의 A 레코드를 검색합니다.

PS51> Get-DnsServerResourceRecord -ComputerName DC03 -ZoneName canada.corp.ad -RRType A
Finding DNS A records

호스트 레코드 추가 및 제거

호스트 레코드를 추가하려면 PowerShell DNS cmdlet Add-DnsServerResourceRecordA를 사용해야 합니다. 아래 예에서는 네트워크에 추가할 새 프린터에 대한 호스트 레코드를 추가해야 합니다. 이것은 corp.ad 영역에 이름이 reddeerprint01이고 IP 주소가 192.168.2.56인 것으로 추가됩니다.

PS51> Add-DnsServerResourceRecordA -Name reddeerprint01 -ZoneName corp.ad -IPv4Address 192.168.2.56
PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType A
Creating a DNS record

만약 프린터가 폐기되었을 수도 있으므로 방금 생성한 호스트 레코드를 제거해야 할 경우 다음 코드를 사용할 수 있습니다:

PS51> Remove-DnsServerResourceRecord -ZoneName corp.ad -Name reddeerprint01 -RRType A

AAAA 호스트 레코드 추가 및 제거

IPv6 호스트 레코드를 추가하는 것도 매우 쉽습니다. 물론, 이러한 레코드는 AAAA 레코드로 나열되므로 약간 다릅니다. PowerShell DNS cmdlet Add-DnsServerResourceRecordAAAA를 사용하고 있음을 알 수 있습니다. 이것은 미묘한 변화이지만 중요한 변화입니다.

새 IT Intranet 서버를 위한 corp.ad 영역에 레코드를 추가하고 다음 명령을 사용하여 생성되었는지 빠르게 확인하십시오.

PS51> Add-DnsServerResourceRecordAAAA -Name it-intranet -ZoneName corp.ad -IPv6Address "fc00::0128"
PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType AAAA
Creating an AAA host record

역방향 조회 레코드 (PTR) 추가

PowerShell DNS cmdlet을 사용하여 PTR 레코드를 추가할 수도 있습니다. 역방향 조회 레코드는 클라이언트가 DNS 서버에 호스트 이름을 요청할 수 있도록 하는 역방향 조회 레코드입니다.

PTR 레코드를 만드는 것은 비교적 쉬운 프로세스이지만 PTR 레코드를 추가하기 전에 알아야 할 중요한 정보가 하나 있습니다. 역방향 조회 영역은 기본적으로 생성되지 않습니다. 레코드를 추가하기 전에 역방향 조회 영역을 설정해야 합니다. 다행히도, 이것을 하는 것은 비교적 쉽습니다.

DNS 영역 생성

새 DNS 영역을 만들려면 PowerShell DNS cmdlet Add-DnsServerPrimaryZone을 사용하십시오. 이 경우, 역방향 조회 영역을 생성하므로 네트워크 ID를 제공하십시오.

이 예에서는 복제 범위를 전체 AD forest로 설정하고 특정 DNS 서버로 DC03를 지정하기로 결정했습니다.

PS51> Add-DnsServerPrimaryZone -ComputerName DC03 -NetworkId "192.168.2.0/24" -ReplicationScope Forest
PS51> Get-DnsServerZone -ComputerName DC03
Creating a DNS primary zone

지금 역방향 조회 영역이 설정되었으므로 CYQF-Printer-01.canada.corp.ad라는 새 프린터에 대한 IP 주소 192.168.2.56에 대한 PTR 레코드를 추가할 수 있습니다. 이 레코드는 canada.corp.ad 영역을 위한 것이므로 DNS 서버 DC03을 대상으로 할 것입니다.

이제 영역이 생성되었으므로 Add-DnsServerResourceRecordPtr 명령을 사용하여 PTR 레코드를 만들어 봅시다. 이 cmdlet을 사용할 때 몇 가지 중요한 사항을 주의해야 합니다.

  • 네트워크 ID를 역순으로 사용하여 영역 이름을 지정해야 하며, 그런 다음 .in-addr.arpa를 추가해야 합니다. 따라서 우리의 192.168.2.0/24 네트워크 ID의 경우 영역 이름은 2.168.192.in-addr.arpa입니다.
  • Name 매개변수는 IP 주소의 호스트 부분입니다. 192.168.2.56에 대한 프린터의 경우 Name56입니다.

이러한 정보를 갖고 나면 PTR 레코드를 만들기 위해 필요한 코드는 비교적 간단하지만 약간은 길 수 있습니다.

PS51> Add-DnsServerResourceRecordPtr `
    -Name "56" `
    -PtrDomainName "CYQF-Printer-01.canada.corp.ad" `
    -ZoneName "2.168.192.in-addr.arpa" `
    -computerName DC03

PS51> Get-DnsServerResourceRecord -ComputerName DC03 -ZoneName "2.168.192.in-addr.arpa"
Creating a PTR record

별칭 레코드 (CNAME) 추가

이 튜토리얼을 마무리하려면 Add-DnsServerResourceRecordCName cmdlet을 사용하여 호스트 별칭 레코드 또는 CNAME 레코드를 만들어 봅니다.

이러한 레코드를 사용하면 영역 내에서 기존 호스트 레코드에 대한 별칭을 지정할 수 있습니다. 이는 예를 들어 금융 사용자에게 웹 기반 금융 앱을 위한 주소를 제공하려는 경우 특히 유용합니다.

당신은 재무라는 별칭을 만들고, 그것을 웹서버 웹앱25.corp.ad로 연결할 수 있습니다. 앱이 새 호스트명을 가진 새 웹서버로 이관되면 CNAME 레코드를 변경하여 재무를 새 호스트로 연결합니다. 이렇게 하면 사용자들이 즐겨찾기를 업데이트할 필요가 없습니다. 그들은 finance.corp.ad 주소를 사용하여 애플리케이션에 계속 액세스할 수 있습니다.

PS51> Add-DnsServerResourceRecordCName -ZoneName corp.ad -HostNameAlias "webapp25.corp.ad" -Name "finance"
PS51> Get-DnsServerResourceRecord -ZoneName corp.ad -RRType CName
Creating a CNAME record

DNS의 더 깊은 부분을 탐구하고 더 많은 고급 기능을 보려면, 여기서 다른 DNS 게시물을 확인해보세요.

요약

파워셸과 DNS 레코드를 사용하는 튜토리얼을 마칩니다. 여기서 얻은 지식으로, 당신은 이제 상호 작용적으로 또는 대규모 DNS 레코드를 자동화할 수 있을 것입니다!

Source:
https://adamtheautomator.com/powershell-dns/