http://stdioe-tr.blogspot.com/2012/07/coklu-cisco-router-simulasyonu-icin.html bağlantısında Çoklu Cisco Router Similasyonu için bir Dynagen & Dynamips örnek çalışmasını anlatmıştım. Bu yazımda ise, birden fazla dynamips servisini birden kullanan bir dynagen uygulaması anlatacağım. Ayrıca dynagen performans optimizasyonu hakkında bir detaydan bahsedeceğim
Bu örnekte 3 adet dynamips servisimiz olacak. Her dynamips servisi ise 3 adet sanal yönlendirici barındıracak ve 9 sanal yönlendirici de birbirine bağlı olacaklar. İlk dynamips servisi R1, R2 ve R3 yönlendiricilerini, ikinci dynamips servisi R4, R5 ve R6 yönlendiricilerini ve üçüncü dynamips servisimiz ise R7, R8 ve R9 yönlendiricilerini içerecekler. Bu 9 yönlendirici konfigüresyon dosyasında 3 erli guruplar halinde ayrı gibi görünselerde, mantıksal olarak her biri bir diğerine bağlı olacaklar.
Topolojimiz ve bağlantılar;
1-) dynamips servislerinin farklı port numaraları ile başlatılması,
ismail@ismail-ThinkPad-T410:~$ dynamips -H 7200 & ismail@ismail-ThinkPad-T410:~$ dynamips -H 7301 & ismail@ismail-ThinkPad-T410:~$ dynamips -H 7402 &
2-) dynamips konfigürasyon dosyasının topolojiye göre oluşturulması,
###############################1-Dynamips-1############################# [localhost:7200] udp=10000 workingdir = /tmp/workingdy1 [[3725]] image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin ram = 128 #idlepc = ?? # We will talk about this, later. ghostios = true sparsemem = true idlemax = 100 disk0=128 [[Router R1]] model = 3725 console = 2001 autostart = false S0/0 = R2 S0/0 [[Router R2]] model = 3725 console = 2002 autostart = false S0/0 = R1 S0/0 S0/1 = R3 S0/0 [[Router R3]] model = 3725 console = 2003 autostart = false WIC0/0 = WIC-2T S0/0 = R2 S0/1 S0/1 = R7 S0/1 ###############################1-Dynamips-1############################# ###############################2-Dynamips-2############################# [localhost:7201] udp=11000 workingdir = /tmp/workingdy2 [[3725]] image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin ram = 128 #idlepc = ?? # We will talk about this, later. ghostios = true sparsemem = true idlemax = 100 disk0=128 [[Router R4]] model = 3725 console = 2004 autostart = false S0/0 = R5 S0/0 S0/1 = R8 S0/1 [[Router R5]] model = 3725 console = 2005 autostart = false S0/0 = R4 S0/0 S0/1 = R6 S0/0 [[Router R6]] model = 3725 console = 2006 autostart = false S0/0 = R5 0/1 ###############################2-Dynamips-2############################# ###############################3-Dynamips-3############################# [localhost:7202] udp=12000 workingdir = /tmp/workingdy3 [[3725]] image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin ram = 128 #idlepc = ?? # We will talk about this, later. ghostios = true sparsemem = true idlemax = 100 disk0=128 [[Router R7]] model = 3725 console = 2007 autostart = false S0/0 = R9 S0/0 S0/1 = R3 S0/1 [[Router R8]] model = 3725 console = 2008 autostart = false WIC0/0 = WIC-2T S0/0 = R9 S0/1 S0/1 = R4 S0/1 [[Router R9]] model = 3725 console = 2009 autostart = false S0/0 = R7 0/0 S0/1 = R8 0/0 ###############################3-Dynamips-3#############################
Yukarıdaki konfigürasyon metnini sample2.net ismi ile /tmp dizini altına kayıt ettim. Yine bu örnekte de working dizinlerine ihtiyacım olacak, oluşturuyorum:
ismail@ismail-ThinkPad-T410:~$ mkdir /tmp/workingdy1 ismail@ismail-ThinkPad-T410:~$ mkdir /tmp/workingdy2 ismail@ismail-ThinkPad-T410:~$ mkdir /tmp/workingdy3
3-) Working dizinleri hazır. Şimdi dynagen servisi başlatılmaya hazır. Sorun çözme hakkında bir şeyler göstermek için bir hata yapıyorum,
ismail@ismail-ThinkPad-T410:~$ dynagen /tmp/sample2.net Reading configuration file... Shutdown in progress... Shutdown completed. Shutdown in progress... Shutdown completed. Shutdown in progress... Shutdown completed. *** Warning: Connecting R6 S0/0 to R5 0/1 resulted in: malformed destination interface: R5 0/1 *** Warning: Connecting R9 S0/0 to R7 0/0 resulted in: malformed destination interface: R7 0/0 *** Warning: Connecting R9 S0/1 to R8 0/0 resulted in: malformed destination interface: R8 0/0 *** Error: errors during loading of the topology file, please correct them Shutdown in progress... Error: could not communicate with dynamips server localhost It may have crashed. Check the dynamips server output. Exiting... Press ENTER to exit [3]+ Segmentation fault (core dumped) dynamips -H 7202 ismail@ismail-ThinkPad-T410:~$
Normalde bir hattın her iki ucu için de bağlantı tanımlayabilirsiniz. Ancak görüldüğü gibi dynagen servisi bu çift tanımlamayı kabul etmiyor. R5 yönlendiricisinde, " S0/1 = R6 S0/0" bağlantısını kaldırıyorum. Aynı şekilde R7 yönlendiricisinden, " S0/0 = R9 S0/0" bağlantısını ve R8 yönlendiricisinden, " S0/0 = R9 S0/1" bağlantısını kaldırıyorum. Bu düzenlemeden sonra sample2.net dosyası aşağıdaki gibi son halini alıyor;
###############################1-Dynamips-1############################# [localhost:7200] udp=10000 workingdir = /tmp/workingdy1 [[3725]] image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin ram = 128 #idlepc = ?? # We will talk about this, later. ghostios = true sparsemem = true idlemax = 100 disk0=128 [[Router R1]] model = 3725 console = 2001 autostart = false S0/0 = R2 S0/0 [[Router R2]] model = 3725 console = 2002 autostart = false #S0/0 = R1 S0/0 S0/1 = R3 S0/0 [[Router R3]] model = 3725 console = 2003 autostart = false #S0/0 = R2 S0/1 S0/1 = R7 S0/1 ###############################1-Dynamips-1############################# ###############################2-Dynamips-2############################# [localhost:7201] udp=11000 workingdir = /tmp/workingdy2 [[3725]] image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin ram = 128 #idlepc = ?? # We will talk about this, later. ghostios = true sparsemem = true idlemax = 100 disk0=128 [[Router R4]] model = 3725 console = 2004 autostart = false S0/0 = R5 S0/0 S0/1 = R8 S0/1 [[Router R5]] model = 3725 console = 2005 autostart = false #S0/0 = R4 S0/0 S0/1 = R6 S0/0 [[Router R6]] model = 3725 console = 2006 autostart = false # S0/0 = R5 0/1 ###############################2-Dynamips-2############################# ###############################3-Dynamips-3############################# [localhost:7202] udp=12000 workingdir = /tmp/workingdy3 [[3725]] image = /tmp/c3725-adventerprisek9-mz.124-15.T13.bin ram = 128 #idlepc = ?? # We will talk about this, later. ghostios = true sparsemem = true idlemax = 100 disk0=128 [[Router R7]] model = 3725 console = 2007 autostart = false S0/0 = R9 S0/0 #S0/1 = R3 S0/1 [[Router R8]] model = 3725 console = 2008 autostart = false S0/0 = R9 S0/1 #S0/1 = R4 S0/1 [[Router R9]] model = 3725 console = 2009 autostart = false # S0/0 = R7 0/0 # S0/1 = R8 0/0 ###############################3-Dynamips-3#############################
dynamips servislerini 7200, 7201 ve 7202 portları üzerinden zaten çalıştırmışdık. Ancak dynagen servisimiz başarısı olduğu için, bazı dynamips servislerinin de çökmüş olma olasılığı sözkonusu. Bu sebeple öncelikle dynamips servislerinin tamamının çalışmaya devam ettiğinden emin olmalıyız.
ismail@ismail-ThinkPad-T410:~$ ps -ef | grep dynamips ismail 3811 3756 1 10:15 pts/0 00:00:14 dynamips -H 7200 ismail 3829 3756 1 10:16 pts/0 00:00:14 dynamips -H 7201 ismail 4017 3756 0 10:27 pts/0 00:00:00 grep --color=auto dynamips
Aldığımız cevaba göre, bir dynamips servisi çökmüş ve diğer ikisi çalışmaya devam ediyor. Ben tüm dynamips servislerini öldürüp, hepsini baştan çalıştırmayı tercih ediyorum. Bunun için 3811 ve 3829 PID noları ile tek tek öldürmek de mümkün (kill -9 3811 gibi..) ancak pkill ile tümünü birden öldürmek daha pratik geliyor,
ismail@ismail-ThinkPad-T410:~$ pkill dynamips [1]- Terminated dynamips -H 7200 [2]+ Terminated dynamips -H 7201 ismail@ismail-ThinkPad-T410:~$
ve şimdi çalışan dynamips servisi kalmadı,
onları tekrar baştan başlatabilirim ve dynagen topolojisini yükleyebilirim;
ismail@ismail-ThinkPad-T410:~$ dynamips -H 7201 & ismail@ismail-ThinkPad-T410:~$ dynamips -H 7202 & ismail@ismail-ThinkPad-T410:~$ dynamips -H 7203 & ismail@ismail-ThinkPad-T410:~$ dynagen /tmp/sample2.net Reading configuration file... ... ... ... Dynagen management console for Dynamips and Pemuwrapper 0.11.0 Copyright (c) 2005-2007 Greg Anuzelli, contributions Pavel Skovajsa =>
Nihayetinde dynagen topologiyi yükledi. Yukarıda dynagen konsoluna düştüğümüzü görüyorsunuz. Burada "start R1" gibi yönlendirici isimlerine start komutları göndererek onları tek tek başlatabiliriz. Ya da "start /all" ile hepsini birden başlatmak da mümkün.
Bilgisayarımızda 9 adet sanal yönlendirici çalışıyor.. Sanırım şimdi performans için biraz optimizasyon yapmak gerekebilir. Bunun için "idlepc" parametresinin değerini tespit edip dynagen konfigürasyon dosyasında yerine yazmamız gerekiyor. idlepc değeri her yönlendirici için farklı değerler alabilir ve onu öğrenmek için ilgili yönlendiriciyi başlatıp, "idlepc get Rx" komutu ile ilgili yönlendirici için idlepc değerlerini listeyebiliriz.
=> start R1 => idlepc get R1 Please wait while gathering statistics... Please wait while gathering statistics... Done. Suggested idling PC: 0x60c08128 (count=22) 0x60c08164 (count=33) 0x60c08180 (count=35) 0x60c081c0 (count=66) 0x62b2823c (count=45) 0x60c08bf8 (count=23) 0x60c08c20 (count=20) 0x614b0e34 (count=38) 0x62b2b134 (count=20) 0x6026bca4 (count=30) Restart the emulator with "--idle-pc=0x60c08128" (for example) 1: 0x60c08128 [22] 2: 0x60c08164 [33] 3: 0x60c08180 [35] 4: 0x60c081c0 [66] 5: 0x62b2823c [45] 6: 0x60c08bf8 [23] 7: 0x60c08c20 [20] 8: 0x614b0e34 [38] 9: 0x62b2b134 [20] 10: 0x6026bca4 [30] Potentially better idlepc values marked with "*" Enter the number of the idlepc value to apply [1-10] or ENTER for no change: No changes made =>
Eğer listelenen idlepc değerlerinden herhangi birinin önünde "*" karakteri var ise, bu önerilen değerdir, kullanabiliriz. Ağer henüz bir değer önerilmemiş ise, "idlepc get Rx" komutu ile tekrar değerler üretilmesini isteyebiliriz. "*" 'li satır tespit ettiğimizde hedefimize ulaşmışız demektir.
Router la ilgili problemlerinizde size yardımcı olabilecek bi kaynak: router help
YanıtlaSil