Category Archives: Linux

Configuring Static Routes on CentOS 4

Last night we did some upgrades on a system in our datacenter. Among other things moving a few services from physical computers to virtual ones. One of these new machines needed contact with three different physical networks, and even more subnets.
If you don’t want to read about my whole example network, skip to the “fun part”.

In this blog entry I will use some bogus internal network addresses. We had the following:

eth0 directly connected to 10.0.100.0/24
eth1 directly connected to 192.168.0.0/24
eth2 directly connected to 192.168.10.0/24

Our new (virtual) server was configured using 192.168.0.1 as default gateway, via eth1. But we also needed to reach the following networks via eth2:

  • 192.168.20.0/24
  • 192.168.30.0/24
  • 192.168.55.0/24
  • 10.50.0.0/16

Configuring this “on-the-fly” is easy. All we have to do is run the following commands as root:

route add -net 192.168.20.0/24 gw 192.168.10.5
route add -net 192.168.30.0/24 gw 192.168.10.5
route add -net 192.168.55.0/24 gw 192.168.10.5
route add -net 10.50.0.0/16 gw 192.168.10.5

As you have guessed, 192.168.10.5 is the gateway being connected to eth2. Now the following is taking place:

Traffic for 10.0.100.0/24 is directly pushed out eth0, no routing needed.
Traffic for 192.168.0.0/24 is directly pushed out eth1, no routing needed.
Traffic for 192.168.10.0/24 is directly pushed out eth2, no routing needed.
Traffic for 192.168.20.0/24, 192.168.30.0/24, 192.168.55.0/24 and 10.50.0.0/16 is pushed to gateway 192.168.10.5 via eth2.
Everything else is directed to gateway 192.168.0.1 via eth1.

Fun Part

To make this routing permanent, meaning it will return upon reboot, we need to store this information somewhere. In this case we’re using CentOS 4, so the file we need to edit is /etc/sysconfig/static-routes. Per default this file doesn’t exists, at least it didn’t on my machine, so I created one and entered the following:

any net 192.168.20/24 gw 192.168.10.5
any net 192.168.30/24 gw 192.168.10.5
any net 192.168.55.0/24 gw 192.168.10.5
any net 10.50.0.0/16 gw 192.168.10.5

Also, check the files /etc/sysconfig/network-scripts/ifcfg-ethx, replace x. Only eth1, in my example, should have a line which says “GATEWAY=192.168.0.1”. If anyone of the other files also has a line which starts with “GATEWAY”, something will most likely go wrong.

I’m not sure how interesting this is for anyone. But at least I hope someone will benefit from it. I might start some more “in-depth” articles about network configuration in the future.

Please leave a comment if you found this useful, or ask questions if there is something I can improve.

Different Fan Behaviour on ThinkPad X61 than X31

Since I got my new Lenovo ThinkPad X61, I have discovered that the CPU fan is behaving rather differently than the one I have in my IBM ThinkPad X31. That is the fan makes a lot more noise when idle on the X61.

For the record. I’m running Ubunty Hardy (8.04) on the X61 and Ubuntu Gutsy (7.04) on the X31. Both 32-bit systems.

The first thing I did was checking Launchpad.net for any known bugs. I found bug 224876 to be promising, it’s titled “Hardy does not control the CPU fan properly.”
After reading this thread I ran the tests described myself, which gave these results.

Machine temperature and fan speed when idle (X61):

$ cat /proc/acpi/thermal_zone/THM0/temperature
temperature: 41 C
$ cat /proc/acpi/thermal_zone/THM1/temperature
temperature: 42 C
$ cat /proc/acpi/ibm/fan
status: enabled
speed: 3207
level: auto

After 5 minutes of “yes | sha512sum” (X61):

$ cat /proc/acpi/thermal_zone/THM0/temperature
temperature: 76 C
$ cat /proc/acpi/thermal_zone/THM1/temperature
temperature: 78 C
$ cat /proc/acpi/ibm/fan
status: enabled
speed: 3242
level: auto

As you can see there is as good as no change in the fan speed.
However; doing the same check on my older, one core, IBM ThinkPad X31.
I get this results:

Machine temperature and fan speed when idle (X31):


$ cat /proc/acpi/thermal_zone/THM0/temperature
temperature: 44 C
$ cat /proc/acpi/ibm/fan
status: enabled
speed: 0
level: auto

Actually, the fan doesn’t start until the temperature reach 68 degrees Celsius. Then it will speeds up to around ~3500 rpm, thus keeping the processor at around 70 degrees Celsius during “yes | sha512sum”.

My question is: Why does the fan constantly run on the X61? Is it really necessary to keep the processor cool? I must say I prefer the silence of the X31 when I’m just browsing the web.

Karl Trygve has suggested that this is a result of a new design team and BIOS which is more restrictive than the one found on the X31.

Ubuntu Hardy and Hibernate Issues

As I mentioned in my last post I had some minor problems with Ubuntu Hardy (8.04) and hibernation. It didn’t always work.

However it now seems like I might have overcome this problem. At first I thought it might had something to do with my docking station. Hibernating while docked, booting up while not and vice versa. The problem was that the machine would freeze during startup after being in hibernation. So to be able to actually see what was going on, I removed the splash screen, and afther this I haven’t had any problems with hibernate what so ever.

Come to think of it, this isn’t the only time the splash screen have caused problems. I had another machine where it refused to boot as long as the splash parameter was set. Luckily, with grub, we are able to edit the boot parameters at boot. Something that wasn’t possible with LILO in the good old days.

To remove the splash screen more permanently than editing grub at each boot. You can,would be to edit the file /boot/grub/menu.1st and remove the word ‘splash’ from the kernel parameters. Just remember that this will sneak its way in the next time you upgrade the kernel. Or rather, Ubuntu upgrades your kernel. as Stian said in the first comment, edit the line “# defoptions=quiet splash” to “#defopts=”quiet nosplash” in the file /boot/grub/menu.1st. Do not remove the leading #.

Please leave a comment if you found this useful.

ThinkPad X61

A few days ago I ordered a Lenovo ThinkPad X61 with 2GB memory option, X6 UltraBase docking station and an optical drive. It arrived the very next day, on a friday, so you can imagine the impact this had on my weekend.

To be fair, the laptop isn’t exactly mine. It belongs to my employer, Jakob Hatteland Solutions.

I’ve specifically asked for the ThinkPad X61 since I’m already familiar with the X-series, I own a ThinkPad X31, and so far I’m happy with it. The ThinkPad-series has the best laptop keyboard I’ve ever encountered. The same can be said about their TrackPoint, that’s why I’m so glad the X-series doesn’t have the dreadful TrackPad.

The machine came pre-installed with Microsoft Windows Vista Business. But for some strange mystical reason it suddenly booted Ubuntu Hardy Heron. This just proves how superior these machines are.

However, there are some flaws that needs to be sorted out. Not in the machine itself, but driver related stuff in Linux. Like wireless. My X61 has a Intel 3945 wireless card, and uses the iwl3945 driver (ipw3945 is obsolete). This workes fine at home, but it isn’t able to connect to the wireless AP at my parents. See bug #183619 in Lunchpad.

Also I don’t trust hibernate 100 percent yet. It has failed a few times, which is a few times to much. But I’ll look more into that later. Otherwise most things seems to work straight out of the box.

I’ll write more about this machine as I stumble upon interesting phenomenons.

Update: Hibernate issue has been sorted out.

Problems with Citrix Client on Linux?

Updated October 12th, 2011.

Everytime I install the Linux Citrix Client it seems like I run into problems with SSL-Certificates. The message usually sounds like this:

You have not chosen to trust “Thawte Server CA”, the issuer of the server’s security cerfiticate (SSL error 61).

You might have another company listet as issuer on your server.
Anyway, let’s fix it.

Run the following command as a superuser, also known as root:

cp /usr/share/ca-certificates/mozilla/* /usr/lib/ICAClient/keystore/cacerts/

That’s it!

Updated: The new client, version 12.0, also called Citrix Receiver, is by default installed under /opt/Citrix/ICAClient/. So then the command will be:

sudo /user/share/ca-certificates/mozilla/* /opt/Client/ICAClient/keystore/cacerts/

This assumes that the ICA Client is installed in the default directory. Also you need to have Mozilla Firefox a package called ca-certificates installed since we are using its certificats.

If you have installed the client as a normal user, the keystore will most likely be placed under $HOME/ICAClient/linuxx86/keystore/cacerts/, note that the double x in linuxx86 is not a typo.

Please leave a comment if you found this useful.