Zaktualizuj nazwę hosta z komputera Debiana z DHCP na serwerze DNS systemu Windows 2008

9

Mam instalację XenServer z maszynami Debian (lenny) tworzonymi codziennie za pomocą skryptu, który tworzy maszynę z szablonu i przypisuje jej nową nazwę hosta.

Nasza sieć ma urządzenie Fortinet 60B, które służy jako serwer DHCP oraz Microsoft Windows 2008 DC, który służy również jako serwer DNS. Chciałbym skonfigurować szablon maszyny Wirtualnej, aby wysyłał swoją nazwę hosta do serwera DNS, gdy otrzyma dzierżawiony adres IP z DHCP.

Obecnie Fortinet przypisuje kontroler domeny jako serwer DNS wraz z dzierżawą adresu IP. Próbowałem dodać wiersz „send host-name” my-host-name ”do /etc/dhcp3/dhclient.conf, ale nic nie jest aktualizowane w DC.

Electric Monk
źródło
2
Czy ustawiłeś serwer DNS systemu Windows, aby zezwalał na nieuwierzytelnione aktualizacje?
Zoredache,

Odpowiedzi:

2

Więc w zasadzie chcesz, aby Twój klient wysłał nazwę hosta na Twój serwer DNS?

Działa to świetnie z klientami Windows, ale w przypadku komputerów z systemem Linux zrobiłbym coś innego: ustaw swoich klientów, aby pytali serwer DHCP o adres IP i nazwę hosta. Korzystając z opcji „żądanie nazwy hosta”, dhclient prosi serwer DHCP o przesłanie nazwy hosta wraz z adresem IP, a następnie ustawia nazwę hosta maszyny wirtualnej.

Oczywiście musisz przygotować w DNS nazwę hosta dla każdego adresu IP w zakresie DHCP.

W ten sposób nie masz problemu z pamięcią podręczną / opóźnieniem propagacji DNS i możesz mieć centralne miejsce ze wszystkimi adresami IP i nazwami hostów - swoim serwerem DNS.

Nie wiem, czy serwer DHCP twojego urządzenia obsługuje wysyłanie nazw hostów - większość tak, ale myślę, że jest to najłatwiejszy sposób dla klientów Linux.

Uwaga: Jeśli skonfigurowałeś serwer DHCP tak, aby ten sam komputer zawsze otrzymywał ten sam adres IP (np. Używając adresu mac), wtedy oczywiście otrzyma również tę samą nazwę hosta. Na niektórych serwerach DHCP można użyć bezpośrednio nazwy hosta zamiast adresu IP w plikach konfiguracyjnych.

użytkownik9437
źródło
tak się nie stanie, ponieważ ustawiam nazwę hosta w skrypcie, który przyjmuje ją (nazwę hosta) jako argument.
Electric Monk,
2

Skończyło się na użyciu skryptu, który uruchamia nsupdate po utworzeniu maszyny wirtualnej z szablonu i przy każdym uruchomieniu.

Electric Monk
źródło
1

Jest to nieco podobne do mojego pytania . Spójrz na mój ostatni komentarz do jedynej odpowiedzi, którą otrzymałem, gdzie odnoszę się do dhclient.conf.

John Gardeniers
źródło
więc po prostu dodałeś „wyślij nazwę hosta” do dhclient.conf? ponieważ to nie działało dla mnie
Electric Monk
To wszystko, co musiałem zrobić. Strona podręcznika wskazuje, że nazwa FQDN jest wymagana, ale w moim przypadku po prostu wysłanie nazwy hosta działało zarówno w systemach Windows, jak i Linux, DHCP i DNS. Maszyny zostały dodane do DNS przez usługę DHCP, gdy tylko dzierżawa DHCP klienta została zwolniona i ponownie utworzona.
John Gardeniers,
1

Dwie rzeczy, które znalazłem, które były wymagane, aby uzyskać maszynę nie przyłączoną do domeny w celu rejestracji i aktualizacji jej rekordów DNS na serwerze Windows DC \ DNS:

  1. Skonfiguruj serwer DC \ DNS, aby zezwalał zarówno na bezpieczne, jak i niezabezpieczone dynamiczne aktualizacje DNS.

  2. Skonfiguruj nazwę FQDN hosta niebędącego domeną, aby była zgodna z nazwą AD \ DNS: jak w host.domain.com

joeqwerty
źródło
1

Hmm Nigdy nie próbowałem tej dokładnej konfiguracji - miałem tę pracę z klientami Linux na serwerach DHCP Windows, ale w tej konfiguracji serwer DHCP dokonuje aktualizacji. Nie jestem pewien, czy pudełko Fortinet robi to samo.

Możesz spróbować zmusić klienta do bezpośredniej rozmowy z serwerem DNS; coś jak:

send fqdn.server-update off;
send fqdn.encoded on;
send fqdn.fqdn "hostname.example.com.";  

w /etc/dhcp3/dhclient.conf. Sprawdź man dhclient.confwięcej informacji. Musiałem przynajmniej ustawić, send fqdn.fqdnaby działał w mojej konfiguracji.

Musisz także włączyć niezabezpieczone aktualizacje stref DNS.

James
źródło
1

Wiele osób uważa to za rażąco oczywiste, ale pamiętaj o określeniu własnej dyrektywy dotyczącej żądań, w dhclient.confktórej nie żąda się nazwy hosta ani nazwy domeny . Domyślnie na mojej dystrybucji było:

request subnet-mask, broadcast-address, time-offset, routers,
        domain-name, domain-name-servers, host-name,
        netbios-name-servers, netbios-scope, interface-mtu;

Zauważ, że żąda to zarówno nazwy hosta, jak i domeny z serwera, co unieważnia send host-name ...dyrektywę. Moje żądania i dyrektywy wysyłania hosta wyglądają następująco:

send host-name "leaf.node.domain.com";
request subnet-mask, broadcast-address, time-offset, routers,
        domain-name-servers,
        netbios-name-servers, netbios-scope, interface-mtu;
RobM
źródło