Skip to content

{ Category Archives } linux

Update on setting up Ubuntu in order to build kernel modules

As an update to my “hello world” kernel module article, there is a much easier way to set up your Debian-based Linux (including Ubuntu) to build kernel modules, without manually getting the relevant kernel headers using apt-get.
I’ve tested this process with Ubuntu 8.04, 9.04 and 9.10 and it works great. Do the following to set [...]

Tagged , ,

Setting up Quagga suite of dynamic routing protocols

Quagga is a suite of dynamic routing protocols for Unix based systems and is a fork of GNU Zebra, which seems to be discontinued.
I attempted to follow the documentation but some steps seemed to be assumed so here is what I did to get it up and running on my Ubuntu 8.04 system – it [...]

Tagged , ,

Installing Xen on Ubuntu 8.04 and creating Ubuntu 8.04 domU’s (guests)

I’ve recently been looking into virtualisation methods within Linux to find an optimal way of creating a network testbed of virtual machines. The machines are relatively high powered for this task (AMD Athlon 64 3700+ with 2GB RAM) and are more than able to run more than one Linux instance. The only real limitation I can [...]

Tagged , , , ,

Force udev to reassign ethX identifiers in Ubuntu 8.04

Quick tip: If you have replaced your network cards in Ubuntu 8.04, or in my case imaged a Ubuntu install across many PC’s, and would like udev to redetect network cards and reassign ethX identifiers beginning with eth0, run the following command.
sudo mv /etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules.old
Then reboot the machine, and udev will recreate 70-persistent-net.rules, reassigning only [...]

Tagged , , ,

Creating a Netfilter kernel module which filters UDP packets

Last time we created a Netfilter kernel module which simply dropped all packets which gave the structure and functions that need to be implemented for a Netfilter module to work.
This time, we’ll extend the functionality to poke into the IP header, specifically the protocol field, in order to perform functionality specific to a packet type. [...]

Creating a simple ‘hello world’ Netfilter module

This is the second part of the series in creating a NetFilter module for Ubuntu 8.04 (running linux kernel 2.6.24-23). In it I’ll write a simple Netfilter module as a kernel module that simply drops all packets and logs dropped packets to /var/log/messages. In order to implement this we take the code for the kernel [...]

Tagged , , , ,

Creating a “hello world” kernel module in linux

This is part one of my series on creating a Netfilter module in order to implement a routing protocol in Linux. I’ve broken down the challenge into three steps.

Write a simple kernel module (this article)
Add Netfilter hooks to kernel module
Access packet headers within Netfilter hook
Abstract routing daemon to a user space module (for easier debugging)

This [...]

Tagged , , , , ,

Renaming and reordering of network interfaces in linux using udev

As part of a network testbed I’m working on I need to manage network interfaces and dedicate a network interface to a Linux container. Now depending on the network hardware, the ordering of the eth devices does not necessarily correspond to the ordering on the PCI bus but instead seems to correspond to the order [...]

Tagged , , ,