CCNP rewamp and BSCI Notes

May 22nd, 2010

It’s nothing new that carreer certifications needs a rebrushing every now and then to reflect recent changes in technology and course material.
So, Cisco decided to update their CCNP tracks, which is, honestly, abit annoying for me. I’m still in the process of taking the different tracks, but there no point in taking a track certification if it becomes outdated, ergo useless.

So here is the tracks we already know:
BSCI
BCMSN
ISCW
ONT

They are breaking the whole certification into three pieces instead called:
ROUTE
SWITCH
TSHOOT

Basicly, they added a large troubleshooting deposit into the certification and filled in the most important bits from ISCW and ONT into ROUTE and SWITCH.
For me, this means i have to take BSCI and BCMSN within 31st of july, then I’m able to combine them with a TSHOOT and still achieve a CCNP.
Here’s a better view on the changes and how they affect the different tracks:
CCNP Revamp

Also, just thought I’d post these notes here, so I always know where to find them.
Actually made these quite a while ago, but I stumbled upon them while cleaning up documents.
Again, they are in danish:
BSCI Notes

Kernel-stripping Debian Lenny (2.6.26)

April 12th, 2010

There is a ton of reasons for wanting to customize your debian distributions, but primarily it’s because the need to replicate embedded system functionality in performance and stability, e.g the less useless packages and daemons running, the more efficient your system will run.
Several systems exist for this purpose; light-weight distributions such as Arch Linux, which I’m a huge fan of, but it does rid us of the chance to fully manage the compiled kernel we’re gonna install.

Now, recently I’ve become the happy owner of a ReadyNAS NVX(Netgear NAS-box), which ships with a customized 2.6 kernel filled with random packages for management, http access, and reporting. These little boxes does’nt exactly have the high-end specs in hardware, so i wanted to lift the load alittle by removing unneccesary packages.

Basic kernel-stripping can be done like this:

Download the source code:
apt-get install linux-source-2.6.26

Create a random directory for compiling:
mkdir ~/kerneldir/

Copy the source to the new folder:
cp /usr/src/linux-source-2.6.26.tar.bz2 ~/kerneldir/

Swap directory:
cd /newkernel/

Extract the tarball:
tar xjf linux-source-2.6.26.tar.bz2

And change directory:
cd linux-source-2.6.26

Now this is the interesting part, the actual configuration of the kernel packages:
make config
I recommend you research the individual packages to see which function they serve and if your system can be without them.

Before compiling:
make-kpkg clean

Type in the number of cores in your CPU(for most embedded systems, this will be 1):
export CONCURRENCY_LEVEL=1

Now, we’re gonna do the compiling. This requires abit of patience:
make-kpkg –rootcmd fakeroot –initrd –revision=custom.001 kernel_image kernel_headers

After this, go to the bottom of your filesystem:
cd ..

And install the debian package we just made:
dpkg -i *.deb

And simply reboot.

ASP.NET AJAX serverside clock control

February 24th, 2010

I’ll be the first to admit that AJAX really isn’t my strongest side, so I’m often taking some easy way out when I face a problem that requires dynamic content update. Today I needed to make a server-sided ASP clock – not the hardest task ever, but seconds displayed and updates every 100 milliseconds can be difficult and heavy to achieve through page loads, so I decided to give the UpdatePanel a try. This is a basic AJAX feature that displays the servertime and is updated every seconds.

Anyways, the basic ASP control looks something like this:


<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<
asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Timer ID="Timer1" runat="server" Interval="1000">
</
asp:Timer>
<p style="font-family:Calibri; color:#777777;"><asp:Label ID="lbcurrenttime" runat="server" Text="">
</asp:Label></p>
</ContentTemplate>
</asp:UpdatePanel>

The underlying C# code looks like this:


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class master1 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
string currenttime = DateTime.Now.ToLongTimeString();
lbcurrenttime.Text = currenttime;
}
}

To explain this abit better, I’m using UpdatePanel to refresh content dynamically without having to fire a page_load to update. This saves network bandwidth and server resources.
You may also know this as partial-page update – or in other words, asynchronous javascript and xml.
Anyways, UpdatePanel controls the update process, but the page content involved is handled by our ScriptManager control. This specifies which regions of the page to dynamically refreshed.

The result looks like this:
ASP.NET AJAX clock control

CCNP BCMSN Netacad passed

February 1st, 2010

Today i took the Netacad final exam for CCNP 3 BCMSN. It was fairly easy in my opinion – my greatest fears was the addition of wireless LAN’s and the QoS part, but the technical level was quite low for those two areas, luckily.
Both areas are fairly new to me at a professional level, and they both require much more time and learning then what we spent on it so far, and I really look forward to experience QoS more – it really seems to be one of the hot topics out there these days, along with High Availability and Unified Communications.
By the way, CCNP ONT contains more deailed learning about QoS, so that’s gonna be good stuff ;o) Can’t wait!

Well, i scored 96% – my guess is that some slippery question detail passed my eye somehow, although I’m not gonna speculate about it too much. I’ll enjoy the result and kick back untill the lab exam tomorrow – my guess is that it’s not really the most difficult lab I’m going to endure ;o)

You can find a copy of my CCNP 3 BCMSN notes here (they are in danish).

DynaMIPS with GNS3 CPU overloading

January 20th, 2010

Recently I’ve been interested in using some form of realtime IOS emulator for my networking studies.
This is primarily the result of poor coding of the native Cisco Packet Tracer – lack of functionality and countless bugs, crashes and, of course, my biggest concern, putting my trust in the hands of a program that might lack the desired functionality.

Since I’m a Windows kind of guy, I wanted something with with a GUI frontend – I find that it helps me illustrate the various setups, naturally.
I was introduced to a new platform that provides realtime IOS emulation called DynaMIPS. This piece of program was written by a bunch of students that grew tired of the expenses revolved in aquiring various Cisco certifations, such as CCIE etc. So they developed a software that minimized all the costs associated with lab excercises, which is an awesome idea, generally.
Although the program is released under the GNU/GPL, it does present you with a smaller ethical dilemma. Cisco IOS is, however, not Open Sourced, which means you need to obtain several IOS’s for your DynaMIPS, which is illegal. However, I’ve been told that Cisco’s unofficial say in this includes “looking the other way”, so to speak. They are certainly not interested in putting out official statements allowing everyone to “steal” they valueable piece of code, but on the other hand, they might lose significant income if they dont allow some sort of alternative to the expensive costs revolving around highend certifications.

Well, enough about that.
DynaMIPS is the backend emulator for this process, it presents you with an enviroment that allows you to run several IOS softwares on a single PC. however not completely architechture independantly. So far, only x86 and x64 OS’s has native source code released.
The platform independency consists, although. Releases has been made for several Linux distributions, Windows and OSX.

For those of us who enjoys a GUI to help us obtain the overview, GNS3 exists. This software provides the graphical frontend for this process – actually, the whole process gets to look alot like Packet Tracer, once everything has been setup, which suits me well. I always enjoyed working with Packet Tracer, although it’s not really sufficient enough for use at higher levels of Cisco learnings.

So, I got this fired up and running, and im throwing in a couple of c3600 routers, my idea was to emulate a general layer 3 switch to test out some spanning tree methodologies (you can do this by adding some “16PESW” modules to the device, it provides 16 ethernet ports to the IOS).
I quickly learned that this process appeared to be extremely resource consuming, with a 2,2 GHz dual core processor and 2 GB RAM, I should be able to run several IOS’s without having to bend above 50-60% CPU usage, but this process peaked my entire performance with an amazing 99% CPU usage(!!).
This is some sort of “glitch” ( I’m gonna call it a glitch cause i really don’t assume it’s intentional), because your IOS’s does’nt calculate their own resources accordingly. DynaMIPS doesnt know when your IOS’s is in idle, so it continues to allocate resources, even though your IOS might be idling. Therefor, you need to calculate an IDLE PC value to your various devices.
Before doing this, make sure you only have a single IOS active, and that its been properly initialized, interfaces up and running, and stuff like that. After this, you telnet to the device and fire up the “idlepc show ioshostname” command. This will list all the various hex values associated with Idle PC values for your IOS. Its recommended to use the ones marked with a star. So enter the number of a value with star next to it, and write “idlepc save ioshostname”.
For the GUI-junkies out there, you may just right click your IOS device and select Idle PC, and select a hex value. Works the same.
After this is done, the IOS will remember the settings and this is no longer neccesary to execute. Also, it remembers the hex value for future implementations of IOS’s in the same scenario.
For me, this resulted in a significant release in resources. Running 4 IOS’s with approximately 30-40% CPU.

You can obtain this piece of software at http://www.gns3.net/ .
Good idea to read alittle bit of documentation before firing it up.

So now I can run my emulations properly without having to worry about sudden crashes and bugs in Packet Tracer.

Hello world!

January 19th, 2010

Ohh god, the site is live… Not that it took any real effort on my behalf, thanks to Wordpress!

But the idea behind this site is to throw out some of my thoughts, mostly technical problemsolvings and hints…
I’d really appreciate some comments, but keep it sober, friends…

Regards,
Anders.