C’est remarquable cette propension des petits lutins bleus de la nuit à aller bousiller les seules machines qui ne sont pas backupées, ils savent tout, ils voient tout, et ce sont de sacrés petits pervers de merde.
Hier matin, alors que je m’apprétais à faire le tour de mes mails avant de partir au boulot, je constate avec effroi que “je ne sors plus”. Comportement plus qu’étrange, ma passerelle récupère bien l’IP publique Free via DHCP, le ping passe quelques secondes, puis s’arrête, plus rien. Inévitablement, je commence à blâmer Free -bien qu’objectivement, je n’ai pas recontré de problèmes majeurs depuis des mois-, puis par acquis de conscience, teste le lien sur une machine differente. Ça passe.
Mon ancienne passerelle était un peu bancale, il faut l’avouer; il s’agissait d’une Sun Netra X1 gracieusement léguée par monsieur ange pendant Solutions Linux 2008, qui faisait tourner un OpenBSD 4.1 qui paniquait environ tous les trois mois.
Il ne m’en fallait pas plus pour plancher sur une nouvelle gateway, sous NetBSD cette fois. M’est alors apparu l’idée de faire fonctionner cette passerelle dans un domU, après tout, en bridgeant l’interface qui reçoit le réseau Free à une interface Xen, et de la même manière, en bridgeant l’interface raccordée à mon LAN, cela devrait fonctionner sans accroc: et bien c’est le cas.
Voici les fichiers impliqués dans ce mic-mac:
Sur le dom0, je déclare mes interfaces comme suit :
$ cat /etc/ifconfig.fxp0 # LAN inet 192.168.0.10 netmask 255.255.255.0 $ cat /etc/ifconfig.fxp1 # Free up
Puis je déclare des bridges sur ces interfaces :
$ cat /etc/ifconfig.bridge0 # LAN create !brconfig $int add fxp0 up $ cat /etc/ifconfig.bridge1 # Free create !brconfig $int add fxp1 up
Ce qui nous donne, dans la configuration du domU :
$ cat /usr/pkg/etc/xen/exar #kernel = "/home/imil/xen/netbsd-5.0.2-INSTALL_XEN3_DOMU.gz" kernel = "/home/imil/xen/netbsd-5.0.2-XEN3_DOMU-pf.gz" memory = 256 name = "exar" vcpus = 1 disk = [ 'file:/home/imil/xen/exar.img,0x03,w' ] disk += [ 'file:/home/imil/iso/amd64cd-5.0.2.iso,0x04,r' ] vif = [ 'bridge=bridge0' ] vif += [ 'bridge=bridge1' ] bootdev = "/dev/xbd0a"
Notez le nom du noyau qui sert à faire booter cette VM, netbsd-5.0.2-XEN3_DOMU-pf.gz. En effet, un modload /usr/lkm/pf.o fait misérablement crasher le domU, il est donc nécessaire de se fendre d’une recompilation du noyau domU en incluant à la configuration :
pseudo-device pf # PF packet filter pseudo-device pflog # PF log if
Sur le domU-passerelle, on constate la présence des deux interfaces :
$ ifconfig -a xennet0: flags=8863mtu 1500 capabilities=2800 enabled=0 [...] xennet1: flags=8863 mtu 1500 capabilities=2800 enabled=0 [...]
Leur configuration est triviale :
exar$ cat /etc/ifconfig.xennet0 # LAN inet 192.168.0.254 netmask 255.255.255.0 exar$ cat /etc/ifconfig.xennet1 # Free up !dhclient $int
Et voila !
On active le NAT gràce à pf :
ext_if="xennet1" int_if="xennet0" nat on $ext_if from !($ext_if) -> ($ext_if:0)
Et me voila à nouveau en mesure de raconter ma vie trépidante sur l’Intarwebz.
Twitter
GooglePlus
GitHub
Recent Comments