GNS3

Allikas: Kuutõrvaja
Redaktsioon seisuga 8. oktoober 2009, kell 00:11 kasutajalt Imre (arutelu | kaastöö) (Sissejuhatus)

Sissejuhatus

GNS3 (Graphical Network Simulator, ingl. k. graafiline võrgusimulaator) http://www.gns3.net/ tarkvara võimaldab PC arvutil, nt kasutades Debian GNU/Linux operatsioonisüsteemi, tekitada virtuaalsetest võrguseadmetest koosneva keskkonna ning lisaks ühendada selle arvuti füüsilise võrguseadme kaudu ümbritseva füüsilise võrguga.

GNS3 kasutamine eeldab, et kasutajal on olemas Cisco IOS (Internetwork Operating System) tarkvara mõnele GNS3 poolt toetatud seadmele, nt mudel 7200 või 3640. Lähemalt saab lugeda GNS3 tarkvara kasutustingimuste kohta aadressilt http://www.gns3.net/, samas asub ka kasutamist kirjeldav juhend.

Tarkvara paigaldamine

Iseenesest on GNS3 Python keeles ettevalmistatud graafiline kasutajaliides võrguseadmete simulatsiooni mootorile Dynamips. 2009 aasta suvel sisaldab Debian Lenny i386 ahritektuuri paketihaldus gns3 paketti, mis vastab versioonile 0.5 ning dynamips ja dynagen pakette. Lenny AMD64 arhitektuuril vastavad paketid puuduvab, kuid järgnevas kirjeldame kuidas tarkvara kodulehelt kopeeritud tarkvara kasutada Lennyga AMD64 platvormil.

GNS3 graafilise liidese paigaldamine Debian GNU/Linux AMD64 platvormile

GNS3 tarkvara kasutamiseks peavad olema operatsioonisüsteemi paigaldatud paketid xterm, telnet ja python-qt4

 # apt-get install xterm xfonts-base telnet python-qt4

GNS3 tarkvara saab kopeerida aadressilt http://www.gns3.net/download ning tuleb seejärel lahti pakkida

 # mkdir /usr/local/gns3 /usr/local/gns3/tommised
 # cd /tmp
 # tar zxf GNS3-0.6.1-src.tar.gz
 # mv GNS3-0.6.1-src/* /usr/local/gns3
 # chown -R gns3:gns3 /usr/local/gns3

Dynamips ja Cisco IOS paigaldamine

Lisaks on tarvis dynamips tarkvara, mille saab kopeerida aadressilt http://www.ipflow.utc.fr/blog/ ja see sobib paigutada nt failiks

 /usr/local/gns3/tommised/dynamips-0.2.8-RC2-amd64.bin

ja IOS tõmmised, nt

 /usr/local/gns3/tommised/c7200.bin
 /usr/local/gns3/tommised/c3660.bin

ning käivitada

 $ /usr/local/gns3/gns3

Gns3-2.gif

Esimesel käivitamisel avaneb spetsiaalne dialoog, kus tuleb näidata

  • Dynamips asukoht failisüsteemis
  • Cisco IOS tõmmiste asukoht failisüsteemis

Kasutaja valikud salvetatakse faili

 ~/.gns3/gns3.ini

Edaspidisel GNS3 kasutamisel saab IOS ja Dynamips valikud muuta valides menüüst

 Edit -> ISO images and hypervisors
 Edit -> Preferences

GNS3 kasutamine

Tarkvara kasutamine ja sündmuste kontrollimine toimub kahel viisil

  • GNS3 graafilise kasutajaliidese abil
  • Cisco seadmesse nö telnetiga sisse logides tema IOS promptist ehk virtuaalse seadme konsoolilt, mis avaneb xterm vms aknas; terminali programm on seadistatav valides Edit -> Preferences -> General -> Terminal command

Tavaliselt toimetatakse sellises järjekorras

  • lisatakse vajalikud seadmed tööpinnale
  • kontrollitakse üle seadmete omadused, nt et ruuteril on vajalikud pordid olemas
  • ühendatakse seadmed linkidega
  • käivitatakse seadmed (GNS3 sisemised switchid ongi ainult töötavas asendis, ruuterid tuleb käivitada)
  • käivitatud ruuteri peal hüpikmenüüst valides Console avatakse ruuteri konsool, seal tuleb vastata küsimusele 'no'
 Would you like to enter the initial configuration dialog? [yes/no]: no
  • ruuteri loogiline seadistamine toimub ruuteri konsoolilt (nt võrguseadmetele ip aadresside omistamine jms)

Kui töölaud on moodustatud, siis sobib see salvestada valides menüüst

 File -> Save

Kahe virtuaalse Cisco 7200 ruuteri ühendamine

Olgu eesmärgiks koostada kahest ruuterist lülitus, kus ruuterid saavad üksteise poole üle kummagi esimese Gigabit pordi pöörduda, nt selline

Gns3-7.gif

kus on kujutatud

  • vasakul seadmete paneel
  • tööpinnal kaks ruuterit, vasak ja parem
  • paremal kasutuse olevate seadmete paneel
  • all keskel GNS3 programmi Console käskude andmiseks, nt ruuterite seadistuste salvestamiseks
  • lisaks eraldi akendena kummalegi ruuterile vastav terminal, kusjuures vasakus aknas on näha, et ping teise ruuterisse õnnestub

Esitatud olukord on moodustatud selliselt

  • hiirega on veetud tööpinnale kaks ruuterit
  • ruuteril on hüpikmenüüst valitud Change the hostname
  • ruuteril on hüpikmenüüst valitud Configure ning ruuteri nimel
 Slots -> slot1 -> PA-GE
  • valitud lingi lisamise nupp (RJ-45 pistiku kujuline ikoon) ja rippmenüüst Manual
  • ruuterite peal klõpsides valida pordid mille vahel ühendus tekitatakse
  • lülitada ruuterid käima nö rohelise Play nupuga
  • avada ruuterite konsoolid musta Terminal nupuga
  • vastata terminalides küsimusele eitavalt
 Would you like to enter the initial configuration dialog? [yes/no]: no

Vasakul ruuteril on seadistatud üks gigabit port ip aadressiga 172.18.2.162/24 selliselt

ruuter> ena
ruuter# conf t
Enter configuration commands, one per line.  End with CNTL/Z.
ruuter(config)# int Gi2/0
ruuter(config-if)# ip address 172.18.2.162 255.255.255.0
ruuter(config-if)# no shutdown
ruuter(config-if)# ^Z
ruuter#

Paremal ruuteril on analoogiliselt seadistatud üks gigabit port ip aadressiga 172.18.2.163/24. Tulemusena peab saama ühest ruuterist teise poole pöörduda, nt pingida nii nagu ülal pildid on kujutatud.

GNS3 töötab efektiivsemalt kui lülitada sisse nn Idle PC, selleks tuleb peale ruuterite seadistamist valida suvalisel ruuteril hüpikmenüüst Idle PC ja vastata edasi küsimustele jaatavalt.

Ruuteritesse tehtud seadistuste salvestamiseks eesmärgiga seda seadistuse seisu järgmisel GNS3 kasutuskorral kasutada peab ruuter käima ja ruuteris olema write käsu abil seadistus olema salvestatud ning seejärel tuleb GNS3 kasutajaliidese konsoolil öelda

 => export ruuterinimi /root/carp/seadistused

ning tulemusena salevastatakse arvuti failisüsteemi seadistusfail.

Salvestatud seadistusfaili kasutamiseks sobib öelda

 => import /root/carp/seadistused

Ruutingu seadistamiseks sobib öelda nt

 ruuter# ip route 192.168.12.0 255.255.255.0 10.10.0.192

kus

  • 192.168.12.0 255.255.255.0 - ruuditav võrk
  • 10.10.0.192 - lüüs ruuditava võrgu juurde

Virtuaalse Cisco 7200 ruuteri ühendamine füüsilise võrguga

Virtuaalse keskkonna saab ühendada kokku füüsilise keskkonnaga selle arvuti mõne füüsilise võrgukaardi abil, milles GNS3 süsteem töötab. Tulemusena saab eemalt füüsiliselt võrgust selle füüsilise võrguliidese kaudu pöörduda virtuaalse keskkonna poole ja vastupidi. Kuigi virtuaalses keskkonnas ei ole tegu iseenesest arvutiga, nimetatakse järgnevas sellist ühendust tekitavat objekti arvutiks.

GNS3 keskkonnas on vajalikud

  • ruuter
  • ethernet switch
  • arvuti (füüsilise arvuti võrguseadet esindav objekt, mis on nn Cloud tüüpi objekt)

Arvuti objekti moodustamine

Valida programmi menüüst Edit -> Symbol manager ja kirjeldada objekt 'computer' tüübiga Cloud, selliselt

Gns3-3.gif

Skeemi koostamine

Hiirega tuleb vasakult keskele tööpinnale vedada ruuter, switch ja arvuti ning seejärel nad seadistada:

  • ruuterisse tuleb lisada Slot2 sisse GE võrguseade valides ruuteril Configure -> R0 -> Slots
  • arvuti võrgukaart tuleb seadistada valides Configure -> C2 NIO Ethernet -> Linux Ethernet NIO (require root access) -> nimekirjast sobiv võrgukaart ning Add -> Apply -> OK
  • valida nuppude reast Add link -> Manual ja ühendada seadmete sobivad pordid omavahel

Tulemus võiks olla selline, seadmete nimede järel olevad numbrid esinevad sõltuvalt sellest kui palju on skeemiga nö töötatud, st elemente asetatud ja eemaldatud tulemuse saavutamisel

Gns3-4.gif

Ruuteri seadistamine

Eeldusel, et ruuteris kasutatakse Slot2 GE liidest sobib see port seadistada selliselt

 ruuter> ena
 ruuter# conf t
 Enter configuration commands, one per line.  End with CNTL/Z.
 ruuter(config)# int Gi2/0
 ruuter(config-if)# ip address 172.18.2.162 255.255.255.0
 ruuter(config-if)# no shutdown
 ruuter(config-if)# ^Z
 ruuter#

tulemus on selline

 ruuter# sh ip int br
 Interface                  IP-Address      OK? Method Status                Protocol
 ...
 GigabitEthernet2/0         172.18.2.161    YES manual up                    up

Tulemuse kontroll

Kui arvuti füüsiline eth2 liides on võrgus ja seal on seadistatud mõnele arvutile ip aadress 172.18.2.254, siis peaksid nad saama üksteist nt pingida.

Virtuaalse Cisco NM-16ESW switchi kasutamine

Üldiselt GNS3 toetab paremini ruuterite kui switchide emuleerimist. Lisaks nö generic GNS3 endas sisalduvale switchile, mis võimaldab seadistada vlan'isid saab kasutada nt 3640 IOS pealt moodustatud ruuteris NM-16ESW seadet. Selleks tuleb ta lisada Slot'i ning seejärel ilmuvad kasutajaliidesesse nt f0/0 ... f0/15 nimelised seadmed. See switch on küll 10/100 Mbit/s portidega, teadaolevalt gigabit kiirusega nn Cisco switchi ei ole GNS3 abil võimalik kasutada.

Switchi portide nimekirja saab küsida

 # show int status

Switchi poolt õpitud mac aadresside nimekirja saab küsida

 # show mac-address-table

Switchi pordi seadistamiseks nö tavalisse ehk mode access režiimi sobib öelda

# conf t
(config)# interface GigabitEthernet0/9
(config-if)# no shutdown
(config-if)# switchport access vlan 5
(config-if)# switchport mode access
(config-if)# ^z
# write

Switchi pordi seadistamiseks nö tagitud ehk mode trunk režiimi sobib öelda

# conf t
(config)# interface GigabitEthernet0/10
(config-if)# no shutdown
(config-if)# switchport trunk encapsulation dot1q
(config-if)# switchport trunk allowed vlan 5,6,7
(config-if)# switchport mode trunk
(config-if)# ^z
# write

Kusjuures pordi nime võib kirjutada ka lühemalt, nt g0/10.

GNS3 ja VMware kasutamine

GNS3 ja VMware kombineerimine võimaldab tekitada suhteliselt keerulise topoloogiaga ja realistlikult käituvaid Cisco võrguseadmeid ja arvuteid sisaldavaid lülitusi. Süsteem võiks toimida nt selliselt

  • GNS3 käivitatakse VMware hostis
  • VMwares on seadistatud mitmed host-only võrgud

GNS3 vaatest on VMware arvutid (sh nt OpenBSD tulemüürid) on ühendatud GNS3 seadmetega nii nagu eelmises punktis kirjeldatud, kusjuures võrguseadmetena kasutatakse VMware hostonly seadmetele vastavaid vmnet seadmeid.

Alltoodud lülituses on püütud kahe koormusjaotus-režiimis töötava OpenBSD tulemüüri ümber ühendatud natuke Cisco võrku

Gns3-6.gif

kus

  • swklienid - klientarvutite switch
  • swtmext - tulemüüri väliste seadmete switch
  • swtmint - tulemüüri sisemiste seadmete switch
  • ruuter - üks Cisco 7200 ruuter
  • arvutid - kliendid, serverid, tulemüürid

BGP multihoming seadistamine

TODO

Märkused

  • Kui ruuter on seadistatud, on otstarbekas lülitada sisse nn idlepci, mis vähendab virtuaalse keskkonna koormust arvutile.

Kasulikud lisamaterjalid