Name : BETA-TESTERS
Project name : ZW3B-API-BETA-TESTERS
Authorized. - 200 - Client API Name and Origin Wildcard OK
Proxmox Virtual Environment d'OVH (par ex), détails sur une configuration réseau et installation des KVMs avec des Linux-Vservers.
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 :
46.105.127.65
10.59.100.187
- Les services d'AD, on choisit comme nom de machine : xtra.zw3b.loc46.105.40.188
- Les services W3B*, on choisit comme nom de machine : net.zw3b.fr46.105.40.189
- Les services MAIL, on choisit comme nom de machine : mail.zw3b.frPour 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.
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 -a 002Linux zw3b.ovh.net 2.6.32-4-pve 003
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/interfaces 002 003# network interface settings 004auto lo 005iface lo inet loopback 006 007iface eth0 inet manual 008 009# vmbr0: Bridging. Make sure to use only MAC adresses that were assigned to you. 010auto vmbr0 011iface vmbr0 inet static 012 address 46.105.127.65 013 netmask 255.255.255.0 014 gateway 46.105.127.254 015 broadcast 46.105.127.255 016 bridge_ports eth0 017 bridge_stp off 018 bridge_fd 0 019 network 46.105.127.0 020 021 post-up echo 1 > /proc/sys/net/ipv4/conf/vmbr0/proxy_arp 022 post-up ip route add 46.105.40.188 dev vmbr0 # ici on ajoute une route pour notre adresse IP_FAILOVER (un des "futur" KVM) 023 post-up ip route add 46.105.40.189 dev vmbr0 # ici aussi. 024 post-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 :/ 025 post-down ip route del 46.105.40.188 dev vmbr0 026 post-down ip route del 46.105.40.189 dev vmbr0 027 post-down ip route del 10.59.100.187 dev vmbr0 028 post-down echo 0 > /proc/sys/net/ipv4/conf/vmbr0/proxy_arp 029 030# for Routing - Pour les OpenVZ.. par exemple (172.16.0.XXX/24).. nous n'en utilisons pas 031auto vmbr1 032iface vmbr1 inet manual 033 bridge_ports dummy0 034 bridge_stp off 035 bridge_fd 0 036# post-up echo 1 > /proc/sys/net/ipv4/ip_forward 037# post-up iptables -t nat -A POSTROUTING -s '172.16.0.0/24' -o vmbr1 -j MASQUERADE 038# post-down iptables -t nat -D POSTROUTING -s '172.16.0.0/24' -o vmbr1 -j MASQUERADE 039 040auto eth0:0 041iface eth0:0 inet static 042 address 10.59.100.254 043 netmask 255.255.255.0 044 network 10.59.100.0 045 broadcast 10.59.100.255 046
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 -n 002Table de routage IP du noyau 003Destination Passerelle Genmask Indic Metric Ref Use Iface 00446.105.40.188 0.0.0.0 255.255.255.255 UH 0 0 0 vmbr0 00546.105.40.189 0.0.0.0 255.255.255.255 UH 0 0 0 vmbr0 00610.59.100.187 0.0.0.0 255.255.255.255 UH 0 0 0 vmbr0 00746.105.127.0 0.0.0.0 255.255.255.0 U 0 0 0 vmbr0 00810.59.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0090.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
001 NET_IF=vmbr0 002 KVM3_IP=10.59.100.187 003
Script avec 5 lignes
001 # régle iptables à ajouter seulement si vous disposer d'un KVM en IP privée 002 iptables -t nat -A POSTROUTING -o $NET_IF -s $KVM3_IP -j MASQUERADE 003 # pour l'enlever... :/ 004 iptables -t nat -D POSTROUTING -o $NET_IF -s $KVM3_IP -j MASQUERADE 005
A partir de ce moment, notre hôte est prêt à accueillir et envoyer des requêtes aux serveurs virtuels.
?€ 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 :
46.105.127.65
donc l'adresse de la gateway OVH est 46.105.127.254
46.105.40.188
Script avec 5 lignes
001 # /etc/resolv.conf 002 nameserver 213.186.33.99 003 nameserver 8.8.8.8 004 nameserver 8.4.8.4 005
Script avec 21 lignes
001 # /etc/network/interfaces 002auto lo 003iface lo inet loopback 004 005# The primary network interface 006#allow-hotplug eth0 007auto eth0 008iface eth0 inet static 009 address 46.105.40.188 010 netmask 255.255.255.255 011 broadcast 46.105.40.188 012 013 post-up route add -host 46.105.127.254 dev eth0 014 post-up route add default gw 46.105.127.254 015 post-down route del -host 46.105.127.254 dev eth0 016 post-down route del default gw 46.105.127.254 017 018 # dns-* options are implemented by the resolvconf package, if installed 019 dns-nameservers 213.186.33.99 8.8.8.8 8.4.8.4 020 dns-search ovh.net 021
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 supplementaire 002 route add -host 46.105.127.254 dev eth0 003 # puis comme d'habitude 004 route 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 -n 002Table de routage IP du noyau 003Destination Passerelle Genmask Indic Metric Ref Use Iface 00446.105.127.254 0.0.0.0 255.255.255.255 UH 0 0 0 eth0 0050.0.0.0 46.105.127.254 0.0.0.0 UG 0 0 0 eth0
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...