Config replace in GNS3

I've been using the "config replace" functionalty lately in GNS3 (0.8.6) and it's worked quite well for me so I'd thought I'd share my experience getting it working.  

Previously I used to just create a new GNS3 project for each major section and copy the configs (after changing the file exention to .cfg) into the "configs" directory for the project.  With the way the v5 Workbook is setup that process can get very tedious since each section was designed to start with a specific config.  I like the v5 format a lot better because it's easy to drop in and perform any task quickly, so I figured it'd be worth the time investment to get this working.

To get this to work, I setup a TCL script that I pasted in each of the routers so they would download their specfic config to the disk0: from a TFTP server (I extracted the initial configs zip file into the root of the TFTP server).

Each router will use the same config with TWO EXCEPTIONS - 1) use a unique IP for the purpose of simultanous TFTP transfers, and 2) you need change the "RX.txt" in the copy tftp command at the bottom of the script for each router.  

 

I'm running 15.2(4)M6 IOS.

 

The TCL script (and some prescript commands) looks like this:

config t

file prompt quiet

int f1/1

!Use a unique IP for each router if you want to be able to run more than one router at the same time

ip address 192.168.100.102 255.255.255.0 

no shut

end

format disk0:

!

!

!

!

tclsh 

foreach X {

authenticating.bgp.peerings

basic.bgp.routing

basic.bgp.routing.with.aggregation

basic.eigrp.routing

basic.ip.addressing

basic.layer.2.switching

basic.ospf.routing

basic.rip.routing

bgp.confederation

bgp.disable.connected.check

bgp.full

bgp.next.hop.processing.manual.modification

bgp.next.hop.processing.next.hop.self

bgp.over.gre

bgp.redistribute.internal

bgp.remove.private.as

bgp.update.source

catalyst.multicast

dmvpn

ebgp.multihop

ebgp.with.r9.to.r10

eigrpv6.basic

eigrpv6.initial

ibgp.route.reflection

ibgp.synchronization

initial.bgp

initial.bgp.base

initial.dhcp.authorized.arp

initial.dhcp.information.option

initial.eigrp

initial.multicast

initial.ospf

initial.rip

inter.domain.multicast

inter.domain.multicast.msdp

ipsec.vpn

ipv6.global.initial

ipv6.initial

ipv6.multicast.initial

ipv6.nbma.initial

ipv6.redistribution.initial

lan.switching.initial.spanning.tree

lan.switching.initial.vtp

large.scale.ibgp.route.reflection

mpls.bgp.soo.attribute

mpls.eigrp.site.of.origin

mpls.internet.access

mpls.label.filtering

mpls.ldp

mpls.mp.bgp.prefix.filtering

mpls.mp.bgp.vpnv4

mpls.ospf.sham.link

mpls.pe.ce.routing.with.bgp

mpls.pe.ce.routing.with.eigrp

mpls.pe.ce.routing.with.ospf

mpls.pe.ce.routing.with.rip

mpls.vpn.performance.tuning

mpls.vrf.lite

ospfv3.basic

ospfv3.initial

ripng.initial } { copy tftp://192.168.100.253/$X/R2.txt disk0:$X.txt

}

tclquit

!

!

 

Replace the config with this syntax:

config replace disk0:authenticating.bgp.peerings.txt force

(The command is identical for all routers so you can send this command to all the routers simulatiously.)

 

A few of caveats though:

-I noticed intermittent packet loss when using the gig interfaces, so all the configs have been updated to FastEthernet

-In certain cases, I've found that sometimes the interface IPs aren't copied over during the config replace.  This seems to happen most often when BGP has been enabled on the old config.  The workaround is simple, I do a config replace with the disk0:blank.txt config, and then do a config replace with the actual config I want to use.

-Some of the recently released configs (IPv6) have a different encoding than the rest, so the router rejects these configs.  There's a number of ways to fix this, but for now I've been doing it manually.  I've posted feedback in the workbook so see if they could update the configs so they have encoding that is compatable with this.

 

What I found really useful with this method is now I can just copy the disk0: files that are stored in the project's working directory, and move them to another project and all the configs will be preloaded on there.

 

I didn't go into too much detail here, so if people are interested I can dive a little deeper.  Also I can share my GNS3 configuration files and all the disk0's for each router if anyone is interested (and it's OK to post :) ).

 

I hope this helps!

-Jason

Sign In or Register to comment.