Bilgisayar Ağları Modelleme¶
Bu başlıkta simülatör ve emülatör kavramları açıklanmaya çalışılıp örnek uygulamalar verilecektir.
Simülatör & Emülatör¶
Bilgisayar üzerinde bir ağı modellemek için; simülatör ve emülatör şeklinde iki tür program kullanılmaktadır:
Simülatör: Gerçek ortamdaki sistemler ile (çok benzese de) birebir aynı şekilde çalışmaz. Uçuş simülatörleri buna örnek gösterilebilir. Gerçek sistemlerde kullanılan donanımların üzerindeki yazılımlar bunda kullanılmaz, simülatörlerde kullanılan sanal cihazlarda özel geliştirilmiş ve kısıtlı yazılımlar çalışır. Ayrık zamanda çalışır: gerçek hayatta binlerce saat sürecek bir işlem 1 saniyede yapılabilir; gerçek hayatta 1ms içerisinde biten bir eylem saniyelerce sürecek şekilde yavaşlatılabilir.
Emülatör: Gerçek cihazlarda kullanılan yazılımlar doğrudan burada da çalıştırılır. Virtualbox üzerinde Windows çalıştırmak için, gerçek Windows kurulumu yaptığımızı hatırlayın. Donanımlar sanallaştırılır ama donanımlar üzerinde gerçek yazılımlar (işletim sistemleri) kullanılır. Gerçek zamanda çalışır.
Simülatör ve emülatör kavramlarını bilgisayar ağları konusu özelinde özetlemeye çalışalım.
İnternet’in ortak dilinin IP olması gibi, bilgisayar ağlarında ortak donanım da Cisco firmasının ürünleridir. Pazara erken girmiş olması, ürünlerinin kaliteli olması, geniş ürün yelpazesi olması, bol miktarda dokümanı olması, kullanıcı sayısının çok olması, vb. nedenlerle bilgisayar ağları çalışan hemen herkes Cisco cihazlara hakim olmaktadır. Bu nedenle, ağ modelleme programlarında öncelikle Cisco cihazlara (yönlendirici, anahtar, vb.) destek sağlanmaktadır.
Emülatör uygulamalarında, -simülatörlerden farklı olarak- gerçek Cisco işletim sistemi kullanılması gerekmektedir. Gerçek işletim sistemi kullanıldığı için, gerçek cihazlarla yapılan fiziksel ağ uygulamalarına çok yakın bir çalışma ortamı sağlamaktadır. Bunun en büyük dezavantajı ise Cisco işletim sistemleri ücretli olduğu için ilave maliyet çıkarmasıdır. Diğer taraftan; bu işletim sistemlerinin İnternet’in yeraltı dünyasında yaygınlaşması gibi illegal durumlara da sebebiyet vermektedir.
Ağ Modelleme Platformları (Ücretsiz Olanlar)¶
Cisco Packet Tracer¶
Cisco firması tarafından geliştirilmektedir. Cisco’nun Networking Academy adı altında vermiş olduğu eğitimlerde katılımcılara verilmektedir. Bunun haricinde satışı bulunmamaktadır. Simülatör tarzında bir uygulamadır.
Kataloğunda Sadece Cisco firmasına ait ürünler bulunmaktadır. Yönlendirici, anahtar, kablosuz erişim noktası, IP telefon sistemler, vb. farklı türde ürünler kullanılabilmektedir. Linux ve Windows sürümleri bulunmaktadır. Program kurulduğunda, ilave bir işlem yapmaya gerek kalmadan tüm özellikleri ile aktif halde olmaktadır. Program içerisinde oluşturulan sanal cihazların gerçek hayat ile bağlantısı yapılamamaktadır. Sadece klasik bilgisayar ağları değil, üst katmanlarda da uygulama gerçekleştirilebilmektedir. Sanal sunucu cihazı üzerinden HTTP, DNS, e-posta sunucuları gibi servisler de simüle edilebilmektedir.
GNS3 (Graphical Network Simulator 3)¶
Cisco’nun kendi cihazları için tasarladığı IOS isimli işletim sistemlerini kullanır. Bu IOS’lerden GNS3 içerisine en az 1 tane dahil edilmelidir. Bu IOS’leri elde etmek için yasal bir yol malesef bulunmamaktadır. Cisco müşterisi olanlar WEB üzerinden indirebilmektedir. Bunun haricinde satışı bulunmamaktadır. VirtualBox PC’leri bunun içine dahil edilebilmektedir. Gerçek yönlendirici imajları ve gerçek sanal bilgisayarlar kullandığından oldukça gerçekçi bir çalışma ortamı sağlamaktadır. Cisco sertifikasyon sınavlarına hazırlananlar için de kullanışlıdır. Programın önemli bir özelliği de sanal ağda kullanılan sanal makinaların Host-PC (fiziksel bilgisayar) üzerinden internet’e çıkabilmesidir.
CORE (Common Open Resource Emulator)¶
Linux ve BSD üzerinde çalışıyor. Windows üzerinde sanal bilgisayarda çalıştırılabiliyor. Hatta kendi sitesinde, VmWare Player için hazır imajları da var. CORE içindeki her bir sanal PC’de Linux çalışıyor. Sanal ağ üzerinde lazım olan tüm işlevleri bu Linux’lar vasıtasıyla gerçekleştirilebiliyor. DHCP sunucusu, yönlendirici hizmeti, WEB sunucusu, vb. tüm işlevler Linux platformları üzerinden sağlanabiliyor. Yönlendirici olarak Cisco kullanma alışkanlığı olanlar, bir sanal Linux üzerine Quagga kurarak, onu sahte Cisco yönlendiriciye çevirebilirler.
Sanal ağı, gerçek ağa bağlayarak internet’e çıkarma özelliği bulunmaktadır. Büyük projelerde kullanmak üzere dağıtık hesaplama desteği de bulunmaktadır. Örneğin; elinizde 3 tane fiziksel PC varsa ve 200 tane node’dan oluşan sanal bir ağ kullanmak istiyorsanız, node’ları iki fiziksel PC’ye paylaştırabilir, 1 PC’yi de GUI amacı ile kullanabilirsiniz. Phyton ile script yazılabildiğini de belirtelim.
Diğerleri¶
-
NS3: https://www.nsnam.org/ (NS2’nin devamı olarak yapılmasına rağmen geriye doğru uyumluluğu olmadığından ayrı bir yazılım olarak değerlendiriliyor)
-
Cloonix: http://clownix.net Açık kaynaklı. KVM sanal makine desteği var.
-
IMUNES: http://www.imunes.net Açık kaynaklı. FreeBSD üzerinde çalışıyor. Sanal makinede çalıştırılabilir.
-
OMNeT++: http://www.omnetpp.org/
-
Marionnet: http://www.marionnet.org/EN/
-
Mininet: http://www.mininet.org
-
Netkit: http://wiki.netkit.org
-
Psimulator2: http://code.google.com/p/psimulator/
-
Virtualsquare: http://wiki.virtualsquare.org/wiki/index.php/Main_Page
-
VNX and VNUML: http://www.dit.upm.es/vnx
-
OPNET (Ücretli): http://www.riverbed.com/products/performance-management-control/opnet.html
CORE İle Uygulama¶
Genel Bilgiler¶
- Linux’ta çalışyor. Konteyner kullanıyor.
- As an emulator, CORE builds a representation of a real computer network that runs in real time, as opposed to simulation.
- The live-running emulation can be connected to physical networks and routers.
- It provides an environment for running real applications and protocols, taking advantage of tools provided by the Linux operating system.
Kullanım alanları: 1. network and protocol research 2. demonstrations 3. application and platform testing 4. evaluating networking scenarios 5. security studies 6. and increasing the size of physical test networks.
Mimari
Çok sayıda bileşenden oluşuyor. Hepsini ayrı ayrı kurmaya gerek yok, otomasyon betiği kendisi kuruyor.
Kurulum¶
- https://coreemu.github.io/core/install.html
- Emülasyonda kullanılacak cihaz sayısına göre CPU ve bellek ihtiyacı var.
- Ubuntu ve Centos destekleniyor ama diğer Linux’lara da kurulabilir. Centos 8 üzerine kurdum. Ubuntuda hatırlamadığım sorunlar yaşadım. Çok ta uğraşmadım.
Arayüz tanıtımı¶
- Save/open
- Canvas size, Wallpaper
- View/show
Uygulamalar¶
- ping
- ifconfig
- traceroute
- nmap
- netstat
- tcpdump
- iperf3