Windows Server 2008 R2 Remote Desktop Host Services (önceki ismi Terminal Services) teknolojisinde yaşamış olduğumuz IP Problemlerine RDH Services ile çözüm getirilmiştir.
Remote Desktop IP Virtulization teknolojisi ile Uzak oturum oluşturan (Remote Desktop connection) her bir kullanıcı oturumu için veya her bir kullanıcı oturumu içinde barınan farklı programlar için farklı ip adresleri atayabilmekteyiz.

Remote Desktop IP Virtulization teknolojisinin nasıl yapıldığını, yararı nedir paylaşımını yapmadan önce, teknoloji öncesi yaşamış olduğumuz problemleri ve kullanım amacı hakkında bilgi vermek, yaşamış olduğumuz sıkıntıları tekrardan hatırlatmak isterim.
Remote Desktop IP Virtulization teknolojisi geliştirilmeden önce, yukarıdaki resimde görüldüğü gibi Terminal Sunucularımız üzerine oturum açan her bir kullanıcı Terminal Sunucumuzun sahip olduğu IP adresini ortak olarak kullanmaktaydılar. Her bir kullanıcının açmış olduğu oturum başına IP adresi belirleyemiyorduk. Bu eksiklik bizlere bazı uygulamalarımız için kötü sonuçlar oluşturuyor veya geçmişte planlamış olduğumuz VDI (Virtual Desktop Infrastructure) projeleri için engel teşkil ediyordu.
Bazı programlar kullanıcı modundayken belirli bir port/ip adresi üzerinden networkü dinlemek isterler. Eğer sahip olduğumuz programımız, Terminal Services üzerinden çalışıyorsa , kullanıcı modunda dinlemiş oldukları IP adresi / Port ortak olduğu için problem oluşturuyodu. Bu özelliğe sahip programlarımız doğal olarak Terminal Sunucularımız üzerinde barınamıyordu.
VDI uygulamalarımızı gerçekleştiremiyorduk. Sebep olarak VDI uygulamalarında Thin Client’ dan Terminal Sunucumuza bağlanıyor ve Terminal Sunucumuz üzerindeki zengin kaynakları, uygulamları kullanıcılarımız için paylaşıyorduk. Bu paylaşımlar içinde Web tarayıcıları başı çekmekteydi. Kullanıcılarımızın internet erişimlerini Terminal Sunucumuz üzerinden yapabiliyorduk FAKAT internet erişimlerinin tek bir IP adresi üzerinden gerçekleştirdiğimiz için web gezintilerinin, kayıt altına alınmasında (Log) güçlük çekiyorduk ve çoğu kez başarısız oluyorduk. Hangi kullanıcı, hangi web sayfasını ne zaman, ne kadar ziyaret etmiş vb.. rapor almak istediğimiz zaman karşımıza sürekli olarak tek bir IP adresi çıkıyor ve raporlarımız güvenilmez oluyordu.
Network içinde yavaşlık var. Bu yavaşlığı tespit edebilmek için networkümüzü monitor ediyoruz ve network içindeki yoğunluğa sebep olan IP adresinin Terminal sunucumuza ait olduğunu tespit ediyoruz. Terminal sunucumuz üzerinde birden fazla kullanıcı barındığı için hangi kullanıcı network içinde yavaşlığa/yoğunluğa sebep oluyor öğrenemiyorduk.
Senaryolarımız, yaşamış olduğumuz problemlerimizin sadece bir kaçı. Her birimiz, zamanında buna benzer bir çok problemle karşı karşıya kalmışızdır.

Remote Desktop IP Virtulization Teknolojisi varsayılan olarak kapalı durumdadır. Yukarıdaki resimde Remote Desktop IP Virtulization özelliğinin aktif duruma getirilmemiş Remote Desktop Host sunucusunu görebilmekteyiz. Sunucumuz üzerine birden fazla kullanıcı oturum açmış duruma olup her birisi Remote Desktop Host Sunucumuzun sahip olduğu sabit IP adresini paylaşmaktadırlar.

Remote Desktop IP Virtulization teknolojisini aktif duruma getirebilmek için Remote Desktop Session Host Configuration içine giriyoruz. Edit Settings ekranında RD IP Virtulization bölümünü çift tıklıyoruz.

RD IP Virtualization bölümü açılacak olup Enable IP Virtualization kutusunu doldurup özelliğin aktif duruma gelmesini sağlıyoruz.

RD IP Virtualization teknolojisini, alternatif olarak Group Policy üzerindende gerçekleştirebiliriz. Rd Host Sunucumuz üzerinde gpedit.msc komutu ile Local Group Policy içine girip, Computer configuration\ Administrative Templates\ Windows Components\Remote Desktop Services\ Remote Desktop Session Host\ Application Compatibility yolunu takip edip Turn on Remote Desktop IP Virtualization policy’ sini aktif duruma getirebiliriz.
Select the network adapter to be used for IP virtializotion bölümünde, Sahip olduğumuz Remote Desktop Host Sunucumuz üzerinde bağlı bulunan Network kartını/kartlarını seçiyoruz. Sahip olduğumuz bu network kartı sanal bir Network kartı olabilir. Yani Virtual ortamlarda hizmet edebilen bir teknolojidir. Buradaki şart Network kartının bağlı bulunmuş olduğu network içinde bir tane DHCP Sunucusunun barınması gerekmektedir. Her bir kullanıcı oturumuna veya RD Host sunucumuz üzerindeki her bir uygulama için IP adres atayabilmemiz için bu zorunlu bir şarttır. Eğer ortamda bir DHCP sunucusu barınmıyorsa bu teknoloji kullanamamaktayız. Dhcp sunucusu barınmıyorsa eğer yaşayacak olduğumuz sıkıntı, Kullanıcı oturumununa atanacak ip adresi APIPA veya RD Host sunucumuzun sahip olduğu IP adresi olacaktır.

Eğer RD IP Virtualization teknolojisinin DHCP sunucusu üzerinden IP almamasını istersek ve RD Host sunucusu haricinde sabit/belirli bir IP Adresini kullanılmasını istersek Network Adapter to be used for Remote Desktop IP Virtualization Policy’ sini aktif duruma getirip, RD Host sunucusunun IP adresi haricinde , networkümüz içinde kullanılmayan IP adresini kullandırtabiliriz. Bu policy ile RD Host sunucusu kendi IP adresi üzerinden hizmet ederken, oturumu açan her bir kullanıcı belirlemiş olduğumuz IP adresi üzerinden çalışacaktır.
IP Virtuzlization mode bölümünde bu uygulamanın Per Session (her bir oturum için) veya Per Program (her bir uygulama için) olarak belirleyebilmekteyiz.
İhtiyacımız olan seçimi gerçekleştirdikten sonra Apply ve Ok butonu ile işlemi tamamlıyoruz.

Yukarıda yolunu belirtmiş olduğum Turn on Remote Desktop IP Virtualization bölümü içinde IP Virtuzlization mode seçimini gerçekleştirebiliriz. Grafiksel Arayüzün yanı sıra bu policy içinede Per Program seçimi yapılırsa eğer ilgili programları yazabilmekteyiz.

Gerçekleştirmiş olduğumuz değişiklikler aktif oturumlara etki etmeyecektir. Kullanıcılarımızın bu değişiklikten etkilenebilmeleri için mevcut oturumları sonlandırıp, yeni oturum açtıktan sonra devreye girecektir.
Sunucumuzu yeniden başlatma ihtiyacı bulunmamaktadır.

Remote Desktop IP Virtulization teknolojisini uygulandıktan sonra, her bir RDP kullanıcısı için, DHCP Sunucusu üzerinden farklı ip adreslerinin atandığını görebilmektetiz. RDH sunucumuz üzerinde ipconfig/all komutu ile sahip olduğu IP adreslerine baktığımız zaman kullanıcıya atanan IP adresinin Deprecated olarak belirtildiğini görebilmekteyiz.

Remote Desktop IP Virtulization teknolojisi oturum sanallaştırma çözümlerinde bir çok eksikliğe çare olsa bile yaşanılması muhtemel problemlerde bulunmaktadır.

Her bir oturum Fiziksel bir Network Kartına sahip olmadığı için yani bir MAC adresi bulunmadığı için DHCP sunucumuz üzerinden IP Rezervasyonunu yapamamaktayız. IP adresini kullanıcı / oturum bazlı sabitleyememekteyiz. Oturum açan her bir kullanıcı DHCP sunucusundan atanan ip adresine bağımlıdır.
Eğer DHCP sunucusu hazır durumda değilse veya yeterli IP adresine sahip değilse Do not use Remote Desktop Session Host server IP address when virtual IP address is not available policy’ ini aktif duruma getirebilir ve RD Host sunucumuzun IP adresinin kullanılmamasını sağlatabiliriz.
Eğer projemiz içinde RDH sunucuları üzerinden WEB erişimi yapılacaksa DHCP sunucumuzun loglarını iyi bir şekilde muhafaza etmemiz gerekmektedir.
Fatih KARAALİOĞLU