Informations :
Dates
- Publish : : Tuesday 10 january 2012
- Modification : Tuesday 23 october 2012
- 5695 views
Share :
Proxmox Virtual Environment est un logiciel libre de virtualisation, plus précisément un hyperviseur de machine virtuelle. Nous allons étudier vulgairement ses fonctionnalités et différentes configurations.
Nous disposons d'1 adresse publique + 3 adresses publique en IP_FAIL_OVER.
Nous souhaitons virtualiser un parc de machines serveurs, afin d'héberger un service Mail, un service Web* ainsi qu'un service d'Active Directory.
Dans cette configuration :
- IP de l'hôte (noyeau proxmox) :
46.105.127.65 - IP privée d'un KVM :
10.59.100.187- Les services d'AD, on choisit comme nom de machine : xtra.zw3b.loc - IP publique d'un KVM :
46.105.40.188- Les services W3B*, on choisit comme nom de machine : net.zw3b.fr - IP publique d'un autre KVM :
46.105.40.189- Les services MAIL, on choisit comme nom de machine : mail.zw3b.fr
Pour cela, nous installons 3 KVM via l'interface Web Proxmox, pour y héberger les services Mails, Web et de l'AD. Sur chacun des KVMs nous installerons Linux-Vservers pour y faire tourner les services nécessaires bien séparément.
Chez OVH, pour optenir des adresses IP_FAIL_OVER rendez-vous dans votre OVH-Manager-V3 à l'heure d'aujourdh'ui. Elles seront actives quelques minutes après les avoir créés et assosiés donc à votre serveur/MAC Address.
Configuration de l'hôte PVE
Ici on detail la configuration de certains fichiers de la machine hôte. Laquelle va recevoir tous les paquets, elle jouera le rôle de passerelle.
on vérifie déjà que le noyeau est le bon (PVE):
Script avec 3 lignes
001uname -a002Linux zw3b.ovh.net 2.6.32-4-pve003
okay... le noyeau est bien celui de proxmox, nous sommes sur l'hôte.
Dans un premier temps, on vérifie, configure le fichier vim /etc/network/interfaces qui correspond au fichier de configuration réseaux.
Je met ici le fichier actuel, je détaillerai au cours de la rédaction du papier.
Script avec 46 lignes
001# /etc/network/interfaces002 003# network interface settings004auto lo005iface lo inet loopback006 007iface eth0 inet manual008 009# vmbr0: Bridging. Make sure to use only MAC adresses that were assigned to you.010auto vmbr0011iface vmbr0 inet static012address 46.105.127.65013netmask 255.255.255.0014gateway 46.105.127.254015broadcast 46.105.127.255016bridge_ports eth0017bridge_stp off018bridge_fd 0019network 46.105.127.0020 021post-up echo 1 > /proc/sys/net/ipv4/conf/vmbr0/proxy_arp022post-up ip route add 46.105.40.188 dev vmbr0 # ici on ajoute une route pour notre adresse IP_FAILOVER (un des "futur" KVM)023post-up ip route add 46.105.40.189 dev vmbr0 # ici aussi.024post-up ip route add 10.59.100.187 dev vmbr0 # ici vous remarquez que c'est une adresse privée.. mais c presque pareil.. en vrai :/025post-down ip route del 46.105.40.188 dev vmbr0026post-down ip route del 46.105.40.189 dev vmbr0027post-down ip route del 10.59.100.187 dev vmbr0028post-down echo 0 > /proc/sys/net/ipv4/conf/vmbr0/proxy_arp029 030# for Routing - Pour les OpenVZ.. par exemple (172.16.0.XXX/24).. nous n'en utilisons pas031auto vmbr1032iface vmbr1 inet manual033bridge_ports dummy0034bridge_stp off035bridge_fd 0036# post-up echo 1 > /proc/sys/net/ipv4/ip_forward037# post-up iptables -t nat -A POSTROUTING -s '172.16.0.0/24' -o vmbr1 -j MASQUERADE038# post-down iptables -t nat -D POSTROUTING -s '172.16.0.0/24' -o vmbr1 -j MASQUERADE039 040auto eth0:0041iface eth0:0 inet static042address 10.59.100.254043netmask 255.255.255.0044network 10.59.100.0045broadcast 10.59.100.255046
On redémare le réseau /etc/init.d/networking restart pour que la configuration soit prise en compte.
On peut vérifier que nos routes soient bien appliquées au systeme
Script avec 9 lignes
001route -n002Table de routage IP du noyau003Destination Passerelle Genmask Indic Metric Ref Use Iface00446.105.40.188 0.0.0.0 255.255.255.255 UH 0 0 0 vmbr000546.105.40.189 0.0.0.0 255.255.255.255 UH 0 0 0 vmbr000610.59.100.187 0.0.0.0 255.255.255.255 UH 0 0 0 vmbr000746.105.127.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr000810.59.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth00090.0.0.0 46.105.127.254 0.0.0.0 UG 0 0 0 vmbr0
En plus d'ajouter les routes à l'hôte, pour les KVM en IP privées, il faut logiquement NATer les paquets. (c'est comme si l'hôte était une passerelle Linux et qu'un KVM était une machine sur le réseau ; et que l'on souhaitait avoir InterNet sur cette machine)
En français ;) çà donne :
Script avec 3 lignes
001NET_IF=vmbr0002KVM3_IP=10.59.100.187003
Script avec 5 lignes
001# régle iptables à ajouter seulement si vous disposer d'un KVM en IP privée002iptables -t nat -A POSTROUTING -o $NET_IF -s $KVM3_IP -j MASQUERADE003# pour l'enlever... :/004iptables -t nat -D POSTROUTING -o $NET_IF -s $KVM3_IP -j MASQUERADE005
A partir de ce moment, notre hôte est prêt à accueillir et envoyer des requêtes aux serveurs virtuels.
Configuration d'un KVM n'ayant pas la même classe d'IP que son hôte
?€ partir de cet instant, sur le KVM il faut bien entendu configurer /etc/resolv.conf avec 1 DNS ou 2 ou 3 :) pour la résolution des noms/IP, ainsi que son fichier réseaux vim /etc/network/interfaces en ajoutant la gateway.
Ici, on s'occupe de la configuration suivante :
- IP Hote OVH :
46.105.127.65donc l'adresse de la gateway OVH est46.105.127.254 - IP (failover) KVM :
46.105.40.188
Script avec 5 lignes
001# /etc/resolv.conf002nameserver 213.186.33.99003nameserver 8.8.8.8004nameserver 8.4.8.4005
Script avec 21 lignes
001# /etc/network/interfaces002auto lo003iface lo inet loopback004 005# The primary network interface006#allow-hotplug eth0007auto eth0008iface eth0 inet static009address 46.105.40.188010netmask 255.255.255.255011broadcast 46.105.40.188012 013post-up route add -host 46.105.127.254 dev eth0014post-up route add default gw 46.105.127.254015post-down route del -host 46.105.127.254 dev eth0016post-down route del default gw 46.105.127.254017018# dns-* options are implemented by the resolvconf package, if installed019dns-nameservers 213.186.33.99 8.8.8.8 8.4.8.4020dns-search ovh.net021
Il faut bien préciser le broadcast 46.105.40.188 vers la même machine et mettre le netmask 255.255.255.255.
Puis pour que le systeme accepte une machine (IP) externe à son réseau, il faut l'indiquer explicitement au système, On va donc ajouter l'IP en question (celle de la gateway), puis, ensuite appliquer notre route pour la passerelle :
Script avec 4 lignes
001# la ligne supplementaire002route add -host 46.105.127.254 dev eth0003# puis comme d'habitude004route add default gw 46.105.127.254
On vérifie nos routes après avoir redémarer le réseau /etc/init.d/networking restart
Script avec 5 lignes
001route -n002Table de routage IP du noyau003Destination Passerelle Genmask Indic Metric Ref Use Iface00446.105.127.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth00050.0.0.0 46.105.127.254 0.0.0.0 UG 0 0 0 eth0
Configuration d'un KVM ayant la même classe d'IP que son hôte
Ce n'est pas forcement la bonne solution (ou interdit) d'avoir la même classe d'IP sur des réseaux différents. Vu que techniquement, nous avons un réseau réel et un réseau virtuel.
Voilà, on ping l'InterNet... :) depuis notre KVM
Vulgairement comme je vous ai dis plus haut, c'est ce qu'il faut pour comprendre Proxmox. Ensuite sur chaqu'un de nos KVMs, on installe un noyeau linux-vserver et on crée nos différents linux-vservers...
IPv6 Configuration
- J'ajoute un lien vers l'article GNU/Linux > Réseaux > Howto IPv6 - Proxmox - OVH qui explique comment configurer l'IPv6 sur les VMs de Proxmox2

