Ceux qui ont lu GLMF 100 ont surement detecté la bassine de bave liée à netfilter. Pour rappel, les services de zone0, notre (plus si) nouveau serveur, sont rendus par des domUs qui sont sur un LAN privé, et étrangement, les règles classiques de PREROUTING permettant de faire du port forwarding dans ce cas de figure ne fonctionnaient simplement pas.
Aujourd’hui, KmiKze a solutioné le problème. En effet, un brctl show
montrait la présence de bien trop d’interfaces bridgées sur xenbr0
, et de plus, ce type de setup fonctionne pour lui depuis quelques mois. Et c’est là qu’il detecte une difference entre notre conf et la sienne. En effet, notre /etc/xen/xend-config.sxp
contient les deux directives suivantes :
(network-script network-bridge)
(vif-script vif-bridge)
car nous bridgions sur une seconde interface reseau, eth1.
KmiKze lui, bridge sur une interface dummy
, et pour ce faire, utilise les directives suivantes :
(network-script network-dummy)
(vif-script vif-bridge)
Nous nous executons donc. Comme nous l’avions constaté, si /etc/init.d/xend
contenait simplement un exit 0
, cela ne serait pas different; seul un reboot permet de prendre ces changements en compte.
Finalement :
xenbr0 8000.1a87802de454 no dummy0
vif1.0
tap0
Mais surtout, nos règles de POSTROUTING fonctionnent. Un exemple pour la route :
root@zone0:~# grep :80 /etc/init.d/firewalling.sh
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
-j DNAT --to 192.168.0.3:80
Puis depuis une autre machine :
[imil@senate ~]$ telnet zone0.gcu.info 80
Trying 212.85.147.21...
Connected to zone0.gcu.info.
Escape character is '^]'.
GET /
NetBSD gcu.gcu-squad.org 3.1 NetBSD 3.1 (GENERIC) #0: Tue Oct 31 04:27:07 UTC
2006 builds@b0.netbsd.org:/home/builds/ab/netbsd-3-1-RELEASE
/i386/200610302053Z-obj/home/builds/ab/netbsd-3-1-RELEASE/src/sys/arch/i386
/compile/GENERIC i386
Connection closed by foreign host.
Et voila.
Merci qui ? Merci M’sieur KmiKze !