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 18:48]
admin
technique:archives:network-design-sim [2015/11/29 21:12] (Version actuelle)
admin [Scripts]
Ligne 3: Ligne 3:
 Quelques essais d'​archi faits en octobre et novembre 2015 avec l'​outil [[https://​en.wikipedia.org/​wiki/​Graphical_Network_Simulator-3|GNS3]]. Quelques essais d'​archi faits en octobre et novembre 2015 avec l'​outil [[https://​en.wikipedia.org/​wiki/​Graphical_Network_Simulator-3|GNS3]].
  
-Hypothèses ​:+===== Hypothèses ​=====
  
   * CHD a une plage de 1024 IP publiques à distribuer aux adhérents (exemple pris 6.5.4.0/22)   * CHD a une plage de 1024 IP publiques à distribuer aux adhérents (exemple pris 6.5.4.0/22)
Ligne 9: Ligne 9:
   * CHD fait ses annonces BGP à 1 pair [[http://​www.fullsave.com/​prestations/​transit-bgp/​|géré par FullSave]]   * CHD fait ses annonces BGP à 1 pair [[http://​www.fullsave.com/​prestations/​transit-bgp/​|géré par FullSave]]
   * CHD loue 2 liens fibre vers Saint-Gaudens   * CHD loue 2 liens fibre vers Saint-Gaudens
-  * 1 routeur (RT) par arrivée fibre (Serge G. et ZAC Landes)+  * 1 routeur (RT) par arrivée fibre (av F.Mitterand ​et ZAC Landes)
   * 1 grand LAN radio (ponts transparents) avec les 2 RT et tous les adhérents   * 1 grand LAN radio (ponts transparents) avec les 2 RT et tous les adhérents
  
-Schéma : {{:​technique:​archives:​capture-simu-gns3.png?​linkonly|:​technique:​archives:​capture-simu-gns3.png}}+===== Schémas =====
  
-Problématiques à envisager ​:+{{:​technique:​archives:​capture-simu-gns3.png?​linkonly|:​technique:​archives:​capture-simu-gns3.png}} 
 + 
 +{{:​technique:​archives:​capture-simu-gns3-ports.png}} 
 +===== Problématiques à envisager ​=====
  
   * Les routeurs des adhérents TTN sont majoritairement en firmware d'​usine,​ avec une IP en 172 côté WAN   * Les routeurs des adhérents TTN sont majoritairement en firmware d'​usine,​ avec une IP en 172 côté WAN
-  * Répartition du traffic ​sur les fibres +  * Répartition du trafic ​sur les fibres 
-  * Forçage du traffic ​sur une des deux fibre si un équipement pose pb sur l'​autre lien+  * Forçage du trafic ​sur une des deux fibre si un équipement pose pb sur l'​autre lien
   * Routage dynamique ou pas   * Routage dynamique ou pas
-  * Minimiser le traffic ​du lien radio entre les routeurs à saint-gaudens en situation nominale+  * Minimiser le trafic ​du lien radio entre les routeurs à saint-gaudens en situation nominale 
 + 
 +===== Problèmes rencontrés ===== 
 + 
 +  * OSPF entre les rt_tls et les routeurs à Saint Gaudens permettrai de faire de sorte que les routes pour le trafic allant d'​internet aux adhérents mais sans tenir compte de l'​état du réseau radio et sans permettre facilement de répartition sur les fibres 
 +  * VRRP utilise mutlicast et est chatty, peu adapté sur le LAN radio (je pensais qu'on pourrait s'en servir pour que la default gateway des routeurs adt soit virtuelle) 
 + 
 +===== Solution en routage statique ===== 
 +==== Configs ==== 
 +<code text hosts> 
 +127.0.0.1 localhost 
 +192.168.90.222 rt_mitterand 
 +192.168.91.222 rt_zac 
 +6.5.4.1 rt_tls 
 +</​code>​ 
 + 
 +<code text rt_tls_network-interface>​ 
 +# The loopback network interface 
 +auto lo 
 +iface lo inet loopback 
 + up ip addr add 6.5.4.1 dev $IFACE 
 + 
 +auto eth0 
 +iface eth0 inet static 
 + # Pour les besoin de la simulation, NAT de mon aDSL, sinon rmmod iptables conseillé, cf h7 
 + address 192.168.1.42 
 + netmask 255.255.255.0 
 + gateway 192.168.1.254 
 + up sysctl -w net.ipv4.ip_forward=1 
 + up iptables -t nat -F POSTROUTING 
 + up iptables -t nat -A POSTROUTING -o $IFACE -j MASQUERADE 
 + 
 +auto eth1 
 +iface eth1 inet static 
 + address 192.168.90.223 
 + netmask 255.255.255.0 
 + up ip route add 6.5.4.0/24 via 192.168.90.222 
 + 
 +auto eth2 
 +iface eth2 inet static 
 + address 192.168.91.223 
 + netmask 255.255.255.0 
 + up ip route add 6.5.5.0/24 via 192.168.91.222 
 +</​code>​ 
 + 
 +<code text rt_mitterand_network-interface>​ 
 +# The loopback network interface 
 +auto lo 
 +iface lo inet loopback 
 + 
 +auto eth0 
 +iface eth0 inet static 
 + address 192.168.90.222 
 + netmask 255.255.255.0 
 + gateway 192.168.90.223 
 + 
 +auto eth1 
 +iface eth1 inet static 
 + address 172.16.0.1 
 + netmask 255.255.0.0 
 + 
 +#auto eth1:253 
 +iface eth1:253 inet static 
 + address 172.16.0.253 
 + netmask 255.255.0.0 
 + up /​root/​setup_routing.sh 
 + 
 +auto eth1:254 
 +iface eth1:254 inet static 
 + address 172.16.0.254 
 + netmask 255.255.0.0 
 + up /​root/​setup_routing.sh 
 +</​code>​ 
 + 
 +<code text rt_zac_network-interface>​ 
 +# The loopback network interface 
 +auto lo 
 +iface lo inet loopback 
 + 
 +auto eth0 
 +iface eth0 inet static 
 + address 192.168.91.222 
 + netmask 255.255.255.0 
 + gateway 192.168.91.223 
 + up sysctl -w net.ipv4.ip_forward=1 
 + 
 +auto eth1 
 +iface eth1 inet static 
 + address 172.16.0.2 
 + netmask 255.255.0.0 
 + 
 +auto eth1:253 
 +iface eth1:253 inet static 
 + address 172.16.0.253 
 + netmask 255.255.0.0 
 + up /​root/​setup_routing.sh 
 + 
 +#auto eth1:254 
 +iface eth1:254 inet static 
 + address 172.16.0.254 
 + netmask 255.255.0.0 
 + up /​root/​setup_routing.sh 
 +</​code>​ 
 + 
 +<code text adt1_network-interface>​ 
 +# The loopback network interface 
 +auto lo 
 +iface lo inet loopback 
 + 
 +# Simule l'​antenne en bridge 
 +auto eth0 
 +iface eth0 inet static 
 + address 172.16.10.10 
 + netmask 255.255.0.0 
 + 
 +# Simule le routeur OpenWRT avec IP publiques 
 +auto eth1 
 +iface eth1 inet static 
 + address 6.5.4.10 
 + netmask 255.255.255.255 
 + up ip route replace default via 172.16.0.254 src 6.5.4.10 dev eth0 
 + up sysctl -w net.ipv4.ip_forward=1 
 +</​code>​ 
 + 
 +<code text adt2_network-interface>​ 
 +# The loopback network interface 
 +auto lo 
 +iface lo inet loopback 
 + 
 +# Simle l'​antenne en bridge 
 +auto eth0 
 +iface eth0 inet static 
 + address 172.16.10.11 
 + netmask 255.255.0.0 
 + 
 +# Simule le routeur OpenWRT avec IP publiques 
 +auto eth1 
 +iface eth1 inet static 
 + address 6.5.5.10 
 + netmask 255.255.255.255 
 + up ip route replace default via 172.16.0.253 src 6.5.5.10 dev eth0 
 + up sysctl -w net.ipv4.ip_forward=1 
 +</​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
  
-Problèmes rencontrés :+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
  
-  * OSPF entre les rt_tls et les routeurs à Saint Gaudens permettrai de faire de sorte que les routes pour le traffic allant d'​internet aux adhérents mais sans tenir compte de l'​état du réseau radio et sans permettre facilement de répartition sur les fibres+cat - $TMP >/​root/​config_adt.sh <<​EOT 
 +#​!/​bin/​bash 
 +# set ts=4 
 +# Généré ​le $DATE
  
-"​Solution 1" :+#adt <​num> ​ <​etat> ​ <​NOM_Prenom> ​          <​ip4_nexthop> ​  <​ip4_public>​ 
 +EOT 
 +rm $TMP 
 +</​code>​
  
technique/archives/network-design-sim.1448819286.txt.gz · Dernière modification: 2015/11/29 18:48 par admin