Project

General

Profile

VirtualisationService » History » Version 6

Raphaël Durand, 09/10/2013 10:51 PM

1 1 Laurent GUERBY
{{>toc}}
2 1 Laurent GUERBY
3 1 Laurent GUERBY
h1. VirtualisationService
4 1 Laurent GUERBY
5 1 Laurent GUERBY
h2. Objet
6 1 Laurent GUERBY
7 1 Laurent GUERBY
Dans l'environnement tetaneutral.net un adhérent a le choix d'utiliser plusieurs IPv4 publiques et un bridge avec son interface pour virtualiser mais ceci consomme plusieurs IPv4 publiques.
8 1 Laurent GUERBY
9 1 Laurent GUERBY
Une alternative est de n'utiliser qu'une IPv4 publique et de creer des VMs sur un bridge interne (qui n'a pas l'interface de sortie comme port) avec des IPv4 privées et de se servir de l'hote pour router les requetes de service suivant les ports. Par exemple 
10 1 Laurent GUERBY
11 1 Laurent GUERBY
- tcp/2222 => ssh host
12 1 Laurent GUERBY
- tcp/2223 => ssh VM1
13 1 Laurent GUERBY
- tcp/2224 => ssh VM2
14 1 Laurent GUERBY
- tcp/2225 => ssh VM3
15 1 Laurent GUERBY
- tcp/80 => reverse proxy (nginx, apache, ...) sur host pour redispatch par domaine sur VM1+VM2
16 1 Laurent GUERBY
- tcp/443 => idem
17 1 Laurent GUERBY
- udp/1194 => serveur openvpn sur VM3
18 1 Laurent GUERBY
19 1 Laurent GUERBY
En IPv6 il n'y a pas de probleme car l'adhérent a un /56 donc pas de limite aux IPs de service, il suffit de demander l'activation du routage IPv6 coté tetaneutral.net
20 1 Laurent GUERBY
21 3 Raphaël Durand
h2. Solutions
22 3 Raphaël Durand
23 3 Raphaël Durand
Solarus : - Pour mutualiser une IPv4 sur HTTP on peut mettre en place un proxy nginx. J'en ai déjà un en place sur mon serveur. Je peux le prêter ou en faire un tuto pour en monter un.
24 3 Raphaël Durand
- Pour le reste des flux, je conseille de monter un NAT/PAT et configurer les redirections de port entrants. On peut faire ça avec IPtables sous Linux ou BSD. On peut utiliser une machine virtuelle ou un OpenWRT si on veut le faire sur une machine séparée.
25 3 Raphaël Durand
26 1 Laurent GUERBY
h2. Liens
27 1 Laurent GUERBY
28 1 Laurent GUERBY
TODO
29 1 Laurent GUERBY
30 5 Raphaël Durand
h2. Configuration d'un reverse proxy nginx
31 5 Raphaël Durand
32 6 Raphaël Durand
Ci-dessous voici une conf typique pour mettre en place un reverse-proxy nginx afin de partager une IP publique pour plusieurs serveurs.
33 5 Raphaël Durand
Le systeme fonctionne par Virtual Host (comme sous Apache)
34 5 Raphaël Durand
35 5 Raphaël Durand
Pour chaque Virtual Host, il faut créer un fichier de ce type dans /etc/nginx/sites-enabled
36 5 Raphaël Durand
37 5 Raphaël Durand
<pre>
38 5 Raphaël Durand
server {
39 5 Raphaël Durand
        listen   80;
40 5 Raphaël Durand
        server_name  *.domaine;
41 5 Raphaël Durand
        location / {
42 5 Raphaël Durand
                proxy_pass         http://10.255.254.1;
43 5 Raphaël Durand
    }
44 5 Raphaël Durand
}
45 5 Raphaël Durand
server {
46 5 Raphaël Durand
        listen 443;
47 5 Raphaël Durand
        server_name  ultrawaves.fr;
48 5 Raphaël Durand
        ssl                     on;
49 5 Raphaël Durand
        ssl_certificate     certificat_ssl.crt;
50 5 Raphaël Durand
        ssl_certificate_key certificat_ssl.crt;
51 5 Raphaël Durand
        location / {
52 5 Raphaël Durand
                proxy_pass         https://10.255.254.1;
53 5 Raphaël Durand
    }
54 5 Raphaël Durand
}
55 5 Raphaël Durand
</pre>
56 6 Raphaël Durand
Les champs à remplir sont 'server_name' avec le domaine du virtual host et 'proxy_pass' avec l'IP privée du serveur.
57 5 Raphaël Durand
Le deuxième bloc servira uniquement si vous voulez faire du HTTPS, il vous restera alors à renseigner les emplacements des certificats.
58 5 Raphaël Durand
59 5 Raphaël Durand
Cette méthode présente un inconvénient c'est que l'IP des visiteurs n'est pas directement visible,ce qui peut être gênant pour les blogs et les système de commentaires.
60 5 Raphaël Durand
61 1 Laurent GUERBY
h2. Documentation
62 1 Laurent GUERBY
63 1 Laurent GUERBY
TODO
64 1 Laurent GUERBY
nginx
65 1 Laurent GUERBY
apache
66 4 Laurent GUERBY
varnish
67 1 Laurent GUERBY
iptables
68 1 Laurent GUERBY
shorewall
69 1 Laurent GUERBY
netcat
70 2 Laurent GUERBY
71 2 Laurent GUERBY
h2. Bénévoles
72 2 Laurent GUERBY
73 2 Laurent GUERBY
TODO toulibre ou capitole du libre