Outils pour utilisateurs

Outils du site


technique:archives:network-design-sim

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
technique:archives:network-design-sim [2015/11/29 20:10]
admin [Schémas]
technique:archives:network-design-sim [2015/11/29 21:12] (Version actuelle)
admin [Scripts]
Ligne 31: Ligne 31:
  
 ===== Solution en routage statique ===== ===== Solution en routage statique =====
 +==== Configs ====
 <code text hosts> <code text hosts>
 127.0.0.1 localhost 127.0.0.1 localhost
Ligne 37: Ligne 37:
 192.168.91.222 rt_zac 192.168.91.222 rt_zac
 6.5.4.1 rt_tls 6.5.4.1 rt_tls
-</​code>​ 
- 
-<code bash setup_routing.sh>​ 
-#!/bin/bash 
- 
-function adt() { 
- adt_num=$1 
- adt_etat=$2 
- adt_nom=$3 
- ip4_nexthop=$4 
- ip4_public=$5 
- dev=eth1 
- 
- echo "​$ip4_public ${adt_nom}.pub4 adt$adt_num"​ >> /​etc/​hosts.adt 
- echo "​$ip4_nexthop ${adt_nom}.gw4 hop$adt_num"​ >> /​etc/​hosts.adt 
- 
- case $adt_etat in 
- actif) 
- regex="​^$ip4_public via [0-9.]+ dev $dev" 
- ip route get $ip4_public | grep -qE "​$regex"​ 
- res=$? 
- out=$(ip route replace $ip4_public via $ip4_nexthop dev $dev) 
- res2=$? 
- if [ $res2 -eq 0 ]; then 
- if [ $res -eq 1 ]; then 
- echo "​Accès ajouté : adt $*" 
- fi 
- else 
- echo -n "​ERREUR : adt $adt_num $adt_etat $adt_nom : " 
- echo "pb remplacement route : '​$out'"​ 
- fi 
- ;; 
- resilie) 
- out=$(ip route delete $ip4_public 2>&​1) 
-    ​ res=$?​  
- case $res in 
- 0) echo "​Accès supprimé : adt $*" ;; 
- 2) : ;; # Route non trouvée, routage déjà supprimé 
- *) echo -n "​ERREUR : adt $adt_num $adt_etat $adt_nom : " 
-    echo "pb suppression route : '​$out'"​ ;; 
- esac 
- ;; 
- *) 
- echo -n "​ERREUR : adt $adt_num $adt_etat $adt_nom : " 
- echo "'​$adt_etat'​ n'est pas un état reconnu"​ 
- ;; 
- esac 
-} 
- 
-function main() { 
- > /​etc/​hosts.adt 
- sysctl -w net.ipv4.ip_forward=1 
- source /​root/​config_adt.sh 
- cat /​etc/​hosts.system /​etc/​hosts.adt > /etc/hosts 
-} 
- 
-main 
-</​code>​ 
- 
-<code bash config_adt.sh>​ 
-#!/bin/bash 
-# set ts=4 
- 
-# Routage internet -> antenne ou routeur > IP publique ADT 
-# Le sens inverse est trivial : default gateway vers FullSave 
- 
-#adt <num> <​etat> ​  <​NOM_Prenom> ​           <​ip4_nexthop> ​  <​ip4_public>​ 
-adt 0001    actif   ​Dxxxxx_Laurent ​        ​172.16.10.10 ​   6.5.4.10 ​   ​ 
-adt 0002    actif   ​Pxxxxx_Daniel ​         172.16.10.11 ​   6.5.5.10 ​   ​ 
 </​code>​ </​code>​
  
Ligne 235: Ligne 166:
  up sysctl -w net.ipv4.ip_forward=1  up sysctl -w net.ipv4.ip_forward=1
 </​code>​ </​code>​
 +
 +==== Scripts ====
 +<code bash setup_routing.sh>​
 +#!/bin/bash
 +
 +function adt() {
 + adt_num=$1
 + adt_etat=$2
 + adt_nom=$3
 + ip4_nexthop=$4
 + ip4_public=$5
 + dev=eth1
 + SELF=$(basename $0)
 + INFO="​logger -p notice -t $SELF --"
 + CRIT="​logger -p crit -t $SELF --"
 +
 + echo "​$ip4_public ${adt_nom}.pub4 adt$adt_num"​ >> /​etc/​hosts.adt
 + echo "​$ip4_nexthop ${adt_nom}.gw4 hop$adt_num"​ >> /​etc/​hosts.adt
 +
 + case $adt_etat in
 + actif)
 + regex="​^$ip4_public via [0-9.]+ dev $dev"
 + ip route get $ip4_public | grep -qE "​$regex"​
 + res=$?
 + out=$(ip route replace $ip4_public via $ip4_nexthop dev $dev)
 + res2=$?
 + if [ $res2 -eq 0 ]; then
 + if [ $res -eq 1 ]; then
 + $INFO "​Accès ajouté : adt $*"
 + fi
 + else
 + $CRIT "​ERREUR : adt $adt_num $adt_etat $adt_nom : pb remplacement route : '​$out'"​
 + fi
 + ;;
 + resilie)
 + out=$(ip route delete $ip4_public 2>&​1)
 +    ​ res=$?​
 + case $res in
 + 0) $INFO "​Accès supprimé : adt $*" ;;
 + 2) : ;; # Route non trouvée, routage déjà supprimé
 + *) $CRIT "​ERREUR : adt $adt_num $adt_etat $adt_nom : pb suppression route : '​$out'"​ ;;
 + esac
 + ;;
 + *)
 + $CRIT "​ERREUR : adt $adt_num $adt_etat $adt_nom : '​$adt_etat'​ n'est pas un état reconnu"​
 + ;;
 + esac
 +}
 +
 +function main() {
 + > /​etc/​hosts.adt
 + sysctl -w net.ipv4.ip_forward=1
 + source /​root/​config_adt.sh
 + cat /​etc/​hosts.system /​etc/​hosts.adt > /etc/hosts
 +}
 +
 +main
 +</​code>​
 +
 +<code bash config_adt.sh>​
 +#!/bin/bash
 +# set ts=4
 +# Généré le 2015-11-29 21:​08:​50+01:​00
 +
 +#adt <​num> ​ <​etat> ​ <​NOM_Prenom> ​          <​ip4_nexthop> ​  <​ip4_public>​
 +adt 0001    actif   ​Dxxxxx_Laurent ​        ​172.16.10.10 ​   6.5.4.10
 +adt 0002    actif   ​Pxxxxx_Daniel ​         172.16.10.11 ​   6.5.5.10
 +#[...]
 +</​code>​
 +
 +<code bash config_adt_gen.sh>​
 +#!/bin/bash
 +SELF=$(basename $0)
 +INFO="​logger -p notice -t $SELF --"
 +CRIT="​logger -p crit -t $SELF --"
 +
 +TMP=$(mktemp)
 +ssh automated@chd.sx sudo mysql --defaults-file=/​etc/​mysql/​debian.cnf -BN -D gestion <<<​ '​SELECT * FROM v_config_adt;'​ >$TMP
 +
 +if [ $? -eq 0 -a -s $TMP ]
 +then $INFO "Base de donnée lue avec succès"​
 +else $CRIT "Echec de récupération des données depuis la base de données"​
 + exit 2
 +fi
 +
 +cat - $TMP >/​root/​config_adt.sh <<EOT
 +#!/bin/bash
 +# set ts=4
 +# Généré le $DATE
 +
 +#adt <​num> ​ <​etat> ​ <​NOM_Prenom> ​          <​ip4_nexthop> ​  <​ip4_public>​
 +EOT
 +rm $TMP
 +</​code>​
 +
technique/archives/network-design-sim.1448824239.txt.gz · Dernière modification: 2015/11/29 20:10 par admin