Pour la suite de mes aventures XEN (cf ici pour le début des aventures http://forums.fedora-fr.org/viewtopic.php?id=25152), je me suis dis : "allez, j'ai assez joué, je me lance dans l'install que j'ai en tête".

Une des choses que j'ai en tête c'est d'avoir un DOMU IPCOP (pour ceux qui connaissent pas : http://www.generation-nt.com/firewall-ipcop-securiser-son-reseau-avec-linux-article-24818-1.html et http://ipcop.org/?newlang=fra) par lequel tout mes DOMU sont filtrés (entendre firewallés).

J'ai aussi en tête d'avoir le réseau DOM0 et celui des DOMU bien séparés. Donc, deux cartes dont un dédiée au DOMU IPCOP. Celle qui fera donc office d'interface Red (en gros accès Internet public).

J'ai donc galéré.

Tout d'abord, je suis parti de ça : How do I hide a pci device from dom0? ici http://wiki.xensource.com/xenwiki/XenFaq#head-a7947297375d20d34c1413f386aa47a59784b56f.
Paramètre physdev_dom0_hide sur le noyau XEN. Marche pas. C'est à dire que la carte réseau que je veux dédiée reste visible à mon DOM0. Domage, ça aurait caché la carte par l'hyperviseur. Le principe me plaisait bien.

Je fini par tomber sur le paramètre pciback.hide a donner au noyau du DOM0 (donc pas traité par l'hyperviseur mais par le noyau lancé par l'hyperviseur pour le DOM0). Donc, ça cahe un peu plus tard.
J'ai l'erreur Unknown boot option `pciback.hide=(05:02.0)': ignoring.

Je fini par tomber sur ça https://bugzilla.redhat.com/show_bug.cgi?id=212935
Je ne suis donc pas tout seul au monde à avoir des problèmes 😉 C'est déja plus chaleureux 😉

J'ai bien l'option CONFIG_XEN_PCIDEV_FRONTEND dans la config du noyau. Bon. Allons voir le lien du bugzilla http://wiki.xensource.com/xenwiki/Assign_hardware_to_DomU_with_PCIBack_as_module.

Il y a deux solutions. La deuxième me semble mieux. Donc je m'assure que que le module pciback soit bien chargé avant le module de ma carte et je place l'option pour cacher la carte tel qu'indiqué, le tout dans /etc/modprobe.conf :
options pciback hide=(0000:05:02.0)
install skge /sbin/modprobe pciback ; /sbin/modprobe --first-time --ignore-install skge
avec le nom du module de ma carte à la place de skge.

Et là, la carte est effectivement absente de mon DOM0. Victoire.

Mais j'ai crié "victoire" trop vite, je configure mon DOMU IPCOP avec, entre autre, pci=['5,2,0'].
Marche pas. Mon DOMU IPCOP voit bien les cartes virtuelles, mais pas la carte dédiée. Mais là c'est normal.

Pour installer un DOMU IPCOP j'avais deux choix : paravirtualisé ou virtualisé (autrement dit hvm).
Paravirtualisé, il y a bien des possibilités :
http://wiki.xensource.com/xenwiki/CoolConfigurations#head-f31df17fedb2903b819a6036be0da7c811f0b39a
http://www.pug.org/images/d/dd/Tutorial_IPCop-auf-xen.pdf (c'est en deutch, que je cause pas, mais une traduction en ligne permet d'avoir suffisement d'info pour conclure que c'est une galère). En gros faut récupérer les sources, un noyau, des patch, patcher, compiler, galérer ...
Donc, hvm.

Et c'est là où ça va pas. C'est que si au lieu de crier victoire j'avais tout bien lu jusqu'au bout dès la première fois ici http://wiki.xensource.com/xenwiki/Assign_hardware_to_DomU_with_PCIBack_as_module, la phrase "Note that to make use of this, a Linux kernel running in the guest domain has to have been compiled with pci frontend support".
J'ai pas vérifié, mais je vois pas pourquoi IPCOP aurait le support pci frontend ...

Donc, dès que j'ai un peu de temps, je recommance toujours en hvm (je vais certainement pas me lancer dans une recompilation patchée d'IPCOP avec ajout du support pci frontend ...), mais cette fois avec les deux cartes réseaux visibles du DOM0. Hé oui, j'ai une autre solution 😉 par contre pas assez de temps.

Suite au prochain épisode.