Projet

Général

Profil

Eole23 with kernel 3 » Historique » Version 11

Version 10 (Daniel Dehennin, 29/03/2012 11:26) → Version 11/13 (Daniel Dehennin, 29/03/2012 12:50)

{{toc}}

h1. 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":http://fr.wikipedia.org/wiki/Application_binary_interface du noyau.

Nous devons cependant concerver un certains nombre de fonctionnalités :
* La gestion des conteneurs "LXC (en)":http://en.wikipedia.org/wiki/LXC
* Les extensions "ipset (en)":http://en.wikipedia.org/wiki/Netfilter#ipset
* Le filtrage du "P2P":http://fr.wikipedia.org/wiki/P2P

h2. Installation

Un noyau _backport_ est disponible sur _Lucid_:

<pre>
root@eole:~# apt-get install linux-image-generic-lts-backport-oneiric
</pre>

h3. Adaptations

Il est nécessaire d’effectuer quelques adaptation afin de démarrer un noyau 3.0.

h4. 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":http://fr.wikipedia.org/wiki/Expression_rationnelle sélectionnant le noyau par défaut:
<pre>
root@eole:~# sed -ie "s/\(EOLE_GRUB_REGEX='.\*\)-eole'/\1'/" /etc/default/grub
</pre>

h4. Iptables

EOLE recompile iptables du fait du patch modifiant l’"ABI":http://fr.wikipedia.org/wiki/Application_binary_interface du noyau.

L’utilisation d’un noyau standard nécessite l’installation de la version Ubuntu d’iptables

<pre>
root@eole:~# apt-get install iptables=1.4.4-2ubuntu2
</pre>

Attention, une mise à jour réinstallera la version EOLE, durant les tests, il faut garder la version Ubuntu:

<pre>
root@eole:~# echo "iptables hold" | dpkg --set-selections
</pre>

h4. Conteneurs

La version des outils _LXC_ sur _Lucid_ ne fonctionnent pas avec un noyau 3.0.

Il faut donc installer une version _backport_:
<pre>
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
</pre>

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 :

<pre>
# 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"
</pre>

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)

h4. Filtrage p2p

L7 filter nécessite un patch noyau qui change l’"ABI":http://fr.wikipedia.org/wiki/Application_binary_interface du noyau.

Il est possible d’utiliser le module @ipp2p@ de "xtables-addons":http://xtables-addons.sourceforge.net/

Il faut une version de xtables-addons fonctionnant sur noyau 3.0

<pre>
root@eole:~# bzr branch lp:ubuntu/oneiric/xtables-addons
root@eole:~# cd xtables-addons && dpkg-buildpackage
</pre>

h4. ipset

Une mise à jour d’ipset viendra avec "@xtables-addons-common@":https://launchpad.net/ubuntu/+source/xtables-addons/1.35-1

<pre>
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.
</pre>

h1. Webographie

* http://wiki.debian.org/LXC