Kernel 3.0 sur un module EOLE 2.3¶
Étude du passage à un noyau Ubuntu LTS backport
L’idée est d’éviter de compiler un kernel spécifique EOLE, nécessitant la recompilation des outils comme iptables du fait du changement de l’ABI du noyau.
Nous devons cependant concerver un certains nombre de fonctionnalités :Installation¶
Un noyau backport est disponible sur Lucid:
root@eole:~# apt-get install linux-image-generic-lts-backport-oneiric
Adaptations¶
Il est nécessaire d’effectuer quelques adaptation afin de démarrer un noyau 3.0.
Démarrage par défaut sur le noyau 3.0¶
La séléction du noyau se fait lors d’une mise à jour de grub, par défaut, uniquement les noyaux se finissant par -eole
sont pris en compte.
On modifie l’expression rationnelle sélectionnant le noyau par défaut:
root@eole:~# sed -ie "s/\(EOLE_GRUB_REGEX='.\*\)-eole'/\1'/" /etc/default/grub
Iptables¶
EOLE recompile iptables du fait du patch modifiant l’ABI du noyau.
L’utilisation d’un noyau standard nécessite l’installation de la version Ubuntu d’iptables
root@eole:~# apt-get install iptables=1.4.4-2ubuntu2
Attention, une mise à jour réinstallera la version EOLE, durant les tests, il faut garder la version Ubuntu:
root@eole:~# echo "iptables hold" | dpkg --set-selections
Conteneurs¶
La version des outils LXC sur Lucid ne fonctionnent pas avec un noyau 3.0.
Il faut donc installer une version backport:
root@eole:~# apt-get install python-software-properties root@eole:~# add-apt-repository ppa:serge-hallyn/lxc-backport root@eole:~# apt-get update root@eole:~# apt-get install lxc=0.7.4-0ubuntu1.1 root@eole:~# echo "lxc hold" | dpkg --set-selections
Un problème est que le script d’init /etc/init.d/lxc
est fourni par les paquets eole-conteneurs
et lxc
.
Un autre est que le script d’init pour precise utilise le fichier de configuration /etc/default/lxc
suivant :
# Comment out to run the lxc init script #RUN=yes # Directory containing the container configurations CONF_DIR=/etc/lxc # Start /etc/lxc/example.conf, /etc/lxc/autostart.conf, etc. CONTAINERS="example autostart container" MIRROR="http://archive.canonical.com/ubuntu"
De fait, la configuration des conteneurs se trouve dans /etc/lxc/
et non dans /opt/lxc/<conteneur>
.
TODO: à voir si un répertoire peut-être utilisé pour les démarrages automatiques (à-la libvirt)
Le démarrage des bridges est intégré à eole-common:source:eole-conteneur/lxc, cela devrait être géré autrement :
- en utilisant la 1libvirt":http://wiki.debian.org/LXC/LibVirtDefaultNetwork et en définissant des réseaux dans
/etc/libvirt/qemu/networs/*.xml
- en utilisant des scripts dans
/etc/network/if-{pre-,post-}{down,up}.d
Filtrage p2p¶
L7 filter nécessite un patch noyau qui change l’ABI du noyau.
Il est possible d’utiliser le module ipp2p
de xtables-addons
Il faut une version de xtables-addons fonctionnant sur noyau 3.0
root@eole:~# bzr branch lp:ubuntu/oneiric/xtables-addons root@eole:~# cd xtables-addons && dpkg-buildpackage
ipset¶
Une mise à jour d’ipset viendra avec xtables-addons-common
root@amonecole:~# ipset -L ipset v4.1: Kernel ip_set module is of protocol version 6.I'm of protocol version 4. Please upgrade your kernel and/or ipset(8) utillity.