guide:installation_serveur_agregation_connexion_2014

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
guide:installation_serveur_agregation_connexion_2014 [2014/06/09 22:13] viviguide:installation_serveur_agregation_connexion_2014 [2021/04/18 22:24] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +====== Installation serveurs agrégation connexion 2014 ======
 +
 +Mis en place en 2014.
 +
  
  
-**Installation serveurs agrégation connexion 2014** 
 ===== Introduction ===== ===== Introduction =====
  
-L'objectif de ce guide est la mise en place de serveurs permettant l'agrégation de connexions. Dans mon cas ce sera une connexion ADSL avec une connexion 4G. Elle suppose l'installation de **deux serveurs un chez moi et un sur le net**. Entre ces deux serveurs nous construirons deux liens (avec tunnel VPN) un via la 4G et un via l'ADSL.+L'objectif de ce guide est la mise en place de serveurs permettant l'agrégation de connexions. Dans mon cas ce sera une connexion ADSL avec une connexion 4G. Elle suppose l'installation de **un serveur un chez moi et un sur le net**. Entre ces deux serveurs nous construirons deux liens (avec tunnel VPN) un via la 4G et un via l'ADSL.
  
 Tout sera connecté au serveur chez moi qui fournira une connexion internet unifiée. Même combat côté internet, mon serveur installé servira de point de sortie unifié vers le net. Tout sera connecté au serveur chez moi qui fournira une connexion internet unifiée. Même combat côté internet, mon serveur installé servira de point de sortie unifié vers le net.
Ligne 14: Ligne 17:
     * Je parlerai de __**serveur maison**__//(ou maison en abrégé)//    pour celui chez moi qui fera offcie de routeur / gateway pour mon bonding     * Je parlerai de __**serveur maison**__//(ou maison en abrégé)//    pour celui chez moi qui fera offcie de routeur / gateway pour mon bonding
     * Je parlerai de __**serveur dédié**__// (ou dédié en abrégé) //      pour le serveur chez online.net qui me sert de sortie sur le réseau public internet (via le réseau online.net)     * Je parlerai de __**serveur dédié**__// (ou dédié en abrégé) //      pour le serveur chez online.net qui me sert de sortie sur le réseau public internet (via le réseau online.net)
 +
 +
  
 ====== 1. Installation du serveur dédié ====== ====== 1. Installation du serveur dédié ======
 +
 +
  
 ===== 1.1. Installation initiale du serveur ===== ===== 1.1. Installation initiale du serveur =====
Ligne 28: Ligne 35:
  
 **TODO SCREENS** **TODO SCREENS**
 +
 +
  
 ===== 1.2. Préparation de la configuration ===== ===== 1.2. Préparation de la configuration =====
Ligne 36: Ligne 45:
     * Le système de bridging //(voir // //[[https://help.ubuntu.com/community/NetworkConnectionBridge|ce lien]]////)//     * Le système de bridging //(voir // //[[https://help.ubuntu.com/community/NetworkConnectionBridge|ce lien]]////)//
     * Le module de bonding //(voir // //[[https://help.ubuntu.com/community/UbuntuBonding|ce lien]]//// et la // //[[https://www.kernel.org/doc/Documentation/networking/bonding.txt|doc officielle]]////)//     * Le module de bonding //(voir // //[[https://help.ubuntu.com/community/UbuntuBonding|ce lien]]//// et la // //[[https://www.kernel.org/doc/Documentation/networking/bonding.txt|doc officielle]]////)//
 +
 +
  
 ==== 1.2.1. Installation d'OpenVPN ==== ==== 1.2.1. Installation d'OpenVPN ====
Ligne 44: Ligne 55:
  
 Nous utiliserons OpenVPN pour monter **2 tunnels VPN**      l'un avec notre première connexion internet (la 4G) pour moi et l'autre avec notre seconde connexion internet (l'ADSL pour moi). Nous utiliserons OpenVPN pour monter **2 tunnels VPN**      l'un avec notre première connexion internet (la 4G) pour moi et l'autre avec notre seconde connexion internet (l'ADSL pour moi).
 +
 +
  
 ==== 1.2.2. Installation du système de bridging ==== ==== 1.2.2. Installation du système de bridging ====
Ligne 50: Ligne 63:
 sudo apt-get install bridge-utils sudo apt-get install bridge-utils
 </code> </code>
 +
 +
  
 ==== 1.2.3. Activation du module de bonding ==== ==== 1.2.3. Activation du module de bonding ====
Ligne 71: Ligne 86:
 rtc rtc
 bonding bonding
 +dummy
 </code> </code>
  
Ligne 78: Ligne 94:
 sudo modprobe bonding sudo modprobe bonding
 </code> </code>
 +
 +
  
 ==== 1.2.4. Activation de l'ip forwarding ==== ==== 1.2.4. Activation de l'ip forwarding ====
Ligne 92: Ligne 110:
 net.ipv4.ip_forward=1 net.ipv4.ip_forward=1
 </code> </code>
 +
 +==== 1.2.6. Activation du NAT ====
 +
 +C'est le nat qui va permettre le routage final.
 +
 +Une bonne idée est de s'appuyer sur cette méthode : https://help.ubuntu.com/community/Router
 +
 +Ce qui va donner chez moi ce genre de chose:
 +
 +<code bash>
 +nano nat.sh
 +</code>
 +
 +<code bash>
 +#
 +# Configure here your interfaces
 +#
 +EXTIF="bond0"
 +INTIF="br0"
 +
 +#
 +# Commands path
 +#
 +DEPMOD=/sbin/depmod
 +MODPROBE=/sbin/modprobe
 +
 +#
 +# General information
 +#
 +echo "[INFO][NAT] Loading NAT configuration..."
 +echo "[INFO][NAT] External Interface:  $EXTIF"
 +echo "[INFO][NAT] Internal Interface:  $INTIF"
 +
 +#
 +# Checking requested linux kernel modules
 +#
 +echo "[INFO][NAT] Verifying that all kernel modules are ok"
 +$DEPMOD -a
 +echo "[INFO][NAT] Loading module ip_tables..."
 +$MODPROBE ip_tables
 +echo "[INFO][NAT] Loading module nf_conntrack..."
 +$MODPROBE nf_conntrack
 +echo "[INFO][NAT] Loading module nf_conntrack_ftp..."
 +$MODPROBE nf_conntrack_ftp
 +echo "[INFO][NAT] Loading module nf_conntrack_irc..."
 +$MODPROBE nf_conntrack_irc
 +echo "[INFO][NAT] Loading module iptable_nat..."
 +$MODPROBE iptable_nat
 +echo "[INFO][NAT] Loading module nf_nat_ftp..."
 +$MODPROBE nf_nat_ftp
 +
 +#
 +# Enabling ip forwarding
 +#
 +echo "[INFO][NAT] Enabling forwarding..."
 +echo "1" > /proc/sys/net/ipv4/ip_forward
 +echo "[INFO][NAT] Enabling DynamicAddr..."
 +echo "1" > /proc/sys/net/ipv4/ip_dynaddr
 +
 +
 +#
 +# Setting iptables rules
 +#
 +echo "[INFO][NAT] Clearing any existing rules and setting default policy..."
 +iptables-restore <<-EOF
 +*nat
 +-A POSTROUTING -o "$EXTIF" -j MASQUERADE
 +COMMIT
 +*filter
 +:INPUT ACCEPT [0:0]
 +:FORWARD DROP [0:0]
 +:OUTPUT ACCEPT [0:0]
 +-A FORWARD -i "$EXTIF" -o "$INTIF" -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
 +-A FORWARD -i "$INTIF" -o "$EXTIF" -j ACCEPT
 +-A FORWARD -j LOG
 +COMMIT
 +EOF
 +echo "[INFO][NAT] NAT configuration loaded !"
 +</code>
 +
 +After configuring the 2 variables, save the script below as nat.sh and make it executable by doing 
 +
 +<code bash>
 +chmod a+x nat.sh
 +</code>
 +
 +Now, test the script by running as root 
 +
 +<code bash>
 +sudo sh nat.sh
 +</code>
 +
 +Investigate the messages from the console output to see if any error happened. If everything looks fine, use another host in the internal network to test if it can access the external network (presumably the Internet). A quick way to test is pinging Google public DNS from the console. 
 +
 +<code bash>
 +ping -c 3 -W 10 8.8.8.8
 +</code>
 +
 +If ping responds, make our new script bootable so we don't have to run the script every time we restart. 
 +
 +<code bash>
 +sudo mv nat.sh /etc/init.d/
 +</code>
 +
 +See : https://askubuntu.com/questions/765120/after-upgrade-to-16-04-lts-rc-local-not-executing-command
 +
 +<code bash>
 +sudo systemctl enable rc-local.service
 +</code>
 +
 +<code bash>
 +sudo nano /etc/rc.local
 +</code>
 +
 +<code>
 +# Executing nat script
 +/etc/init.d/nat.sh
 +</code>
 +
 +As a final test, restart your computer and test to see if you still have the same functionality. If so then congratulations! If not then make sure you followed the above correctly so the script is bootable. 
 +
 +
 +Mais pour mémoire le point important est celui-ci:
 +
 +<code bash>
 +iptables -A POSTROUTING -t nat -j MASQUERADE
 +</code>
 +
 +Pour ne pas perdre le NAT, lancer cette commande à chaque boot par exemple en l'incluant dans les fichiers de démarrage (déjà pris en compte dans le lien de référence ci dessus).
  
 ==== 1.2.5. Récupérer des ip / mac online.net ==== ==== 1.2.5. Récupérer des ip / mac online.net ====
Ligne 110: Ligne 257:
  
 Dernier détail important, comme online.net (et probablement n'importe quel hébergeur de dédié d'ailleurs) surveille son réseau pour éviter que n'importe quel équipement cause dessus, **//il faut également prendre une mac online.net (j'ai choisi la mac pour KVM bien que je pense que cela ne fasse pas de différence) avec l'ip failover associé au serveur maison//**. Autrement, vous vous ferez couper le réseau puis que vous aurez votre serveur maison avec une adresse mac maison (non connue de online.net) qui va trainer sur leur réseau… Dernier détail important, comme online.net (et probablement n'importe quel hébergeur de dédié d'ailleurs) surveille son réseau pour éviter que n'importe quel équipement cause dessus, **//il faut également prendre une mac online.net (j'ai choisi la mac pour KVM bien que je pense que cela ne fasse pas de différence) avec l'ip failover associé au serveur maison//**. Autrement, vous vous ferez couper le réseau puis que vous aurez votre serveur maison avec une adresse mac maison (non connue de online.net) qui va trainer sur leur réseau…
 +
 +
  
 ===== 1.3. Configurer OpenVPN ===== ===== 1.3. Configurer OpenVPN =====
 +
 +
  
 ==== 1.3.1. Introduction ==== ==== 1.3.1. Introduction ====
Ligne 118: Ligne 269:
  
 __**Note importante :**__ il est essentiel de comprendre que l'ordre de certaines opération, notamment au démarrage de la machine pourra changer la façon de préparer la configuration. Par exemple si OpenVPN démarre avant ou après le réseau ou inversement, on ne passera pas les commandes de la même manière car il y a un ordre logique. Par exemple, on utilise pas une interface VPN si elle n'est pas un minimum montée… Bref, j'indique ici **une technique qui peut ne fonctionner que dans le contexte ubuntu 14.04**. Il y a une manière de faire qui n'est pas due au hasard bien qu'il existe sans doute d'autres (meilleures peut-être) manières. J'ai juste choisi en fonction de ce que j'ai trouvé sur le net et ce que je trouvais le plus simple / pratique à gérer. __**Note importante :**__ il est essentiel de comprendre que l'ordre de certaines opération, notamment au démarrage de la machine pourra changer la façon de préparer la configuration. Par exemple si OpenVPN démarre avant ou après le réseau ou inversement, on ne passera pas les commandes de la même manière car il y a un ordre logique. Par exemple, on utilise pas une interface VPN si elle n'est pas un minimum montée… Bref, j'indique ici **une technique qui peut ne fonctionner que dans le contexte ubuntu 14.04**. Il y a une manière de faire qui n'est pas due au hasard bien qu'il existe sans doute d'autres (meilleures peut-être) manières. J'ai juste choisi en fonction de ce que j'ai trouvé sur le net et ce que je trouvais le plus simple / pratique à gérer.
 +
 +
  
 ==== 1.3.2. Préparation de la configuration ==== ==== 1.3.2. Préparation de la configuration ====
Ligne 242: Ligne 395:
     * TO_CHANGE_PORT_1 => TO_CHANGE_PORT_2     * TO_CHANGE_PORT_1 => TO_CHANGE_PORT_2
     * tap1 => tap2     * tap1 => tap2
 +
 +
  
 ==== 1.3.4. up-restart down et ipchange sont dans un bateau ==== ==== 1.3.4. up-restart down et ipchange sont dans un bateau ====
  • guide/installation_serveur_agregation_connexion_2014.1402344788.txt.gz
  • Dernière modification : 2021/04/18 22:24
  • (modification externe)