Dynagen Dynamips & Red Hat

Başlatan plymouth, 14 Mayıs 2010 - 11:48:11

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

plymouth

       Merhaba...
   Red Hat Enterprise Linux 5.4 üzerinde Dynagen - Dynamips kurup Cisco cihazların emülasyonunu yapmak isteyenler için bir "NASIL?" belgesi oluşturmak istedim. Aslında başıma gelmişken herkesin faydasına olacak şekilde bir belgeye dönüştürmenin iyi olacağını düşündüm.

       MIPS tabali işlemciler kullanan Cisco ürünlerinin bilgisayarınızda emüle etmek için geliştirlimiş bir yazılımdır dynamips. Dynagen ise konfigürasyon yapmamıza olnak sağlayan bir python scriptidir. 

       Redhat kurulumu ile sisteme eklenen default depo olan "rhel-debuginfo.repo" içerisinde ne yazıkki bizim işimize yarayan paketler yok. Bu sebeple www.dagwieers.com sitesinden  "rpmforge.repo" deposunu sisteme dahil edip gerekli olan dynagen ve dynamips paketlerini;

yum install dynagen dynamips

komutu ile kurmamız gerekli. Bu paketler ve gerekli bağımlılıkları kurulduktan sonra sisteminiz de /usr/bin dizini içine dynagen ve dynamips adları ilave edilecekler.
Ancak kurduğumuz paketlerden dynagen gerekli konfigurasyonu düzgün bir şekilde yapsak dahi daha üst versiyonu olan "0.2.8-RC1" sürümünü istiyor. Dolayısıyla bizim yeni sürümünü indirmemiz daha akıllıca olur. Uygulamanın çalışması için herhangi bir klasor seçmek yeterli. Benim tercihim /root/dynagen. Tabi root oturumu olduğu için.

mkdir /root/dynagen
cd dynagen


komutları ile gerekli hazırlıklarımızı yapalım.

wget http://www.ipflow.utc.fr/dynamips/dynamips-0.2.8-RC2-x86.bin

komutuyla 0.2.8-RC2 sürümünü indiriyoruz. Bu dosya çalıştırılabilir bir (ELF) dosya olduğu için herhangi bir kurulum yapmamıza gerek yok. Ancak yeni dosyamızın diğerinin yerini alması ve çalıştırınca problem oluşmaması için şu işlemleri de yapmamız gerekli.

chmod 777 /root/dynagen/dynamips-0.2.8-RC2-x86.bin
mv /usr/bin/dynamips /usr/bin/dynamips_old
ln -s /root/dynagen/dynamips-0.2.8-RC2-x86.bin /usr/bin/dynamips


Artık dynamipsin çalışması için terminalde;

dynamips -H 7200 

komutunu verince programımızın çalışıp şöyle bir çıktı üretmesi gerekli.

Cisco Router Simulation Platform (version 0.2.8-RC2-x86)
Copyright (c) 2005-2007 Christophe Fillot.
Build date: Oct 14 2007 10:41:26

Hypervisor TCP control server started (port 7200).


        Sırada dynamips emülatör sistemimizin konfigurasyununu yapması için dynagen'in yapılandırılmasında. Dynagen'in çalışması için bir kaç düzenleme yapmamız gerekli. İlk olarak IOS ismi verilen ve router, switch gibi ağ cihazlarının işletim sistemi olan yazılımı "/root/dynagen/images/" klasörünü oluşturup içine kopyalayalım. Bu yazılıma sahip değilseniz bunu edinmek için biraz araştırma yapmanız gerekli. Ancak CCIE sertifikasına sahip olanların bu IOS'ları www.cisco.com dan indirebildiğini söylemeliyim. Siz de benim yaptığım gibi torrent ile bulabilirsiniz. Kullandığımız dosya C3640 model router'a ait olan IOS'dur. Hazır dizin oluşturmaya başlamışken dynagen dizini altına sırasıyla "/work" ve "/sample" klasörlerini
de oluşturalım. Bu klasörlerin ne işe yaradığına birazdan değineceğim.

   Herhangi bir text editorü ile dynagen konfigurasyonumuzu yapmaya başlayalım. Konfigurasyon dosyamızı "root/dynagen/sample" dizini içine kaydetmemiz yeterli. Birden fazla konfigurasyon yapacaksanız herbirini farklı bir alt dizinde saklamak daha iyi olacaktır. Konfigurasyon dosyalarının uzantısının .net olmasının herhangi bir zorlayıcı hükmü yok. Yapılandırmamız birbirine serial interface'ler ile üçgen dizilimde bağlı 3 adet C3640 routerin konfigurasyonudur.

vi /root/dynagen/sample/first.net

#*************************************************************************************************
#*************************************************************************************************
# Simple lab
autostart = false   # Dynagen açılınca  Router'ların hemen açılmaması için bu satıra false yazılmıştır.
Debug = 2                          # Sorunlarla ilgili debug seviyesi belirleyebilirsinz "0" (default) kapalı, 1 ile 7 arası değer alır.
model = 3640           #Emülasyonunu yapacağımız cihazın modeli.

    [red:7200]           # Dynamips çalıştığı makinanın [host-adı ya da IP:port numarası]

    workingdir = /root/dynagen/work    #çalışma dizini, oluşturduğumuz "work" dizinini veya boş bir dizin oluşturup bunu kullanmanız daha iyi olur.

    [[3640]]            # Yapılandırma dosyası birkaç parçadan oluşuyor. Buradan  [[ROUTER R1]] satırına kadar ki  kısımda routera has bazı genel ayarları yapmak mümkün.
   
    image = /root/dynagen/images/123-14.T7.extracted.bin # IOS' un tam yolu

    chasis = 3640 #Router için şase tipi
    ram = 256          #Router( herbiri ) için max. Ram bellek miktarı (bu örnekte 3 x 256 M = 768 Mbyte)
    disk0 = 64          # PCMCIA ATA disk 0
    disk1 = 64          # PCMCIA ATA disk 1
    confreg = 0x2102 # Configurasyon Register'i için ayarlama yapabilirsiniz.


    [[ROUTER R1]]
    model = 3640    #Router 1 için model
    console = 2001           # Telnet bağlantısı yaparken bağlanacağımız port numarası.  Her üç router için farklı bir numara belirtin.
        s0/0 = R2 s0/1   # R1' den R2 'ye fiziksel bağlantı tanımlaması
        s0/1 = R3 s0/0   #R1'den R3'e fiziksel bağlantı tanımlaması
        e1/0 = SW1 1          #R1'in FastEthernet 1/0 portu için SWITCH tanımı
        slot0 = NM-4T          #Slotlara kart takmak da mümkün. Burada slot0' a NM-4T isimli Cisco modülü takılmış
        slot1 = NM-4E          #Burada daslot1 için NM-4E modülü taıklmış
    cnfg = /root/dynagen/initial.configs/R1.initial.config.txt #R1 için genel amaçlı (initialize, secret pass, hostname...) #tanımlar bulunan yapılandırma dosyası


    [[ROUTER R2]]

    model = 3640
    console = 2002
        slot0 = NM-4T
        slot1 = NM-4E
        s0/0 = R3 s0/1
#       s0/1 = R1 s0/0
        e1/1 = SW2 1
    cnfg = /root/dynagen/initial.configs/R2.initial.config.txt


   [[ROUTER R3]]
    model = 3640
    console = 2003
        slot0 = NM-4T
        slot1 = NM-4E
#       s0/0 = R1 s0/1
#       s0/1 = R2 s0/0
        e1/1 = SW3 1
    cnfg = /root/dynagen/initial.configs/R3.initial.config.txt


    [[ETHSW SW1]]
        1 = access 10

   [[ETHSW SW2]]
        1 = access 60

    [[ETHSW SW3]]
        1 = access 40


   Dosya ve  yapılandırma ile ilgili bazı noktaları açıklayalım.  [[ROUTER]] satırlarını incelediğinizde  aşagıdaki gibi
#       s0/0 = R1 s0/1   
#       s0/1 = R2 s0/0
satırların yorum mahiyetinde olduğunu farketmişsinizdir. Konfigürasyonu  windows tabanlı sistemlerde kullanmak isterseniz bu satırlardaki "#" karakterlerini silmeniz gerekir.  Ancak Red Hat üzerinde çalışırken "#" karakterlerini koymazsanız dynagen sizi "Bu tanımları zaten daha önca yaptınız" diyerek uyarıyor. Aşagıdaki şekle bakalım.



ROUTER R1 kısmında "s0/0 = R2 s0/0" diye bir fiziksel bağlantı tanımladığınızda ROUTER R2 kısmında "s0/0 = R1 s0/0"
şeklinde bir tanım yapmanıza gerek yok. (Yukarıdaki konfigürasyon dosyasında seri bağlantılar şekildeki ile aynı yapılandırılmamıştır.)
   Başka bir nokta ise [[ETHSW SW1]] tanımlamalarında  yapılan tanımların "vlan" tanımı olduğudur. Mesela
"1 = access 10" 1 numaralı portun vlan 10 'a bağlı olduğunu söylüyor. 

Not: Yorum satırlarını deyimlerin anlamlarını kavramak konusunda yardımı olur diye koydum kaldırabilirsiniz.
   
   Şimdi de  bu yapılandırma içinde "cnfg" deyimiyle tanımladığımız dosyalara değinelim.

#*********************************************************************************************
hostname R1

!

enable password cisco

!

ip subnet-zero

no ip domain-lookup

!

ip classless



!

line con 0

exec-timeout 0 0

logging synchronous



line aux 0

exec-timeout 0 0


line vty 0 4



   Bu dosyadaki satırlar router çalıştığında daha kolay kullanabilmeniz için bazı çevresel değişkenleri tanımlıyor. Sizi her seferinde  bu tanımlamaları yapma derdinden kurtarıyor. Farkettiyseniz running-config dosyasına  benziyor.  Bu dosyayının her router için fazla bir emek sarfetmeden (hostname tanımını ile) kolayca adapte edilebileceğini belirtmeliyim.  Daha özel tanımlar ile IP atama gibi bazı tanımlarında yapılabilir.  Dosyanın tam yolunu "cnfg" deyimi ile cihaz tanımlamalarında belirtmelisiniz. Cisco cihazların konfigurasyonu hakkında bilinmesi gereken temel komutlarla hazırlandığı için bu komutların anlamlarını yazmayacağım.
   Birden çok yapılandırma hazırlayıp bu yapılandırma dosyaları içinde "cnfg" tanımı ile farklı hazırlık configurasyonları ilave edebilirsiniz.
   
   Yapılandırmanız tamamlandığında;

dynagen dynagen/sample1/simple.net

komutyla dynageni çalıştırabilirsiniz. Ardından da telnet bağlantısı yapabilmek için routerları çalıştırmanız gerekli
   
   Red Hat üzerinde Dynagen konusunda daha fazla bilgi almak isterseniz,
/usr/share/doc/dynagen-0.10.1/sample_labs/all_config_options.txt dosyasını incelemenizi öneririm.
   
   Ubuntu gibi paket kurulumu konusunda sorun yaşamayacağınız dağıtımlar ile daha az emek sarfederek aynı programı kullanabilirsiniz. (Ancak bu konfigurasyon ve dizin yapısını ona da kurmanız gerekecektir.) Hatta GNS3 programı ile grafik arabirim ile kullanmanız da mümkün.  Red Hat üzerine kurarken tecrübe ettiğim sıkıntılar ışığında hazırladığım bu `belge`ın her dağıtımda fikir verebilecek bir yapıda olması için ileride

   İşe yaraması dileklerimle...
[/img]
This life is not the real thing.
It is not even in Beta.
If it was, then OpenBSD would already have a man page for it

garafatma

Bu güzel anlatım için teşekkür ederiz. Bence sabitlenmesi gereken bir konu ve hemen gerekeni yapıyorum :)
Bira, Tanrı'nın bizi sevdiğinin ve eğlenmemizi istediğinin kanıtıdır.

>-- Askıdaki Çeviri --< Ubuntu Türkçe Çevirilerine Sizde Destek Olun
Elveda metal müziğin tanrısı... \m/ Ronnie James DIO: 1942 - 2010

heartsmagic

Eline sağlık @plymouth, böyle uç noktdaki bir konu için gayet güzel bir başlık oldu.
Ubuntu adına ufak bir eklemede bulunalım. İlgili paketler depolarda mevcut.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

plymouth

Daha nice güzel belgelere...
Çok teşekkür ederim...
This life is not the real thing.
It is not even in Beta.
If it was, then OpenBSD would already have a man page for it

coco

tam aradığım şey elinize sağlık..

urqun

red hat dağıtılıyor mu ki ? ben dağıtılmıyor diye biliyorum
#mineral #rock #deposit #petroleum #oil #radioactive #gis #earth #sources #rawmaterials #maps #field #anticlyne #dome #basin #synclyne #structure #Geology!

heartsmagic

Dağıtılması gerekmiyor, isteyen satın alıp kullanabilir elbette. Kurumsal olarak kullanıldığını da düşünürsek etrafta anlatımların olması da normal.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

plymouth

Alıntı yapılan: urqun - 27 Temmuz 2013 - 03:26:25
red hat dağıtılıyor mu ki ? ben dağıtılmıyor diye biliyorum

Yeri olmadığı için uzun bir açıklama yapmayacağım.
rhn.redhat.com'a üye olursanız size Red Hat 'ı indirme imkanı veriyor. 
This life is not the real thing.
It is not even in Beta.
If it was, then OpenBSD would already have a man page for it