Adicionando registros NS a zonas DNS não-AD primárias usando DNSCMD e Powershell 3.0

1

Eu sei que há uma pergunta muito semelhante postada sobre isso, mas a correção oferecida não funcionará para mim, então, em vez de seqüestrar o tópico dele, eu iniciei uma nova pergunta.

Estou adicionando um registro NS a algumas zonas via Powershell e dnscmd, cada uma com o mesmo resultado - um asterisco pelo endereço IP, o que significa que é um "endereço IP recuperado como resultado de uma consulta DNS e pode não representam registros reais neste servidor ". A zona absolutamente não será transferida quando o asterisco estiver presente.

depois de usar o script, eu olho para as zonas secundárias criadas nos servidores DNS2,3 e 4 e ele diz "Zona não carregada pelo servidor DNS" se eu voltar e remover o NS do primário criado pelo script e adicione o NS manualmente, o asterisco desaparece e, depois de uma atualização, as zonas secundárias ficam bem e são carregadas pelo servidor DNS.

Se eu adicionar o mesmo servidor por meio da guia Servidores de nomes na GUI, não haverá asterisco e as transferências de zona sem problema.

estou fazendo isso para "blackhole" estas zonas

aqui está o script Powershell que eu criei (sim, eu sei que pode não ser o melhor caminho ou a melhor ferramenta, mas não, ainda não temos servidor 2012, não consigo importar nenhum módulo para o meu Powershell e para a ferramenta DNSCMD é tudo o que tenho para trabalhar e tudo o que tenho permissão para trabalhar nesta rede.

Eu tenho um arquivo de texto dos endereços da web que estou adicionando ao "blackhole" usando o script abaixo

$a = Get-Content "D:\filelocation\blackholetest.txt"
$b = "@"
foreach ($a in $a)
{
    dnscmd DNS1 /zoneadd $a /Primary /File $a".dns"
    dnscmd DNS1 /recordadd $a WWW A IP.ADD.RE.SS
    dnscmd DNS1 /recordadd $a $b NS DNS2.fully.qualified.domain.name
    dnscmd DNS1 /recordadd $a $b NS DNS3.fully.qualified.domain.name
    dnscmd DNS1 /recordadd $a $b NS DNS4.fully.qualified.domain.name
    dnscmd DNS2 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
    dnscmd DNS3 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
    dnscmd DNS4 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
}
    
por NuckinFutz 27.09.2016 / 20:32

1 resposta

2

Então, a missa Nerder me enviou na direção certa. Obrigado missa.

mesmo que eu estivesse nomeando o NS no script e a transferência de zona estivesse definida para ser transferida para os servidores na guia NS, não era por causa do * na guia NS no IP dos servidores. Adicionando algumas linhas ao script para definir o IP dos servidores secundários na guia Transferência de zona e definindo as transferências de zona para irem para os servidores na lista, tudo está certo com o mundo e está funcionando da maneira que precisa ser . (veja o script final abaixo)

obrigado a todos e obrigado mais uma missa por me apontar na direção certa.

$a = Get-Content "D:\filelocation\blackholetest.txt"
$b = "@"
foreach ($a in $a)
{
dnscmd DNS1 /zoneadd $a /Primary /File $a".dns"
dnscmd DNS1 /recordadd $a WWW A IP.ADD.RE.SS
dnscmd DNS1 /recordadd $a $b NS DNS2.fully.qualified.domain.name
dnscmd DNS1 /recordadd $a $b NS DNS3.fully.qualified.domain.name
dnscmd DNS1 /recordadd $a $b NS DNS4.fully.qualified.domain.name
dnscmd DNS1 /zoneresetsecondaries $a /securelist DNS2.IP.ADD.RESS DNS3.IP.ADD.RESS DNS4.IP.ADD.RESS /notify
dnscmd DNS2 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
dnscmd DNS3 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
dnscmd DNS4 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
}

depois de perceber que eu posso não ser o único em minha organização que usaria esse script, decidi modificá-lo para usar a entrada do usuário em vez de um conteúdo de conteúdo e decidi fazer o loop. veja o novo código abaixo.

do
 {
 $a = Read-Host "Enter Domain name you want to add to the black hole.  If you are done type Exit"
 if ($a -eq "Exit")
 {break}
 else
 {
$b = "@"
 dnscmd DNS1 /zoneadd $a /Primary /File $a".dns"
  dnscmd DNS1 /recordadd $a WWW A IP.ADD.RE.SS
  dnscmd DNS1 /recordadd $a $b NS DNS2.fully.qualified.domain.name
  dnscmd DNS1 /recordadd $a $b NS DNS3.fully.qualified.domain.name
  dnscmd DNS1 /recordadd $a $b NS DNS4.fully.qualified.domain.name
  dnscmd DNS1 /zoneresetsecondaries $a /securelist DNS2.IP.ADD.RESS DNS3.IP.ADD.RESS DNS4.IP.ADD.RESS /notify
  dnscmd DNS2 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
  dnscmd DNS3 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
  dnscmd DNS4 /zoneadd $a /Secondary MASTER.DNS.Server.IPAddesss /File $a".dns"
 }
 }
 until ($a -eq "Exit")
    
por 28.09.2016 / 18:08