Configuration réseau sur dedibox

Les offres Dedibox (online.net maintenant) sont super pour y faire tourner des machines virtuelles, surtout depuis qu'on peut bridger directement nos VM sur l'interface physique (attention tout de même à toujours déclarer une MAC virtuelle associée à une IP failover à l'avance).

Seulement, la config réseau est un peu particulière, exemple:

La passerelle du serveur physique est 88.190.16.1

L'IP virtuelle d'une de nos VM est 88.190.227.53

Dans ce cas, la passerelle n'est pas sur le même réseau /24 que notre machine. Bêtement, vous vous dites qu'il suffit de mettre un masque en /16 sur la VM pour qu'elle puisse joindre sa passerelle, et c'est pas entièrement faux, ça aura l'air de marcher (j'ai tourner comme ça pendant un moment). Seulement, avec une configuration comme ça, toute une partie du réseau dedibox n'est plus accessible (en fait, toutes les IP 88.190..x.y hors de notre VLAN). Pour régler ça, il faut en fait suivre le tuto disponible ici.

Pour appliquer cette configuration sur un serveur SME / iPasserelle, après avoir mis le masque qui va bien sur l'interface externe (255.255.255.255), pour récupérer l'accès au réseau, voilà la marche à suivre

mkdir -p /etc/e-smith/templates-custom/etc/sysconfig/network/ echo '# GATEWAYDEV disabled for dedibox network' > /etc/e-smith/templates-custom/etc/sysconfig/network/40GATEWAYDEV echo '# GATEWAY disabled for dedibox network' > /etc/e-smith/templates-custom/etc/sysconfig/network/50GATEWAY expand-template /etc/sysconfig/network mkdir -p /etc/e-smith/templates-custom/etc/sysconfig/network-scripts/route-ethX cat <<'EOF' > /etc/e-smith/templates-custom/etc/sysconfig/network-scripts/route-ethX/20gateway { die "Need to pass THIS_DEVICE in MORE_DATA\n" unless (defined $THIS_DEVICE); my $device = $ExternalInterface{Name}; unless ($device) { warn("Can't determine device name for external network"); return "# template expansion error - Can't determine device name for external network"; } return "# Gateway only applies on external interface" unless ($ExternalInterface{Name} eq $THIS_DEVICE); my $gw = $ExternalInterface{'Gateway'}; $OUT .= "$gw dev $THIS_DEVICE\n"; $OUT .= "default via $gw dev $THIS_DEVICE"; } EOF expand-template /etc/sysconfig/network-scripts/ifcfg-$(db configuration getprop ExternalInterface Name) expand-template /etc/sysconfig/network-scripts/route-$(db configuration getprop ExternalInterface Name)