Outils pour utilisateurs

Outils du site


technique:archives:network-design-sim

Ceci est une ancienne révision du document !


Simulations réseau et essais techniques

Quelques essais d'archi faits en octobre et novembre 2015 avec l'outil GNS3.

Hypothèses

  • CHD a une plage de 1024 IP publiques à distribuer aux adhérents (exemple pris 6.5.4.0/22)
  • CHD a un machine dans le datacenter TLS00 de FullSave
  • CHD fait ses annonces BGP à 1 pair géré par FullSave
  • CHD loue 2 liens fibre vers Saint-Gaudens
  • 1 routeur (RT) par arrivée fibre (Serge G. et ZAC Landes)
  • 1 grand LAN radio (ponts transparents) avec les 2 RT et tous les adhérents

Schéma : :technique:archives:capture-simu-gns3.png

Problématiques à envisager

  • Les routeurs des adhérents TTN sont majoritairement en firmware d'usine, avec une IP en 172 côté WAN
  • Répartition du trafic sur les fibres
  • Forçage du trafic sur une des deux fibre si un équipement pose pb sur l'autre lien
  • Routage dynamique ou pas
  • 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

rt_zac
127.0.0.1
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
technique/archives/network-design-sim.1448822961.txt.gz · Dernière modification: 2015/11/29 19:49 par admin