Poll: Volume 4 - GNS3 or IOU?

Poll: Volume 4 - GNS3 or IOU?

So far GNS3 seems to have been working well for the first three volumes, but I feel like I should ask whether, for volume 4, a move to IOU (IOU-Web to be exact) would be preferred.

There are a couple of reasons that would make switching to IOU a good idea.

  • IOU is very popular with many studying for the CCIE
  • There would be a common platform - it would make life easier when moving between different OSes. 
  • It would also allow for a nicer experience with clickable pictures. 
  • I could use "proper" switches (though if you are running GNS3 with IOU integration, you can use IOU switch images as well). The new volume will use a couple of switches (as will version 5).
  • The IOS images used would be more recent (but again, see the point above about GNS3/IOU integration
  • IOU is closer to the actual exam environment, than GNS3 is. 

I have added a poll on the right-hand side, where you can vote for your preference.

Let me know your thoughts in the comments section below.

Volume 3: VPNs and NAT

With just a mere 45 days until my lab exam, I am happy to announce that the third volume in the Routing and Switching series; VPNs and NAT for Cisco Networks, has been published to the Kindle store today.

Getting the Kindle formatting has been much easier this time around, as I have used Kindle Textbook Creator, taking the printed version's PDF file, and converting straight from that.

The end result is that it looks the same as the print version (which should be available in a couple of days) which is out now.


This volume starts off with basic GRE tunnels, and build them into an IPSec-secured, optimized and tuned DMVPN network. We also look at "standard" site to site VPNs, before moving onto NAT, and IPv6 transition mechanisms.
I have kept the cost the same as the other volumes, and as usual, it's closely aligned with the CCIE Routing and Switching v5 syllabus. That said, I hope that it is accessible to readers of any level.

I am currently working on volume 4 (Multicast and QoS), and looking at volume 5 (Services). Volume 5 will, most likely, be the end of this series. I could go further, such as IPv6 and the IGPs, but to be honest I don't see that happening at the moment, as after volumes 4 and 5 I have another two books in mind, which are not (directly) related to the Routing and Switching track. This is, of course, unless anyone has any excellent ideas for more books, then I am all ears!

Anyway, I hope you enjoy it.
Linux script can't find /bin/sh - its a Windows problem

Linux script can't find /bin/sh - its a Windows problem

A bit off my usual topics, but it might be useful to others.

I have been trying to set up a monitor on Riverbed loadbalancers to do LDAPS lookups.

On its own, the script ran fine. It was written on notepad++ on my windows box, and copied over to the loadbalancer.

Running it from the home directory worked, yet not from the scripts location. I kept getting this error:
[sfordham@loadbalancer]$ sudo /usr/local/zeus/zxtm/conf/scripts/ldapstest.sh --ipaddr=(ipaddress) --port=636 --node=(nodeipaddress)
[sudo] password for sfordham:
sudo: unable to execute /usr/local/zeus/zxtm/conf/scripts/ldapstest.sh: No such file or directory
Naturally I checked, double checked and checked again that the right files were where they should be. Everything looked ok, and the same script ran fine when running from the home directory. Weird, right?

I ran strace, and got the same kind of error:
[sfordham@loadbalancer ~]$ sudo strace -f -e trace=file /usr/local/zeus/zxtm/conf/scripts/ldapstest.sh --ipaddr=(ipaddress) --port=636
execve("/usr/local/zeus/zxtm/conf/scripts/ldapstest.sh", ["/usr/local/zeus/zxtm/conf/script"..., "--ipaddr=(ipaddress)", "--port=636"], [/* 16 vars */]) = -1 ENOENT (No such file or directory)
strace: exec: No such file or directory
[sfordham@loadbalancer ~]$
Clearly it can't find something.

It's a pretty simple bash script, starts with the usual shebang (#!/bin/sh) which is a symbolic link to bash. That all checked out and a deeper strace showed that all the paths were there.
I then stumbled across this post (http://unix.stackexchange.com/questions/27054/bin-bash-no-such-file-or-directory), which says that if you write a script in Windows, it has a tendancy to add an extra carriage return. True enough, this is what happened:
[sfordham@loadbalancer zxtm]$ sudo head -1 conf/scripts/ldapstest.sh | od -c
0000000   #   !   /   b   i   n   /   s   h  \r  \n
0000013
[sfordham@loadbalancer zxtm]$
Here you can see the \r carriage return after #!/bin/sh.

I created a new file, copied the contents from the old file into the new one (simple copy and paste), and this removed the extra return.

Now the script runs fine.

Lesson learned - don't use Windows to write Linux scripts!