Boris Guéry

Hacking the web since 1997.

'Proxmox 3 + Vrack 1.5 With Both Public and Private Networks on Containers Using RIPE Block'

Afin de pouvoir assurer un meilleur service avec l’augmentation de notre traffic nous avons fait l’acquisition d’un nouveau serveur.

Depuis le black-out (sold-out) chez OVH, nous avons dû patienter et prendre en main les nouvelles gammes.

Le choix a finalement était assez simple car pour notre usage et nos besoins seul la gamme Infrastructure nous convient.

En effet c’est la seule qui permet l’utilisation d’un vrack.

Cependant le vrack a évolué et il est maintenant en version 1.5, par ailleurs il est “gratuit”, du moins inclut dans le prix du serveur, et se commande à la livraison du serveur dans le manager v6.

Une fois la machine reçu, j’installe la distribution Proxmox fournit par OVH, je passerai sur le repartionnement des disques car par défault, le partionnement ne laisse pas assez d’espace libre au volume logique pour réaliser des snapshots pour les backups.

La configuration de l’host node

Une fois l’installation terminait, il faut tout d’abord activer la seconde interface eth1 du serveur, c’est cette interface qui est reliée au vrack:

ifconfig eth1 up devrait faire l’affaire, on peut vérifier l’activation de l’interface avec la commande ethtool eth1 | grep "Link detected" (il se peut qu’il faille attendre quelques secondes avant que l’activation soit effective).

Il faut ensuite configurer un nouveau bridge, dans le fichier /etc/network/interfaces on y ajoute donc un nouveau bridge utilisant notre eth1 :

1
2
3
4
5
6
7
8
9
10
# bridge vrack 1.5
auto vmbr2                    # Je l'ai nommé vmbr2 car dans ma configuration il existe déjà vmbr0 & vmbr1
iface vmbr2 inet static
    address   172.16.0.128    # Ici j'en profite pour assigner une addresse sur le réseau 172.16.0.0/12 qui me permettra d'avoir mon hôte disponible sur le vlan
    netmask   255.240.0.0     # C'est le masque qui correspond au réseau 172.16.0.0/12
    broadcast 172.31.255.255  # Le broadcast est toujours la dernière ip du réseau
    gateway   172.31.255.254  # Et la gateway l'avant dernière
    bridge_ports eth1         # Le bridge s'effectue sur l'interface eth1
    bridge_stp   off
    bridge_fd    0

Il suffit ensuite de ré-initialiser les interfaces avec la commande service networking restart (il faut parfois la lancer deux fois).

On peut vérifier avec ifconfig, nous devrions entre autre avoir ceci :

1
2
3
4
5
6
7
vmbr2     Link encap:Ethernet  HWaddr 00:25:90:a7:43:49
    inet addr:172.16.0.128  Bcast:172.31.255.255  Mask:255.240.0.0
    UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
    RX packets:159498973 errors:0 dropped:0 overruns:0 frame:0
    TX packets:184541095 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:99636994421 (92.7 GiB)  TX bytes:52538175446 (48.9 GiB)

A partir de maintenant, nous devrions pouvoir pinger la gateway 172.31.255.254 ainsi que toutes les machines déjà présente (s’il y en a) sur le vlan.

La configuration du guest container

Pour ajouter un container au vlan c’est assez simple, il suffit à présent d’ajouter dans l’interface de Proxmox une ip du réseau 172.16.0.0/12 en venet, et ça fonctionne.

En revanche dès que l’on veut faire cohabiter une ip privée et une ip publique, il faut un peu tweaker le routage.

Avec une ip failover routée sur le serveur hôte

Il faut configurer l’ip publique AVANT l’ip privée, les deux en venet dans l’interface de Proxmox. Ensuite il faut configurer correctement la table de routage, par défault la table de routage doit ressembler à ceci :

1
2
3
4
root@machine128:/# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 venet0

Il faut ajouter une route pour s’assurer du routage correcte pour le vlan :

route add -net 172.16.0.0 gw 172.16.0.128 netmask 255.240.0.0

Il faut utiliser en gateway l’ip privée de la machine.

À partir de maintenant nous devrions pouvoir pinger l’ensemble du vlan ainsi qu’accèder à “l’internet”.

Avec une ip provenant d’un bloc IP RIPE routé sur le vrack 1.5

Dans le cas d’un bloc ip ripe routé sur le vrack la configuration est un peu différente.

La configuration pour l’ip privée reste la même, cependant, il ne faut pas utiliser le venet pour l’ip publique.

Dans l’interface de Proxmox il faut créer une nouvelle interface veth en utilisant vmbr2 (dans notre cas), on nommera l’interface eth0. Pour le reste il n’y a pas de configuration particulière, on peut laisser la configuration automatique.

On démarre la machine virtuelle pour configurer la nouvelle interface.

Supposons que vous ayez fait l’acquisition du bloc 1.2.3.4/28.

Dans /etc/network/interfaces (sur debian/ubuntu), nous devons ajouter ceci:

1
2
3
4
5
6
7
auto eth0
iface eth0 inet static
    address   1.2.3.5          # Nous ne devons jamais utilisé la première ip d'un bloc
    netmask   255.255.255.240  # Le netmask correspondant à notre bloc
    gateway   1.2.3.18         # L'avant dernière ip de notre bloc
    network   1.2.3.4
    broadcast 1.2.3.19         # La dernière ip du bloc

Il faut à présent activer les interfaces : /etc/init.d/networking restart:w

Puis reconfigurer la table de routage, pour cela il faut supprimer toutes les routes existantes puis créer deux nouvelles routes :

route del -net default gw 0.0.0.0, on supprime la route par défault sur le venet0 route del -net 1.2.3.4 gw 0.0.0.0 netmask 255.255.255.240 dev eth0 À cette instant il doit rester une seule route, celle par défault qui doit ressembler à ceci :

1
2
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         1.2.3.18        0.0.0.0         UG    100    0        0 eth0

Et on rajoute la route pour notre VLAN :

route add -net 172.16.0.0 gw 172.16.0.128 netmask 255.240.0.0 dev venet0

Pour finir on ping la gateway de notre vrack pour s’assurer que tout fonctionne :

ping 172.31.255.254

Comments