Hogyan működik a Windows Server 2003 terminálkiszolgáló?

a Terminálkiszolgáló alapvetően megegyezik a szokásos Windows Server operációs rendszerrel, azzal a különbséggel, hogy a Terminálkiszolgáló környezetekben a kulcsfontosságú összetevőket hozzáadták vagy módosították, hogy több, egyidejű felhasználó számára támogatást nyújtsanak.

a Microsoft Windows mindig is “többfelhasználós” operációs rendszer volt abban az értelemben, hogy egyszerre több felhasználó is csatlakoztatható egyetlen szerverhez. Ezek a felhasználók azonban a kiszolgálókon lévő fájlszolgáltatásokhoz vagy nyomtatószolgáltatásokhoz kapcsolódtak. A helyi Windows interfészeket a helyi számítógépeken futtatták, és a kiszolgáló csak egy asztali felületet támogatott a helyi billentyűzeten, egéren és monitoron keresztül. A fő különbség a terminálkiszolgálóval szemben az, hogy több felhasználó futtathatja saját Windows asztali munkameneteit a kiszolgálón. Tehát a Terminálkiszolgáló “többfelhasználós” abban az értelemben, hogy több asztali interfészt támogat. Vannak, akik szeretik ezt “távirányító” környezetként gondolni, azzal a különbséggel, hogy a Terminálkiszolgáló sok felhasználót képes egyszerre “távvezérelni”, minden felhasználó valami teljesen mást csinál.

annak érdekében, hogy a Terminálkiszolgáló több felhasználói munkamenetet is támogathasson, néhány változtatást kellett végrehajtani rajta a szokásos Microsoft Windows server szoftverből. Két alapvető különbség van a szokásos Windows Server és a telepített Terminálkiszolgáló között:

  • amikor a Terminálkiszolgáló telepítve van egy Windows 2003 kiszolgálón, a Windows operációs rendszer egyes alapvető összetevőit úgy módosítják, hogy több, egyidejű felhasználói felületet támogassanak. Például a virtuális memóriakezelő és az objektumkezelő úgy módosul, hogy több, egyidejű asztali interfészt támogasson anélkül, hogy összezavarodna. Ezek jelentős módosítások, amelyek megkövetelik a rendszer újraindítását a Terminálkiszolgáló telepítése után.
  • a Terminálkiszolgáló telepítésekor új szolgáltatások és összetevők kerülnek hozzáadásra, amelyek lehetővé teszik a kiszolgáló számára több felhasználói munkamenet támogatását. Ezek közül a legfontosabb a “Terminálkiszolgáló” szolgáltatás. Ez a szerver mélyén futó szolgáltatás felelős a több felhasználói munkamenet összekapcsolásáért az operációs rendszerrel. Felelős az olyan funkciókért is, mint a munkamenetek létrehozása, a felhasználók fogadása és a munkamenetek befejezése.

Terminálkiszolgáló komponensek

bár úgy tűnik, hogy a Terminálkiszolgáló alapvetően egy dicsőített PCAnywhere rendszer, valójában egy összetett rendszer, amely több különböző összetevőből, alrendszerből és interfészből áll. A Terminálkiszolgáló összetevőinek teljesebb diagramja a 2.1. ábrán látható. A Windows 2003 terminálkiszolgálót alkotó egyes összetevők leírását a következő néhány szakaszban olvassa el.

2.1. ábra: Terminal Server 2003 components

A Windows Server 2003 Kernel

emlékeztetni kell arra, hogy minden szerveralapú számítástechnikai környezet kulcsfontosságú eleme a többfelhasználós operációs rendszer. A Windows Server 2003 rendszerben ezt a rendszert a kernel vezérli.

A Windows Server 2003-nak szüksége van arra, hogy elhatárolja az operációs rendszer kritikus összetevőit az összes őrült felhasználótól. Ennek elérése érdekében A Windows folyamatok két mód egyikében működnek: felhasználói mód vagy kernel mód. Visszagondolva a Windows NT képzésre, emlékezni fog arra, hogy a felhasználói módú alkalmazás nem tud közvetlenül az operációs rendszer memóriájába írni. Ehelyett teljes hozzáféréssel rendelkezik a saját 4 GB-os memóriaterületéhez. Az operációs rendszer egyik összetevője, a virtual memory manager (amely maga kernel módban fut) vezérli mindezt, és a felhasználói módú alkalmazás nevében ír a rendszermemóriába.

Terminálkiszolgáló környezetben a felhasználói mód és a kernel módú alkalmazások szétválasztása lehetővé teszi a rendszer számára a felhasználók elkülönítését és elkülönítését. Egy felhasználó alkalmazás összeomlik nem veszi le az egész rendszert. (Természetesen arra gondolsz, hogy egy alkalmazás összeomlik egy rendszert, azonban ez általában a kernel módban futó eszközillesztőkhöz van kötve.)

a “standard” (azaz nem Terminálkiszolgáló) Windows környezetben, ahol csak egy felhasználó jelentkezik be interaktívan, az összes kernel módú folyamat boldogan él együtt egy memóriaterületen és névtérben. Többfelhasználós környezetekben, például a Terminálkiszolgálóban azonban ez a megosztás nem fog működni, mivel a különböző felhasználók munkameneteiből származó kérések ütközhetnek egymással. A terminálkiszolgálón lévő kernel következésképpen több munkamenetre van tudatában; minden felhasználó munkamenetét elkülönítve tartja, elkülönített folyamatokkal és memóriával. A Windows Server 2003 a terminálkiszolgáló összetevő telepítésekor néhány módosítást hajt végre a kernelen.

először a szerver a kernel memória címterületének egy részét a virtuális memóriába helyezi. Ez lehetővé teszi az egyfelhasználós környezetben egymásnak ellentmondó kérések megfelelő feldolgozását a többfelhasználós környezetben, valamint a kernel módú eszközillesztők több példányának betöltését és használatát több felhasználó számára (ez az oka annak, hogy egy felhasználó technikailag összeomlik az egész rendszer).

egyes rendszerfolyamatok nem munkamenet-specifikusak, ami azt jelenti, hogy minden munkamenetben minden felhasználónak hozzáférnie kell hozzájuk. Ezeket a folyamatokat egyetlen (globális) memóriaterületen tárolják, amelyet az összes felhasználó megoszt.

az ilyen folyamatok Terminálkiszolgáló környezetben történő megosztásának mellékhatása az, hogy néha olyan folyamatokba ütközik, amelyek nincsenek “munkamenet-tudatában.”Az egyik lehetséges (és vicces) eredmény lehet hibaüzenet, amely a szerver konzolon jelenik meg a felhasználó munkamenetében futó alkalmazásokból. Mivel a szerverteremben általában nincs senki, aki nyugtázza az üzenetet, fennáll annak a lehetősége, hogy megakadályozza a felhasználó alkalmazásának folytatását.

a Terminálszolgáltatások szolgáltatás

“a Terminálszolgáltatások szolgáltatás” a “Terminálszolgáltatások” nevű szokásos Windows szolgáltatásra (Start | Felügyeleti eszközök | szolgáltatások) utal. A való világban az emberek általában “Terminálszolgáltatásnak” nevezik, és a “Terminálkiszolgáló” kifejezést használják, amikor a Terminálszolgáltatást futtató Windows kiszolgálóra hivatkoznak.

ha a Windows Server 2003 rendszerben a kiszolgálóalapú Számítástechnika alapja a többfelhasználós kernel, akkor a terminálszolgáltatás a sarokköve. Ez a szolgáltatás (keresztül betöltött termserv.dll) betöltése után azonnal a kernel jön online. A kiszolgáló konzoljának (billentyűzet, videó és egér illesztőprogramok) betöltése után a terminálszolgáltatás elindítja a Session Manager alrendszert (smss).exe) felelős a kiszolgálón lévő összes felhasználói munkamenet kezeléséért és nyomon követéséért.

Terminálkiszolgáló munkamenetek

minden alkalommal új munkamenet jön létre, amikor egy felhasználó bejelentkezik a terminálkiszolgálóra. A munkamenet lényegében egy virtuális asztalból áll, ahonnan a felhasználó alkalmazásokat futtathat, és amellyel ugyanúgy kölcsönhatásba léphet, mint egy munkaállomással. A kiszolgálói munkamenetet nem szabad összetéveszteni a kiszolgálókonzollal, mivel a munkamenet nem a konzol távirányítója, hanem valójában egy új, a konzoltól elkülönített asztal.

minden alkalommal, amikor egy felhasználó csatlakozik egy terminálkiszolgálóhoz és létrehozza ezt a “virtuális asztalt”, egy egyedi munkamenet-azonosító szám jön létre, amely megkülönbözteti a felhasználót (és ezáltal a felhasználó folyamatait) az összes többi munkamenettől és felhasználótól. A munkamenet-azonosítók lehetővé teszik a kiszolgáló számára, hogy a memóriát külön tartsa az egyes felhasználók munkameneteihez. Amikor egy felhasználó kijelentkezik egy Terminálszolgáltatási ügyfélről, a használt munkamenet törlődik, és az adott munkamenet által elindított és használt folyamatok és memória törlődik. Minden Terminálkiszolgáló nyomon követi a saját munkamenet-azonosítóit, és kezeli azok kiadását, nyomon követését és eltávolítását.

mivel a kiszolgálói munkamenetek “virtuálisak” (és a memória és a folyamatok külön vannak a munkamenetek között), az egyik munkamenet során bekövetkező alkalmazás-összeomlás vagy-zárolás nem befolyásolhatja a többi felhasználói munkamenetet, még akkor sem, ha más felhasználók ugyanazt az alkalmazást használják.

a kulcsmondat azonban itt a “nem szabad” hatással lenni más Felhasználókra. Annak ellenére, hogy a felhasználói munkamenetek külön vannak a kiszolgálón, továbbra is megosztják a kiszolgáló erőforrásait és a kód bizonyos szegmenseit. Ha egy Felhasználó olyan folyamatot hív meg, amely a kiszolgáló kék képernyőjét okozza, ez nyilvánvalóan hatással lesz a többi felhasználóra. Másrészt az olyan egyszerű események, mint például egy időzített kérésen lógó alkalmazás vagy a Microsoft Word összeomlik, amikor egy felhasználó megnyit egy sérült dokumentumot, a többi felhasználó (saját munkamenetükön belül) nem látja a rendszert.

munkamenet állapotok

mivel a munkamenet valóban a felhasználó asztala, vannak esetek, amikor a munkamenet különböző állapotokban lehet, hasonlóan egy normál munkaállomáshoz. Ha például egy felhasználó egy ideig elhagyja a munkaállomását, a munkaállomás nem kapcsol ki. Inkább csak tétlen, várja a felhasználói bemenetet. A terminálkiszolgáló munkamenetei nagyjából ugyanúgy viselkednek, és számos különböző állapotban lehetnek a felhasználó tevékenységétől (vagy inaktivitásától), az ügyfél és a kiszolgáló közötti kapcsolattól és a munkamenet időtúllépési beállításaitól függően.

2.2. ábra: minden Terminálkiszolgáló számos különálló felhasználói munkamenetet tart fenn

a Terminálkiszolgáló összes felhasználói munkamenetének a következő hat állapot egyikében kell lennie:

  • az Active egy élő és aktív felhasználó. A felhasználó interakcióba lép a Terminálkiszolgáló munkamenetével, és nem volt inaktivitási periódusa vagy hálózati leválasztása a kiszolgálóról. Ez a munkamenet “normális” állapota.
  • tétlen az az állapot, amelybe egy munkamenet megy, ha a felhasználó egy meghatározott ideig nem ad be bemenetet.
  • leválasztott munkamenetek akkor fordulnak elő, amikor egy “élő” munkamenet folyamatai és programjai futnak, de nincs RDC kliens csatlakoztatva. (Ha kihagyta az első fejezetet, az “RDC Client” az RDP Client új neve.) A gyakori ok a hálózati leválasztás, vagy amikor a felhasználó az RDC kliens szoftver jobb felső sarkában található “X” – re kattint. A felhasználó újra csatlakozhat a leválasztott munkamenetéhez, hogy visszatérjen egy “aktív” állapotba (és folytassa munkáját ott, ahol abbahagyta). Gondoljon egy leválasztott munkamenetre, mint egy zárolt munkaállomásra, azzal a különbséggel, hogy a felhasználó az épület bármely számítógépéről “kinyithatja” munkaállomását.
  • a csatlakoztatott munkamenetek olyan állapotban vannak, amelyben az ügyféleszköz csatlakozik egy kiszolgálói munkamenethez, de nincs felhasználó bejelentkezve, hasonlóan a CTRL+ALT+DEL parancssorhoz egy munkaállomáson.
  • a Down egy ideiglenes állapot, amelyben egy munkamenet befejeződik, és a munkameneten belüli folyamatok leállnak. A le a munkamenet végső állapota, mielőtt véget ér.
  • a Listen állapot csak a bejövő kapcsolatok fogadására kész figyelőportokon látható. Ez az állapot nem vonatkozik a rendszeres ülésekre. Inkább a kiszolgálón futó folyamatokra vonatkozik, amelyek új munkamenet-csatlakozási kérelmeket várnak (hallgatnak).

a legtöbb környezetben a rendszergazdák különböző időkorlátokkal konfigurálják a munkameneteket. Korlátozhatja azt az időtartamot, ameddig egy munkamenet megnyitható, vagy automatikusan átalakíthatja a tétlen munkamenetet leválasztott munkamenetté. Az időtúllépések segítenek korlátozni azt az időt, amelyet a szerver a folyamatok végrehajtására fordít azon felhasználók számára, akik valóban nem dolgoznak a kiszolgálón. A pontos technikákat és stratégiákat ezek konfigurálására később ebben a könyvben ismertetjük.

csatlakozási portok és hallgatók

minden felhasználó RDP munkamenete egy csatlakozási porton keresztül csatlakozik a terminálkiszolgálóhoz. A csatlakozási port (általában csak “kapcsolatnak” nevezik) egy virtuális port a kiszolgálón, amely egy adott hálózati kártya és protokoll kombinációhoz van társítva.

a Terminálkiszolgáló összetevő telepítésekor automatikusan létrejön egy Terminálkiszolgáló-csatlakozási port. Alapértelmezés szerint lehetővé teszi a “Távoli asztali felhasználók” csoport bármely felhasználójának, hogy bármilyen hálózati kártyán keresztül csatlakozzon a szerver terminálkiszolgálói munkameneteihez. Annak ellenére, hogy az alapértelmezett csatlakozási port minden olyan hálózati kártyával működik, amelyre telepítve van a TCP/IP, a Terminálkiszolgáló csatlakozási portjai valóban hálózati kártya-specifikusak. A több hálózati kártyával rendelkező kiszolgálót úgy konfigurálhatja, hogy több Terminálkiszolgáló csatlakozási portja legyen—minden kártyához egy. Valójában minden kapcsolatnak teljesen különböző tulajdonságai és engedélyei lehetnek.

2.3. ábra: a terminálkiszolgáló több csatlakozási porttal

Terminálkiszolgáló kapcsolatok és a hozzájuk tartozó hallgatók két helyen konfigurálhatók. Az első a Terminal Services Configuration (TSC) MMC beépülő modulon keresztül történik. A TSC segítségével konfigurálhatja az RDP-alapú Terminálkiszolgáló-kapcsolatok beállításait, például a beállításokat, az engedélyeket, valamint azt, hogy melyik hálózati kártyán érvényes a kapcsolat. A terminálkiszolgálói kapcsolatok konfigurálásának második módja az Active Directory csoportházirend-objektum (GPO) egy Windows 2003 tartományban. Ez a funkció lehetővé teszi kapcsolatok hozzárendelését az Active Directory egy szervezeti egységgel rendelkező több kiszolgálóhoz.

hallgatók

minden Terminálkiszolgáló csatlakozási portnak van egy “figyelő” nevű alkomponense.”A figyelő összetevő “figyel” egy adott hálózati kártyán és protokoll kombináción, amelyhez a csatlakozási port konfigurálva van. Amikor egy felhasználó új munkamenetet akar létrehozni a kiszolgálón, az RDC kliens szoftverével lép kapcsolatba a kiszolgálóval. A kiszolgáló figyelője felveszi az ügyfélkérést, és továbbítja azt a munkamenet-kezelőnek. A hallgató ezután visszatér a további csatlakozási kérelmek meghallgatásához.

virtuális csatornák

amint azt korábban tárgyaltuk, a Microsoft TCP/IP-n futó RDP protokollja az a tényleges protokoll, amely összeköti a felhasználókat a szerver munkamenetekkel. Azt is megemlítettük, hogy ez a protokoll nem csak a tiszta virtuális asztali számítógépeket támogatja. Az RDP lehetővé teszi a szerver távoli munkamenet-hangjának csatornázását az ügyfél eszköz hangszóróihoz. Ezenkívül lehetővé teszi, hogy az ügyfél soros portjaihoz csatlakoztatott eszközök úgy jelenjenek meg, mintha a kiszolgálóhoz lennének csatlakoztatva. Ezek az “extrák” az RDP virtuális csatornáin keresztül érhetők el. A virtuális csatorna egyszerűen egy mechanizmus az adatok oda-vissza mozgatására a Terminálkiszolgáló munkamenete és az ügyfél között. Alapértelmezés szerint a Terminal Server 2003 RDP protokollja több virtuális csatornát tartalmaz.

  • hang: A szerver munkameneten generált hangeseményeket az RDP protokollon keresztül átirányítják az RDC kliens eszközre, ahol az ügyfél hangszóróin játsszák őket.
  • Ügyfélmeghajtók: az ügyféleszközön lévő helyi lemezmeghajtók elérhetővé válnak a kiszolgáló számára, így a felhasználók távoli munkameneteiken belül mind a szervermeghajtókhoz, mind a helyi ügyféleszköz-meghajtókhoz hozzáférhetnek.
  • nyomtatók: a terminálkiszolgálón a munkamenet elindítása előtt az ügyféleszköz számára elérhető nyomtatók a kiszolgálói munkameneteken belül állnak a Felhasználók rendelkezésére. A felhasználók ezután nyomtathatnak a szokásos Windows nyomtatóikra, beleértve az ügyféleszközökhöz közvetlenül csatlakoztatott nyomtatókat is.
  • soros portok: a soros port virtuális csatorna lehetővé teszi az ügyféleszköz soros portjához csatlakoztatott eszközök elérését a távoli Terminálkiszolgáló munkamenetein keresztül.
  • Windows vágólap: a helyi alkalmazások távoli Terminálkiszolgáló munkamenetekkel történő integrálásához a Windows vágólap virtuális csatornája szinkronizálja a távoli Terminálkiszolgáló vágólap tartalmát az ügyféleszköz vágólapjának tartalmával. A felhasználók zökkenőmentesen vághatnak és beilleszthetnek a helyi és a távoli alkalmazások között.

ha az alapértelmezett virtuális csatornák nem felelnek meg az Ön igényeinek, az MSDN és a Windows Server 2003 SDK-k tartalmazzák a saját egyéni virtuális csatornák írására vonatkozó információkat. A virtuális csatorna két komponens kombinációja—egy kliens oldali komponens és egy szerver oldali komponens. Mindkettő képes adatokat küldeni és fogadni a virtuális csatornán keresztül, lehetővé téve az egy – vagy kétirányú kommunikációt. A virtuális csatornák RDP-függetlenek is lehetnek, ami azt jelenti, hogy testreszabhatja a környezetét a tényleges kliens vagy szerver szoftver frissítése vagy módosítása nélkül.

miért a hangsúly a virtuális csatornák? Bár ez nem fejlesztői könyv, és valószínűleg soha nem fogja fejleszteni saját virtuális csatornáját, kritikus fontosságú, hogy megértse, hogyan működnek. Majdnem minden harmadik féltől származó kiegészítő termék a terminálkiszolgálóhoz virtuális csatornákat használ. A virtuális csatornák működésének megértése segít elhárítani azokat a harmadik féltől származó termékeket, amelyekkel kétségtelenül találkozni fog a Terminálkiszolgáló karrierje során.

ennek ellenére vessünk egy utolsó pillantást egy virtuális csatorna architektúrájára. Lásd a 2.4. ábrát.

2.4. ábra: Terminal Server 2003 ‘ s virtual channel architecture

a kiszolgálóoldali virtuális csatorna összetevő általában a terminálkiszolgálón futó futtatható fájl. Ennek az összetevőnek felhasználói módú összetevőnek kell lennie, mivel a kiszolgáló a munkamenet-azonosítót használja annak meghatározására, hogy melyik ügyféloldali munkamenetnek kell továbbítania és fogadnia az adatokat.

az ügyféloldali virtuális csatorna összetevő általában a Microsoft, a harmadik féltől származó szoftvergyártó által biztosított DLL, vagy a fejlesztők által egyedi módon írt DLL. A DLL-t akkor kell betölteni az ügyfélszámítógépre, amikor az RDC ügyfélprogram elindul, és megkezdi a kapcsolatot a kiszolgálóval. A legtöbb esetben ez szkriptelt vagy programozottan történik kliens szinten.

hogyan illeszkednek ezek az összetevők egymáshoz

most, hogy megértette a Terminálkiszolgáló különféle összetevőit, nézzük meg, hogyan illeszkednek egymáshoz. Kövesse az ügyfélkapcsolat létrejöttekor zajló folyamatot, hivatkozva a 2.5. ábrára.

2.5. ábra: új munkamenet jön létre

  1. mielőtt bármi történne, a terminálkiszolgáló hallgatói megnéznek bizonyos hálózati kártyákat, IP-címet és TCP-port kombinációkat a bejövő kérésekhez a munkamenetek indításához.
  2. a felhasználó úgy dönt, hogy távoli alkalmazást használ, ezért elindítja RDC kliensét, és kapcsolatot kér a “server1” – hez.”RDC kliense ellenőrzi, hogy milyen virtuális csatorna DLL-ek vannak telepítve.
  3. ebben a környezetben a “server1” név a 192.168.14.42 IP-címre utal (amely történetesen NIC #1 Ezen a szerveren). A felhasználó RDC kliense munkamenet-csatlakozási kérelmet küld a 192.168.14.42 címre.
  4. a szerver figyelője felveszi a kérést, és átadja a session Managernek. Amint a munkamenetkezelő átveszi az irányítást, a hallgató további munkamenetek hallgatását folytatja.
  5. a kiszolgáló tárgyalásokat folytat a kérő ügyféllel a titkosítási szint és a virtuális csatorna képességeiről.
  6. ezután a felhasználó hitelesíti a domaint, és ellenőrzi a kapcsolathoz való hozzáférést.
  7. a Microsoft licencei ellenőrizve vannak. Először a kiszolgálóügyfél-hozzáférési licencet, majd a Terminálkiszolgáló-ügyfél-hozzáférési licencet ellenőrzik. (Az engedélyezést a 4. fejezet részletezi.)
  8. ezen a ponton a felhasználói munkamenet készen áll a kezdésre. A bejelentkezési parancsfájlok futnak, és az asztal betöltődik.

Windows Server 2003 rendszerben a figyelőport egy “kapcsolathoz” van társítva.”Valójában a két kifejezés szinte felcserélhető. Konfigurálja a kapcsolat tulajdonságait, és a kapcsolat figyelő portja megfelelően módosul.

most, hogy lefedtük a Windows 2003 terminálkiszolgálót alkotó összes összetevőt, forduljon a követelményekhez.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.