GNS3
Sisukord
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 mudelid 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.
GNS3 graafilise liidese paigaldamine Debian GNU/Linux AMD64 platvormile
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 tarkvara kasutamiseks peavad olema operatsioonisüsteemi paigaldatud paketid xterm, xfonts-base, 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
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 menüüst
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 gigabit pordi pöörduda, nt selline
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 operatsioonisüsteemi failisüsteemi
- 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 ja ühendada kokku 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
config# 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
Tehtud seadistuse eemaldamiseks tuleb samas kohas sisestada sama käsk kusjuures alugusesse kirjutada 'no', nt
config# no ip route 192.168.12.0 255.255.255.0 10.10.0.192
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
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
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 g2/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 506 (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/4 (config-if)# no shutdown (config-if)# switchport trunk encapsulation dot1q (config-if)# switchport trunk allowed vlan 505,506,7 (config-if)# switchport mode trunk (config-if)# ^z # write
Kusjuures pordi nime võib kirjutada ka lühemalt, nt g0/4. Tehtud seadistuse eemaldamiseks tuleb samas kohas sisestada sama käsk, aga alugusesse kirjutada 'no', nt
config-if# no switchport trunk allowed vlan 505,506,7
Switchi käest saab küsida, millistesse vlannidesse on millised pordid seadistatud, tulemus esitatakse nn 'mode access' portide kohta
#show vlan-switch VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Fa0/2, Fa0/3, Fa0/6, Fa0/8 Fa0/11, Fa0/12, Fa0/14 7 VLAN0007 active Fa0/1, Fa0/10 505 VLAN0505 active Fa0/5, Fa0/13 506 VLAN0506 active Fa0/0, Fa0/9 ... 1002 fddi-default active 1003 token-ring-default active 1004 fddinet-default active 1005 trnet-default active VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------ 1 enet 100001 1500 - - - - - 1002 1003 7 enet 100007 1500 - - - - - 0 0 505 enet 100505 1500 - - - - - 0 0 506 enet 100506 1500 - - - - - 0 0 ... 1002 fddi 101002 1500 - - - - - 1 1003 1003 tr 101003 1500 1005 0 - - srb 1 1002 1004 fdnet 101004 1500 - - 1 ibm - 0 0 1005 trnet 101005 1500 - - 1 ibm - 0 0
kust on näha, et
- vlan 7 - pordid f0/1 ja f0/10
- vlan 505 - pordid f0/5 ja f0/13
- vlan 506 - pordid f0/0 ja f0/9
- vlan 1 - vaikimisi asuvad pordid esimeses vlannis
Väljundi töötlemiseks sobib kasutada nt inc käsku
# show vlan-switch | inc VLAN0505 VLAN0505 active Fa0/5, Fa0/13
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
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
VLAN kasutamine
VMware ja GNS3 koos kasutamisel saab kasutada ka nn trunk ehk tagged seadmeid, st et ühelt poolt VMware arvuti poolel on nt OpenBSD peale moodustatud vlan513 võrguseade ja teiselt poolt on NM-16ESW switchi port seadistatud mode trunk režiimi.
VLAN andmebaasi moodustamiseks tuleb öelda
# vlan database vlan# vlan 507 vlan# vlan 513 .. vlan# apply vlan# exit #
sisu vaatamiseks
vlan# show
Selleks, et VLAN andmebaas säiliks switchi stop ja starti sobib sooritada järgnevus
# conf t config# vtp file nvram:vlan.dat config# do dir nvram: config# do wr mem config# ^Z # write
Märkused
- Kui ruuter on seadistatud, on otstarbekas lülitada sisse nn idlepci, mis vähendab virtuaalse keskkonna koormust arvutile.