# GNS3
Graphical Network Simulator-3 (kısaca GNS3), ilk olarak 2008 yılında piyasaya sürülen bir ağ yazılımıdır. Karmaşık ağları simüle etmek için kullanılan sanal ve gerçek cihazların kombinasyonuna izin verir. Cisco IOS'u simüle etmek için Dynamips emülasyon yazılımını kullanır.
GNS3, Exxon, Walmart, AT&T ve NASA dahil olmak üzere birçok büyük şirket tarafından kullanılmaktadır ve ağ profesyonel sertifikasyon sınavlarına hazırlık için de popülerdir. Yazılım 2015 yılı itibarıyla 11 milyon kez indirilmiştir.
Canlı bir ağı yeniden yapılandırmak -örneğin, bir kurumsal ağda erişim kontrol listelerini (ACL'ler) uygularken- zorlu bir görev olabilir. Sıkı değişiklik yönetimi politikaları uygulanıyorsa ve özellikle kesinti ve aksaklıklardan her koşulda kaçınılması gerekiyorsa, bu tür ağlarda sorun gidermek de gerçekten zor olabilir. Bundan kurtulmanın bir yolu, profesyonel karmaşık ağları simüle etmek için GNS3 kullanmaktadır. Ayrıca öğrenciler tarafından çeşitli sertifika sağlayıcıları tarafından yürütülen laboratuvar sınavlarına (CCNA, CCNP, vb.) hazırlanmak için de kullanılmaktadır.


## Tarihçe.
2005 yılında Christophe Fillot bir Cisco yönlendirici simülatörü olan Dynamips'i yazdı. Metin tabanlı bir arayüze sahipti ve bir seferde bir bilgisayarda yalnızca bir yönlendiriciyi simüle edebiliyordu. Dynamips'in 2006'da yayınlanan 0.2.5 sürümü, hipervizör modunu tanıttı ve tek bir bilgisayarda birden fazla yönlendirici simülasyonunu etkinleştirdi. Ayrıca basit bir sanal anahtar da sağladı.
GNS3, Eylül 2007'de bir GUI, ağ bileşenleri eklemek için sürükle ve bırak olanakları ve oluşturulan nesnelerin ve topolojinin kolay depolanması ile tanıtıldı. GNS3 resmi web sayfasında yazılım, "ağ profesyonellerini güçlendiren yazılım" olarak lanse edilmektedir. Eylül 2023 itibarıyla resmi sitesinden v2.2.43'ün dağıtımı yapılmakta olup Windows, Linux ve Mac platformları için serbestçe indirilip kullanılabilmektedir.


## Bağımlılıklar.
GNS3 çeşitli kütüphanelere ve bileşenlere bağlıdır. Bu bağımlılıkların başarıyla yüklenmesi bir ön koşuldur. Önemli bağımlılıklar aşağıda listelenmiştir.
  - Dynamips: Bir Cisco yönlendirici simülatörü olan GNS3'ün temelini oluşturur.
  - Dynagen: Dynamips ile iletişim kurmak için hipervizör modunu kullanan Dynamips'e metin tabanlı bir ön yüz oluşturur. Sanal yönlendirici yapılandırmalarını belirtmek için basit bir yapılandırma dosyası kullanır ve yönlendiricilerin ve ATM, çerçeve röleleri ve anahtarlar gibi WAN teknolojilerinin birbirine bağlanmasını sağlar. Ayrıca, başlatma, durdurma, askıya alma, yeniden yükleme, konsol bağlantısı vb. gibi cihaz işlevleri için yönetim komut satırı (CLI) sağlar.
  - Python: Dynagen, Python dilinde yazılmıştır.
  - VPCS: Bu, dokuz adede kadar PC'yi simüle edebilen sanal bir PC simülatörüdür. Bu sanal PC'lerden veya bu PC'lere doğru ping ve traceroute komutlarını kullanmak mümkündür. VPCS'nin sadece Linux veya Windows üzerinde çalışan ve birkaç ağ komutunu destekleyen bir program olduğunu unutmayın. Ancak, VPCS olmadan bir ağı yapılandırmak zorlaşır. Daha önce, VPCS mevcut değildi ve kullanıcıların test için bir ana bilgisayar (PC) yerine ek bir yönlendirici yapılandırması gerekiyordu.
  - QEMU: Genel ve açık kaynaklı bir makine emülatörü ve sanallaştırıcıdır. Bir makine emülatörü olarak, bir sistem için yapılan programların farklı makinelerde çalıştırılmasını sağlar (örneğin, ARM için geliştirilen programlar bir PC'de çalıştırılabilir). Bir sanallaştırıcı olarak, konuk kodunu doğrudan ana CPU üzerinde çalıştırarak yerel performanslara yakın performanslar elde eder.
  - cpulimit: Bu, bir işlemin gerçek CPU kullanımını sınırlamaya çalışır. GNS3'te oluşturulan cihazların CPU kullanımını sınırlamak için faydalıdır.
GNS3 (Dynamips), cihaz komutlarını simüle etmek yerine gerçek IOS'u çalıştırmak için gerçek cihaz IOS görüntülerini (imajlarını) kullanır. Bir cihaz simülatörü örneği Cisco Packet Tracer'dır. Yalnızca belirli IOS sürümleri ve modüller, kartlar, işlem motorları, bağlantı noktası adaptörleri vb. desteklenir.