En lille udfordring hvis man begynder at benytte Heimdal Pro, for at beskytte signe windows klienter.

Slår man Heimdal Secure DNS funktion til, udskiftes den DHCP indlagte DNS server, med 127.0.0.1

Problemet bliver nu hvordan får windows klienen nu registeret sig i windows dns'en, da "register this connection" jo køre imod 127.0.0.1 ?

Min første tanke var at blot lave en lille script som stopper heimdal servicen, lave en ipconfig /registerdns ( Poweshell Register-dnsclient ) og starte servicen igen.
Men windows er så sød at den husker af "afregistere" sig i DNS når den skifter :-(

Min anternativ løsning på problemet blev et lille powershell script som henter alle maskiner med bestemt navne standard ud af wndows "DHCP" og registere disse manuelt i DNS.

Denne job kan så køres med timers interval og holder DHCP og DNS i Sync.

Opdatering 12.01.2017

Man bliver jo klogere, da jeg i første omgang skrev ovenstående overså jeg muligheden for at lade dhcp serveren stå for at opdater dns serveren, dette er både muligt når man arbejder med Windows dhcp og dns, samt Linux Dhcp3-server og bind-dns   -  dette er en mere stabil løsning end lad et "script" håndtere sync imellem disse 2 infrastruktur komponenter.

 

 -- Powershell --

##$Hostname = ([System.Net.Dns]::GetHostEntry($ipAddress)).HostName
##$IPadress = ([System.Net.Dns]::GetHostEntry($Hostname)).addresslist.ipaddresstostring

 $Clients = Get-DhcpServerv4Lease -ComputerName sbs.net.local -ScopeId 172.16.111.0

 foreach($client in $Clients)

{

 If ($client.hostname.ToLower() -like "ws*".ToLower() ){

#-or $client.hostname.ToLower() -like "lt*".ToLower()

 #$client.hostname.

 $DnsHostname = $client.hostname.split(".",2)

$DnsHostname[0]

$client.IPAddress.IPAddressToString

 $record = Get-DnsServerResourceRecord -zonename 'net.local' -computer "sbs.net.local" -Name $DnsHostname[0]

if($record)

{

$record.RecordData.IPv4Address.IPAddressToString

if (!($record.RecordData.IPv4Address.IPAddressToString -eq $client.IPAddress.IPAddressToString)){

$record | remove-DNSServerResourceRecord

start-sleep 20

Add-DnsServerResourceRecordA -Name $DnsHostname[0] -ZoneName 'net.local' -AllowUpdateAny -IPv4Address $client.IPAddress.IPAddressToString -TimeToLive 01:00:00 -ComputerName 'sbs.net.local' -AgeRecord -CreatePtr -DhcId

}

}

else

{

Add-DnsServerResourceRecordA -Name $DnsHostname[0] -ZoneName 'net.local' -AllowUpdateAny -IPv4Address $client.IPAddress.IPAddressToString -TimeToLive 01:00:00 -ComputerName 'sbs.net.local' -AgeRecord -CreatePtr -DhcId

}

}

}