Infrastructure réseau du CNF de Rabat avant son déménagement du 15/06/2009
1. Description générale
Le CNF de Rabat est équipé d'une Liaison Spécialisée (Maroc Telecom) de 256 Kbps et d'une liaison ADSL (Maroc Telecom) de 20 Mbps.
- Le réseau est constitué de trois serveurs :
- - Un serveur Services Communs (DNS, Messagerie, Web, FTP, Listes)
- - Un serveur Pare-Feu (SNAT, DHCP, DNS interne, RPV)
- - Un serveur de formations sur le réseau 192.168.1.0/24 (Web, Samba, CMS, FTP, Acolad, Modle, Zope)
Les réseaux intranet (10.131.1.0/24), Formations/Centre de Ressources (192.168.1.0/24) et Accès Libre/Espace Linux (192.168.2.0/24) sont étanches les uns par rapport aux autres. Seules certaines machines du réseau intranet (10.131.1.0/24) communiquent avec les deux autres réseaux (supervision du Responsable).
2. Plan d'adressage
Le CNF de Rabat dispose d'une plage 194.204.226.64/27 divisée en deux DMZs :
- - 194.204.226.64/28 correspondant aux principaux services du CNF
- - 194.204.226.80/28 correspondant aux serveurs pare-feu/routeur et aux serveurs temporaires (formations)
Le Pare-feu assure le lien entre la DMZ 194.204.226.80/28 et la DMZ 194.204.226.64/28
|P|----(DMZ Services Communs 194.204.226.64/28) |A| |R|----(LAN Rabat 10.131.1.0/24) ----(ADSL)--[ROUTEUR/MODEM ADSL]---(DMZ 192.168.3.0/30)--|E|----(LAN Formations/Centre de Ressources 192.168.1.0/24) |-|----(LAN Accès Libre/Espace Linux 192.168.2.0/24) ----(LS)----[ROUTEUR CISCO]---(DMZ 194.204.226.80/28)----|F| |E|----(RPV Paris 10.72.0.0/24) |U|----(RPV Montréal 10.36.0.0/24)
Configuration de routage du Routeur 194.204.22.81
- ip route 0.0.0.0 0.0.0.0 194.204.193.185
- ip route 194.204.226.80 255.255.255.240 Ethernet0
- ip route 194.204.226.64 255.255.255.240 194.204.226.82
Hôtes serveurs |
IP |
Gateway |
Système |
Commentaire |
n/a |
194.204.226.81 |
n/a |
n/a |
Routeur Cisco |
n/a |
192.168.3.2 |
n/a |
n/a |
Modem Routeur ADSL |
cnf.ma.auf.org |
194.204.226.82 |
194.204.226.81 |
Debian Etch Linux 2.6.18-6-k7 |
Pare-feu, SNAT, DHCP, DNS interne, RPV |
visio.ma.auf.org |
194.204.226.83 |
194.204.226.81 |
n/a |
Système de Visio Conférence |
rabat.ma.auf.org |
194.204.226.66 |
194.204.226.65 |
Debian Etch Linux 2.6.18-6-k7 |
DNS, Messagerie, Web, FTP, Listes, VOIP |
casablanca.ma.auf |
192.168.1.4 |
192.168.1.1 |
Debian Etch Linux 2.6.18-6-k7 |
Web, Samba, CMS, FTP, Moodle, Zope |
Clients |
Nb |
Systèmes d'exploitation |
Commentaire |
Salle FOAD |
17 |
Dual boot Windows XP / Ubuntu Hardy Heron 8.04 |
mise en service 2005 |
Salle formation |
17 |
Ubuntu Hardy Heron 8.04 |
mise en service 2005 |
Espace libre accès |
10 |
Dual boot Windows XP Home / Ubuntu Hardy Heron 8.04 |
mise en service 2005 |
Espace centre de ressources |
8 |
Ubuntu Hardy Heron 8.04 |
mise en service 2005 |
Espace Linux |
3 |
Ubuntu Hardy Heron 8.04 |
mise en service 2005 |
Personnels CNF |
3 |
Dual boot Windows XP / Ubuntu Hardy Heron 8.04 |
mise en service 2005 |
3. Equilibre des charges
L'objectif est de répartir le trafic Internet sur les deux lignes de manière transparente et automatique.
Les services dirigés vers l'ADSL sont principalement : HTTP, HTTPS, FTP. Les autres sevices seront redirigés vers la LS
Deux tables de routage avec (2 "default route") en sortie du Pare-Feu, l'une sur l'ADSL et l'autre sur la LS.
Prérequis : IPROUTE + IPTABLES
1.Configuration IPROUTE
- - Dans le fichier /etc/iproute2/rt_tables, on ajoute une table ADSL identifier ici par "la table 1"
# reserved values 255 local 254 main 253 default 0 unspec 1 ADSL
- - On créer une route secondaire indentifier par le numéro (ou le nom) de table secondaire et dans laquelle on intègre l'ensemble des routes de la table primaire "main". On ajoute ensuite la "Default route" pour la "table 1"
ip route show table main | grep -Ev ^default \ while read ROUTE ; do ip route add table 1 $ROUTE done ip route add table 1 default via 192.168.3.2
- - On contrôle si les routes sont prises en considération par le serveur :
# Controle du routage ADSL cnf:/# ip route show table 1 192.168.3.0/30 dev eth5 proto kernel scope link src 192.168.3.1 194.204.226.80/28 dev eth0 proto kernel scope link src 194.204.226.82 194.204.226.64/28 dev eth4 proto kernel scope link src 194.204.226.65 192.168.2.0/24 dev eth3 proto kernel scope link src 192.168.2.1 192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.1 10.131.1.0/24 dev eth1 proto kernel scope link src 10.131.1.1 default via 192.168.3.2 dev eth5
2. Configuration IPTABLES
- - On marque les paquets qui correspondent aux services choisis Extrait des règles du Pare-Feu Rabat (exemple : 1 seul réseau LAN)
### HTTP iptables -A PREROUTING -t mangle -i eth2 -s $LOCALNET2 -p tcp --dport 80 -j MARK --set-mark 1 ### HTTPs iptables -A PREROUTING -t mangle -i eth2 -s $LOCALNET2 -p tcp --dport 443 -j MARK --set-mark 1 ### FORWARD iptables -t nat -A POSTROUTING -o eth5 -s $LOCALNET2 -j SNAT --to-source 192.168.3.1 iptables -A FORWARD -i ! eth5 -o eth5 -s "$LOCALNET3" -j ACCEPT
Ne pas oublier de lancer un "iptables -t mangle -F" si les règles du pare-feu sont lancées successivement.
3. Application de la règle de marquage
- - On ajoute la règle correspondant au marquage d'Iptables
cnf:/# ip rule add fwmark 1 table 1
- - On controle que la règle soit bien appliquée
cnf:/# ip rule show 0: from all lookup 255 32765: from all fwmark 0x1 lookup ADSL 32766: from all lookup main 32767: from all lookup default
Les requêtes HTTP; HTTPs et FTP sont par conséquent redirigées vers l'ADSL (<20Mbps). Les autres requêtes circulent par la LS (256Kbps).
4. Un petit script permettant d'activer ou de désactiver la redirection du trafic (demande a être amélioré)
- - Le mieux est de configurer le script ci-après (adsl) afin qu'il se lance au démarrage du serveur.
update-rc.d adsl defaults".
- - En cas de rupture du lien ADSL, il est possible de rediriger tout le trafic sur la LS par la simple commande :
cnf:/# /etc/init.d/adsl stop
# Script contenant les règles pour activer la ligne ADSL GW="192.168.3.2" case "$1" in start) ################################### # Controle de l'existence de la table if grep -q ADSL /etc/iproute2/rt_tables then echo "La table ADSL est deja identifiee." else echo "1 ADSL" >> /etc/iproute2/rt_tables fi # fin #################################### # On s'assure qu'il n'y a pas déjà de route ADSL echo "Flush de la route ADSL" ip route flush table ADSL # On s'assure qu'il n'y a pas déjà de règle ADSL sur le routage echo "Flush de la regle ADSL" ip rule del table ADSL # On créer une route secondaire indentifier par le numéro (ou le nom) de table secondaire # et dans laquelle on intègre l'ensemble des routes de la table primaire "main". ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table ADSL $ROUTE ; done # On ajoute la "default route" dans la table ADSL ip route add table ADSL default via $GW #On controle l'existence du routage ADSL echo "Liste des routes de la tables ADSL:" ip route show table ADSL ## On ajoute la règle correspondant au marquage d'Iptables ip rule add fwmark 0x1 table ADSL # On controle que la règle est bien appliqué echo "Lite des regles appliquees sur le routage :" ip rule show # On vide le traffic en cache ip route flush cache echo "LA ROUTE ADSL EST ACTIVEE." ;; stop) echo "On désactive la route et les regles ADSL:" #echo -n "Flush de la route ADSL" ip route flush table ADSL #echo -n "Flush de la regle ADSL" ip route flush cache ip rule del table ADSL echo "LA ROUTE ADSL EST DESACTIVEE." ;; restart) $0 stop /bin/sleep 2 $0 start ;; *) echo "Usage: /etc/init.d/adsl {start|stop|restart}" exit 1 ;; esac