Welcome

First of all, may I welcome you to my site. My name is Chris and I'm from the UK and work as a Systems Engineer for Cisco. This blog was initially created to post up my subnetting technique but has now got more stuff to do with attaining Cisco certifications. Either way I really hope that the content is sufficent for your needs and I look forward to hearing your feedback. If you find that the content really helps you please feel free to donate using the PayPal link on the right.

To view the index of all my articles please click here.

Vyatta on VM Workstation

Here's the deal. How do you fill your work time looking busy but having a bit of fun? Simple. Look out for emerging technologies and tell your department you want to "innovate" with Product X. So here I am, looking at Vyatta. Bold claims from these guys but is it as good as they say? Well I'm not here to run the mathematical experiments. What I want to know is "Is it easy to use?" and "Can I use it in one of our projects?". It's early days to be answering the latter but I may be able to answer the former over a series of posts.

What I want to do is set up a dummy network in VM Workstation to simulate a square with a Vyatta router at each corner like so:

Vyatta Instance 1 --> Vyatta Instance 2
Vyatta Instance 1 --> Vyatta Instance 3
Vyatta Instance 2 --> Vyatta Instance 4
Vyatta Instance 3 --> Vyatta Instance 4

I really am a noob to VM Workstation but after a little playing around I got it to work.

Taking the above connections I used the Custom Network Connections for each (I believe VMNet0 and VMNet1 are reserved):

Vyatta Instance 1 --> Vyatta Instance 2 = VMNet2
Vyatta Instance 1 --> Vyatta Instance 3 = VMNet3
Vyatta Instance 2 --> Vyatta Instance 4 = VMNet4
Vyatta Instance 3 --> Vyatta Instance 4 = VMNet5

By default each virtual machine in VM Workstation has one Network Connection set up (usually NAT). Modify this to a custom connection and from the drop-down list choose the appropriate VMNet. To add a new Network Adapter simply click Add in the Virtual Machine Settings and choose Network Adapter then select Custom and choose the desired VMNet connection. For my example above I modified the first Network Adapter on Vyatta Instance 1 to VMNet2 and created a new Network Adapter in VMNet3. I done similar on the other three instances and lo-and-behold everything was connected.

Here's my basic settings:

Vyatta Instance 1:

configure
set system host-name Vyatta-Instance-1
set interfaces ethernet eth0 description Link_To_Vyatta_Instance_2
set interfaces ethernet eth0 address 192.168.2.1/24
set interfaces ethernet eth1 description Link_To_Vyatta_Instance_3
set interfaces ethernet eth1 address 192.168.3.1/24
commit
save

Vyatta Instance 2:

configure
set system host-name Vyatta-Instance-2
set interfaces ethernet eth0 description Link_To_Vyatta_Instance_1
set interfaces ethernet eth0 address 192.168.2.2/24
set interfaces ethernet eth1 description Link_To_Vyatta_Instance_4
set interfaces ethernet eth1 address 192.168.4.1/24
commit

Vyatta Instance 3:

configure
set system host-name Vyatta-Instance-3
set interfaces ethernet eth0 description Link_To_Vyatta_Instance_1
set interfaces ethernet eth0 address 192.168.3.2/24
set interfaces ethernet eth1 description Link_To_Vyatta_Instance_4
set interfaces ethernet eth1 address 192.168.5.1/24
commit

Vyatta Instance 4:

configure
set system host-name Vyatta-Instance-4
set interfaces ethernet eth0 description Link_To_Vyatta_Instance_2
set interfaces ethernet eth0 address 192.168.4.2/24
set interfaces ethernet eth1 description Link_To_Vyatta_Instance_3
set interfaces ethernet eth1 address 192.168.5.2/24
commit

This is probably more for my reference but to undo anything use the "delete" command. For example if I accidentally put an IP address under eth0 for example I could use the following;

delete interfaces ethernet eth0 address 192.168.3.1/24

Now I've decided to run RIP just to see how easy it is.

Vyatta Instance 1

configure
set protocols rip network 192.168.2.0/24
set protocols rip network 192.168.3.0/24
commit
save

Vyatta Instance 2

configure
set protocols rip network 192.168.2.0/24
set protocols rip network 192.168.4.0/24
commit
save

Vyatta Instance 3

configure
set protocols rip network 192.168.3.0/24
set protocols rip network 192.168.5.0/24
commit
save

Vyatta Instance 4

configure
set protocols rip network 192.168.4.0/24
set protocols rip network 192.168.5.0/24
commit
save

To shut down an interface:

set interfaces ethernet eth0 disable

To bring it back up:

delete interfaces ethernet eth0 disable

It all seems easy so far.

Posted byChris Bloomfield at 11:23 1 comments  

GNS3 Configuration Guide - Linux (Fedora 9)

I've been hearing how much better Linux is to Windows from guys across the world so I thought I would install FC9 on my home computer and promptly destroyed Windows XP. What a blessing in disguise! Now I've made the leap of faith I am one happy man although still a little green to the world of Linux.

Let's get to installing GNS3, VPCS, loopback adapter equivalent bridge interfaces etc. I'm going to do this without pictures as for the majority of the case it is exactly the same as the Windows installation. It is just the initial installation and dependencies that are required.

Note to purists: I am a Linux noob so if my terminology is out then I apologise.

Note the use of sudo here. If you haven't set it up then you can log in as root and repeat the command (without the "sudo" prefix).

1. Install PyQt4

Fedora = sudo yum -y install PyQt4

Ubuntu = sudo apt-get install PyQt4

This should install all dependencies needed for GNS3 including SIP.

2. Install tunctl and bridge-utils e.g. sudo yum -y install tunctl bridge-utils

This will now allow you to create bridged interfaces equivalent to Microsoft Loopback Adapters.

3. Download GNS3 from here. I tend to go for the tgz file.

4. Download Dynamips from the same location under the heading Associated Software. I run 32-bit only so I download the Dynamips 0.2.8-RC2 binary for Linux x86 platforms

5. Right-click the downloaded GNS3 file and choose Extract Here. Drag the Dynamips file downloaded in Step 4 to the extracted folder. Now right-click the Dynamips file and select the Permissions tab and ensure the "Allow executing file as program" box is ticked, then click Close.

6. Now double-click the gns3 file and choose Run. Assuming that all dependencies have been installed you should see GNS3 start with the screenshot in Step 3 of my GNS3 Windows guide. Follow the majority of that to set up the images and working directories plus the idlepc value.

So hopefully now you should be able to muck around with GNS3 and do most of what you need to do. However, I had one main issue and that was how do I connect my router to my local machine so that I could run syslog servers, iperf, and other apps like we do using the Loopback Adapter in Windows? Well I have to pay my respects to tuner_x at the Sadikhov IT forums for the guide on how to do this. You must run GNS3 as root in order to achieve this so for example I run:

sudo ./Chris/Desktop/GNS3-0.5-src/gns3

NOTE: If Dynamips doesn't start (you'll probably notice that you cannot connect to a hypervisor on 7200 when dragging a router onto the stage) as root then you need to either clean the working directory as it points to your user account or point the working directory to a new location.

1. If you didn't do this before you need to install tunctl and bridge-utils as outlined in Step 2 of the initial configuration guide above.

2. Now add the following to the script below so each time you switch on your PC the bridge interfaces are created.

sudo vi /etc/rc5.d/S99local

Now insert the following (note that there is no particular naming convention, just what I chose to do) and save:

# Script to create bridge interfaces. Requires tunctl and bridge-utils to be
# installed.
#
# This creates the interfaces. -t names the interface and -u sets the owner of
# of the interface.

/usr/sbin/tunctl -t fed_0 -u Chris
/usr/sbin/tunctl -t fed_1 -u Chris
/usr/sbin/tunctl -t gns3_0 -u Chris
/usr/sbin/tunctl -t gns3_1 -u Chris

# Then bring the interfaces up

/sbin/ifconfig fed_0 up
/sbin/ifconfig fed_1 up
/sbin/ifconfig gns3_0 up
/sbin/ifconfig gns3_1 up

# Now create the bridge interface

/usr/sbin/brctl addbr gns3_br0
/usr/sbin/brctl addbr gns3_br1

# Bring the bridge interfaces up
/sbin/ifconfig gns3_br0 up
/sbin/ifconfig gns3_br1 up

# Add the tap interfaces to the bridge interfaces
/usr/sbin/brctl addif gns3_br0 fed_0
/usr/sbin/brctl addif gns3_br0 gns3_0

/usr/sbin/brctl addif gns3_br1 fed_1
/usr/sbin/brctl addif gns3_br1 gns3_1

# Here is an example of how to assign an IP address to the gns3_br0 interface so one
# can ping from a GNS3 router to the local machine in order to run syslog etc
#
# ifconfig gns3_br0 inet 192.168.2.254 netmask 255.255.255.0 up
#
# I do this manually and not via the script but keep it here for reference only.
# And that's it

Now you could choose to reboot or restart the appropriate services. I tend to restart the services as it is quicker than rebooting.

sudo /etc/rc5.d/S99local restart
sudo /etc/init.d/network restart

Now add an IP address to one of your gns3 bridge interfaces. Here I am using the first:

sudo ifconfig gns3_br0 inet 192.168.2.254 netmask 255.255.255.0 up

NOTE: Do not use the same IP address as your main ISP router otherwise you'll knock out your Internet connection. D'oh! Always learn the hard way don't you Chris? LOL.

Go into GNS3 and drag a cloud, or a customised symbol, onto the stage and right-click and choose Configure. Select the "NIO TAP" tab and type the name of your bridge interface (e.g. gns3_br0) then click Add, Apply, then OK.

Hook your router up to the cloud, start the IOS, console into your router, and put the interface into the same subnet as your bridge interface. Bring the interface up and lo-and-behold you should have connectivity between your PC and your router.

What about multiple hosts? You can still use VPCS as explained in my VPCS Configuration Guide for Windows although there is a slightly different way to run it.

1. Once you have downloaded the file, extract it to your GNS3 folder.

2. Now open the extracted folder and locate the "vpcs" file (NOT vpcs.exe).

3. Right-click the vpcs file and choose the Permissions tab and tick the box next to "Execute".

4. Go to the desktop and right-click and choose Create Launcher.

5. Type = Application in Terminal

6. Name = VPCS

7. Command = the path to the vpcs file located in Step 2.

8. Comment = Virtual PCs

9. Click OK to create the launcher

10. Drag the launcher into the VPCS folder.

When you want to run VPCS just double-click on the created launcher. The configuration works just as it does in Windows.

That's it. FC9 running GNS3 exactly as I had it on Windows.

I hope it helps you Linux noobs to run GNS3.

Chris

Posted byChris Bloomfield at 13:36 3 comments