2022. május 26., csütörtök

Gyorskeresés

Idő szinkronizáció konfigurálása Active Directory környezetben

Írta: | Kulcsszavak: windows . server . active . directory . ntp . ntd5s . pdc

[ ÚJ BEJEGYZÉS ]

Probléma:
Active Directory környezetben nagyon fontos, hogy a tartomány tagjainak időbeállításai megfelelően, összhangban legyenek konfigurálva. Az Microsoft leírásaiban 5 perces kritikus időkülönbséget írnak, de lehet megmagyarázhatatlan anomáliával találkozni akkor is, ha ennél kisebb az időeltolódás a gépek között. Elméletileg a tartományi gépek automatikusan szinkronizálnak a tartományvezérlővel mindenféle hókusz-pókusz nélkül, de mint látni fogjuk vannak kivételek - például Hyper-V virtuális gépek -. Azért, hogy biztosan ne legyen belőle gond, érdemes átrágni a problémát.

Lépések:
Nézzük az alábbi környezetet. Kettő darab Doamin Controller, szerverek és kliensek, tartományi és munkacsoportos gépek, fix IP és DHCP-vel kiosztott címek, valamint értelem szerűen lusták is vagyunk. Kezdésnek egy ábra.

1. PDC Emulator beállítása
Első feladat a PDC Emulator konfigurálása a tartományunkban. Mint az az ábrán is jól látszik a PDC Emulator szórja az idő adatokat a tartományon belül. Ez az ábrán külön gépként szerepel, de alapértelmezetten az elsődleges - vagy egyetlen - tartományvezérlőnk automatikusan PDC Emulator szerepkört kap. Ezt az alábbi helyen tudjuk ellenőrizni, miután beléptünk az elsődleges tartományvezérlőre: Active Directory Users and Computer - View - Advanced Features pipáljuk be, majd a domain-ünk nevén kattintsunk jobb gombbal, Operations Masters - PDC fül. Amelyik gépet itt látjuk, az a PDC Emulator.

Indítsunk egy Administrator jogú parancssort és kérjük le a PDC Emulator-unk jelenlegi beállítását az alábbi paranccsal: w32tm /query /source

Mivel nálam az elsődleges tartományvezérlő egy virtuális gép, így más az időkiszolgáló, mint ha fizikai gép lenne, abban az esetben valami CMOS Clock-hoz hasonló eredményt kapnánk. Ez így nem jó, állítsunk be valamilyen internetes időkiszolgálót, amihez tudjuk szinkronizálni a PDC Emulator-unkat. Ehhez adjuk ki a következő parancsokat:

w32tm /config /manualpeerlist:time.windows.com,0x8 /syncfromflags:manual /reliable:yes /update
w32tm /resync /rediscover
net stop w32time
net start w32time
w32tm /query /configuration

Eredményként láthatjuk, hogy az NtpServer mostantól a time.windows.com, vagyis a PDC Emulator-unk megbízható időkiszolgálónak mondható. Innen kezdődően az összes kliens gépünknek a PDC Emulator-t kell megadni, mint időkiszolgáló, így biztosan szinkronban lesz az összes gép.

Amennyiben GPO-ból szeretnénk ez megvalósítani - és miért ne szeretnénk - akkor a következőt kell ehhez tennünk:
Group Policy Manager - Group Policy Objects - jobb gomb - New - Name: NTPConfigurationServer - Ok. Majd jobb gomb rajta Edit - Computer Configuration - Policies - Administration Templates - System - Windows Time Service - Time Providers - Enable Windows NTP Client - jobb gomb - Edit - Enable - Ok
Utána ugyanitt Configure Windows NTP Client - jobb gomb - Edit - Enable. Egyedül a Type-ot kell átállítani NTP-re, valamint megadni egy külső NTP szerver címét, például time.microsoft.com.

Fontos, hogy ezek a beállítások csak a PDC Emulator-ra legyenek igazak. Ehhez állítsuk be a bal oldali konfigurációs felületen a Security Filtering résznél, hogy csak az elsődleges tartományvezérlő legyen a listában. Ehhez töröljük ki az alapértelmezett bejegyzéseket, majd az Add gombot megnyomva írjuk be a gép nevét, Check Name gomb, végül Ok. Ha valamiért nem találná meg a gépünket, akkor a Select User, Computer or Group ablakban kattintsunk a felső Object Types gombra és pipáljuk ki a Computers választási lehetőséget. Így már fog keresni a számítógépek között is.

Ezzel kész is vagyunk, jöhet az összes többi tartományi gép beállítása.

2. Kliens gépek beállítása
A kliens gépek beállítása nagyban megegyezik az első pontban ismertetekkel, de mégis fontos különbségeket tartalmaz. Először nézzük a parancssoros megoldást:

w32tm /config /syncfromflags:domhier /reliable:no /update
w32tm /resync /rediscover
net stop w32time
net start w32time
w32tm /query /configuration

A kliens megkeresi a tartományunkban a PDC Emulator-t és beállítja forrásnak. A többi parancs már a szokásos. A folyamat végén láthatjuk, hogy a kliens gépünkön NT5DS időszinkronizáció van beállítva, és ez így jó nekünk. Azonban mivel nem akarjuk ezt minden kliens gépünkön kiadni, így nézzünk erre is csoportházirendet.

Group Policy Manager - Group Policy Objects - jobb gomb - New - Name: NTPConfigurationClient - Ok. Majd jobb gomb rajta Edit - Computer Configuration - Policies - Administration Templates - System - Windows Time Service - Time Providers - Enable Windows NTP Client - jobb gomb - Edit - Enable - Ok
Utána ugyanitt Configure Windows NTP CLient - jobb gomb - Edit - Enable. Egyedül a Type-ot kell átállítani NTD5S-re, NtpServer mező értelem szerűen üres.

Azonban mielőtt ezt a GPO-t linkelnénk a teljes tartományunkhoz, előtte egy fontos beállítást kell eszközölnünk. Mivel azt szeretnénk, hogy minden tartományi gépre érvényes legyen a beállítás, ezért domain szintre kell emelni a GPO-t, viszont biztosítanunk kell azt, hogy az elsődleges tartománykiszolgálóra - ami a PDC Emulator - ne legyen érvényes. Ehhez válasszuk ki a csoportházirendet, a jobb oldali menüben válasszuk ki a Delegation fület, itt kattintsunk az Add gombra, írjuk be az elsődleges tartományvezérlő nevét, ellenőrzés képen kattintsunk a Check Name gombra, végül az Ok-ra. Hasonlóan, mint az első esetben ha nem keresne alapértelmezetten, akkor kapcsoljuk be, hogy a Computer elemek között is kutakodjunk. Miután hozzáadtuk kattintsunk az Advanced gombra, keressük meg a kívánt gépet, vegyük ki az Allow oszlop Read attribútumánál a pipát, kicsit görgessünk lejjebb és pipáljuk be az Apply group policy lehetőség Deny oszlopában található rubrikát. Ez után nyugodtan hozzálinkelhetjük a GPO-t az egész tartományunkhoz.

3. DHCP beállítás
Lehetőségünk van arra is, hogy a DHCP szolgáltatással együtt a kliens gépeknek kiadjunk egy NTP szerver paramétert. Ez akkor lehet hasznos, ha nem tartományi gépről beszélünk, igaz ott nem annyira égető az idő szinkronban tartása, de tisztább, szárazabb érzés.

Windows Server 2012 R2 alatt kövessük az alábbi lépéseket. Nyissuk meg a DHCP-t, válasszuk ki a tartományunkat, IPv4 - IPv6 esetén értelem szerűen a másik -, kattintsunk a Scope-unkra, majd Scope Options, jobb gomb Configure Options, majd az Available Options alatt kikeresni a 042 NTP Servers lehetőséget. Tegyünk egy pipát majd adjuk meg a kívánt NTP szervert, jelen esetben én a tartományom PDC Emulator-át adom meg, Apply, Ok.

4. Időzóna beállítás
Ugyan elértük azt, hogy a pontos idő már biztosított, de van még egy apróság a teljes boldogsághoz. A szerver rendszerek nyelve az angol, így érdemes angol nyelvű operációs rendszert használni. Ennek folyományaként az alapértelmezett időzóna beállítása eltér a magyartól, ezért pontosan 9 órával korábbi, pontos időpontot láthatunk a frissen telepített rendszerünkön. Ha már itt vagyunk, állítsuk be ezt is a GPO-nkba.
Első körben keressük meg regedit-ben egy beállított gépen a TimeZoneInformation bejegyzéseit. Az esetemben ezek az alábbiak.

Ezeket szépen, egyesével vigyük fel a keveredést elkerülendő, egy új GPO-ba. Csak egy bejegyzés módját írom le, a többi hasonló módon, értelem szerűen.
Group Policy Manager - Group Policy Objects - jobb gomb - New - Name: TimeZoneConfiguration - Ok. Majd jobb gomb rajta Edit - Computer Configuration - Preferencies - Windows Settings - Registry - jobb gomb - New - Registry Item. Töltsük ki az alábbiak szerint, majd Apply.

Ha szorgosan megcsináltunk mindent, akkor valami hasonlót kell látnunk:

Végezetül linkeljük a GPO-t az egész tartományunkhoz.

5. Probléma 1.
Előfordulhat az, hogy amennyiben az idő szinkronizációt beállításokat igénylő, "kliens" rendszer Hyper-V-ben fut, hiába végezzük el a fenti beállításokat, mégsem a PDC emulátorunkat fogjuk látni a w32tm /query /source parancs hatására, hanem a WM IC Time Sínchronization Provider-t. Ez gyakorlatilag a Hyper-V beépített Time Synchronization Integration Services, mely a host idejét átadja a rajta futó Hyper-V VM-nek, függetlenül attól, hogy milyen beállítást végeztünk el. Abba ne menjünk bele, hogy ez BUG vagy Feature. Elvileg ez nem jelenthet gondot, amennyiben a host-unk is a tartományunk része, mivel biztosan jó időt fog kapni, de a változatosság kedvéért - nomeg a tesztrendszerem is így van felépítve - mi van, ha a host nem része a tartománynak?

Az okosok azt mondják, hogy nem szabad kikapcsolni a fenti szolgáltatást, így kerülő megoldást kell találnunk, melyet a fenti linken meg is találunk. Az alábbi registry bejegyzést kell Parancssorban futtatni, hogy a folyamatos időszinkronizáció ki legyen kapcsolva a Hyper-V Time Synchronization szolgáltatás esetében, mindazonáltal a problémás esetekben (bootolás, Checkpoint visszaállítás, Save State indítás, stb.) működjön a szolgáltatás.

reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0

Érdemes ezt is berakni a GPO-ba, a Client és a Server-be egyaránt. Nyissuk meg a Group Policy Manager - Group Policy Objects - NTPConfigurationClient/NTPConfigurationServer - jobb gomb - Edit - Computer Configuration - Preferencies - Windows Settings - Registry - jobb gomb - New - Registry Item. Töltsük ki az alábbiak szerint, majd Apply.

Hasznos parancsok:
netdom /query fsmo
repadmin /replsum
dcdiag
w32tm /query /status
w32tm /unregister
w32tm /register

Irodalomjegyzék:
Mr X - Time Synchronization in Active Directory Forests
Ace Fekay - Configuring the Windows Time Service in an Active Directory Forest
Benjamin Armstrong - Time Synchronization in Hyper-V

Hozzászólások

(#1) sanzi89


sanzi89
addikt
LOGOUT blog (1)

Bármilyen hibát találtok, jelezzétek. Köszi!

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#2) joghurt


joghurt
addikt
LOGOUT blog

A cikk szempontjából off, de esetleg arra nem tudsz tippet adni, egy Windows szervert hogyan lehet rávenni külső LDAP címtár használatára? Nem akarjuk/tudjuk berakni abba a tartományba, csak a felhasználók azonosítását kellene közösíteni.

A tej élet, erő, egészség.

(#3) sanzi89 válasza joghurt (#2) üzenetére


sanzi89
addikt
LOGOUT blog (1)

Szerintem a kérdéseddel gyere át ide: Rendszergazda topic

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#4) Honkydoo


Honkydoo
őstag

Egy hiba: Miért nem címlapos? :)

Egyébként jó írás, köszi! :R

"Légy olyan, mint bárki más, tégy olyat, mint senki más."

(#5) sanzi89 válasza Honkydoo (#4) üzenetére


sanzi89
addikt
LOGOUT blog (1)

Szerintem a Logout fő olvasótábora számára nem releváns a cikk tartalma, aki akarja meg megtalálja - remélem. :)

[ Módosította: Qru ]

"Mindent azért kell tudni mert kérdezik, nem azért mert hasznos."

(#6) kraftxld válasza sanzi89 (#1) üzenetére


kraftxld
nagyúr

Pár apró extra:
Ha a PDC hyper-v szerveren fut, érdemes kilőni a hyper-v időszinkronizációt erre az egy VM-re, a többinél maradhat ha a host tagja a tartománynak.
Némi magyar nyelvű magyarázat a w32tm cucchoz, JoeP tollából: [link]
Amúgy jó cikk, hejj ha nekem lenne időm ilyeneket összerakni.... van egy nagycsomó dolog amit dokumentálnom kéne, de sose jutok el eddig :(

[ Szerkesztve ]

| MCSE+M/S, MCITP, VCP6.5-DCV - ''Life can be hard, but Scooter is harder :)'

(#7) Tuib válasza kraftxld (#6) üzenetére


Tuib
aktív tag

Igen, attól is el tudott mászni az idő, ha a hyperv host a rajta lévő pdc szerverről szedte azt időt az meg ugye az integration szolgáltatáson keresztül a host szerverről. Egyébként az AD site struktúra is hasonlóan szedi az időt mint az aldomain-ek, ha valaki így is szétkapta az AD-t erre is érdemes figyelnie.

Ez hogy szembe velem négy év távlatából? No, mindegy :)

[ Szerkesztve ]

''A szeretet az, amikor anyu látja aput a mosdóban és szerinte apu nem is gusztustalan.''

További hozzászólások megtekintése...
Copyright © 2000-2022 PROHARDVER Informatikai Kft.