MES pebkac
Ah les aventures formidables du bureau …
http://www.pebkac.fr/pebkac-584.html
http://www.pebkac.fr/pebkac-477.html
http://www.pebkac.fr/pebkac-510.html
http://www.pebkac.fr/pebkac-520.html
http://www.pebkac.fr/pebkac-537.html
http://www.pebkac.fr/pebkac-548.html
http://www.pebkac.fr/pebkac-578.html
Ah… le fonctionnement impeccable du réseau Completel
Aujourd’hui, comme assez souvent depuis plus de 3 mois, je vois que certaines destinations réseau ne sont pas joignables via notre fibre Completel (1700€/HT pour 20Mb symetriques tout de même).
J’appelle le support qui reconnait un incident majeur. Je demande un écrit …. que je n’obtiendrai jamais.
Mon ticket d’incident est cloturé….la raison en est ‘TT01 Aucun défaut’.
Soit…
Je rappelle, demande à parler à une personne compétente, et on m’explique alors que notre traffic passe par Nanterre et que comme nanterre rencontre un problème, et bah …. on est impactés.
Les équipes techniques basculent le traffic sur un autre routeur …. qui ne tient pas la charge…
Qui a dit que Completel était un opérateur fiable disposant de redondance d’éléments actifs sur son réseau ?
Completel, encore merci de me faire passer des journées hyper productives à appeler le 0 800 57 57 57 en me demandant quel sera mon n° de ticket.
Aller, 2009021900001….non, à cette heure c’est du genre 2009021900567…
Passerelle Haute dispo sous OpenBSD
OpenBSD c’est bien, mangez en, enfin, installez le.
Je serai presque devenu barbu.
Passons aux choses sérieuses:
Les contraintes:
- Passrelle redondante (carp)
- Firewall performant (pf)
- Connexion WAN redondante (ifstated)
- Gestion de VPN (IPSEC et/ou SSL) (racoon, openvpn)
- Alerte par mail en cas de défaillance d’un ISP (postfix)
- Partage de la table d’etat des connexions entre les 2 machines (pfsync)
Nous commençons par l’installation d’OpenBSD sur 2 machines de test (avant mise en prod sur des serveurs dignes de ce nom).
Ces machines sont des dc7700 de chez hp.
Un bug dans la gestion ACPI empeche une installation par défaut d’OpenBSD (comme linux d’ailleurs).
Au boot, nous allons donc désactiver l’acpi
boot -c
>disable acpi
>quit
Nous pouvons installer OpenBSD sans problème …. enfin presque… il est nécessaire de choisir un miroir http ou ftp pour ne pas faire échouer l’installation car le CD-Rom n’est pas très bien pris en charge.
Au reboot, à la fin de l’installation, il ne faut pas oublier de désactiver, à nouveau, l’acpi
Une fois la machine bootée nous modifions le kernel pour que cette modification soit prise en compte lors du boot
# config -e -o bsd.new /bsd
>disable acpi
>quit
#cp bsd.new /bsd && reboot
Il faudra procéder à une installation identique sur la 2eme machine.
Ces 2 machines s’appelleront fw-001 et fw-002
Les adresses ip seront:
fw-001:
192.168.0.192 pour em0
192.168.0.140 pour carp0
212.0.0.3 pour carp1
213.0.0.3 pour carp2
212.0.0.1 pour fxp0 (ISP1)
213.0.0.1 pour ste0 (ISP2)
fw-002:
192.168.0.193 pour em0
192.168.0.140 pour carp0
212.0.0.3 pour carp1
213.0.0.3 pour carp2
212.0.0.2 pour fxp0 (ISP1)
213.0.0.2 pour ste0 (ISP2)
Configurons les interfaces de fw-001:
Contenu de /etc/hostname.carp0
inet 192.168.0.140 255.255.255.0 192.168.0.255 vhid 1 carpdev em0 pass youpilesamis
Contenu de /etc/hostname.carp1
inet 212.0.0.3 255.255.255.0 212.0.0.255 vhid 2 carpdev fxp0 pass youpilesamiswan
Contenu de /etc/hostname.carp2
inet 213..0.0.3 255.255.255.0 213.0.0.255 vhid 3 carpdev ste0 pass youpilesamisnm
Contenu de /etc/hostname.fxp0
inet 212.0.0.1 255.255.255.0 212.0.0.255 description WAN-001
! route add default 212.0.0.254 -mpath
Contenu de /etc/hostname.em0
inet 192.168.0.192 255.255.255.0 192.168.0.255 description LAN-001
Contenu de /etc/hostname.pfsync0
up syncdev ste2
Contenu de /etc/hostname.ste0
inet 213.0.0.1 255.255.255.0 213.0.0.255 description WAN-001
! route add default 213.0.0.254 -mpath
Configurons les interfaces de fw-002:
Contenu de /etc/hostname.carp0
inet 192.168.0.140 255.255.255.0 192.168.0.255 vhid 1 carpdev em0 advskew 100 pass youpilesamis
Contenu de /etc/hostname.carp1
inet 212.0.0.3 255.255.255.0 212.0.0.255 vhid 2 carpdev fxp0 advskew 100 pass youpilesamiswan
Contenu de /etc/hostname.carp2
inet 213..0.0.3 255.255.255.0 213.0.0.255 vhid 3 carpdev ste0 advskew 100 pass youpilesamisnm
Contenu de /etc/hostname.fxp0
inet 212.0.0.2 255.255.255.0 212.0.0.255 description WAN-002
! route add default 212.0.0.254 -mpath
Contenu de /etc/hostname.em0
inet 192.168.0.193 255.255.255.0 192.168.0.255 description LAN-002
Contenu de /etc/hostname.pfsync0
up syncdev ste2
Contenu de /etc/hostname.ste0
inet 213.0.0.2 255.255.255.0 213.0.0.255 description WAN-002
! route add default 213.0.0.254 -mpath
Note: Il est imperatif de laisser /etc/mygate vide afin de ne pas avoir une seule et unique route vers le WAN.
Il est temps de lancer les connexions réseau:
#sh /etc/netstart
Nous pouvons pinguer l’exterieur, mais les machines de l’exterieur ne peuvent pas pinguer notre passerelle de manière fiable (probleme de reverse path).
Nous allons donc créer une conf pf afin de regler ce problème:
#Variables
#192.168.0.1 -> 254
lan_net = "192.168.0.0/24"
#Interfaces LAN + 2WAN
int_if = "em0"
ext_if1 = "fxp0"
ext_if2 = "ste0"
#Gateway wan 1
ext_gw1 = "212.0.0.254"
#Interface de synchro carp
sync_carp = "ste2"
#Loopback
loopback_if = "lo0"
#Adresses carp (flottantes)
ext_carp1 = "212.0.0.3"
ext_carp2 = "213.0.0.3"
ext_gw2 = "213.0.0.254"
admin_net = "{ VOS IP DES MACHINES POUVANT FAIRE DU SSH }"
admin_ports = "{ 22, 1022 }"
#DNS de mon LAN
dns_servers = "{ 192.168.0.1/32, 192.168.0.2/31 }"
#Ne rien filtere ni sur lo0 ni sur l'interface de synchro (cable croisé)
set skip on {$loopback_if, $sync_carp}
#On normalise les paquets entrants par le WAN (1+2)
scrub log on {$ext_if1, $ext_if2} all random-id min-ttl 254 max-mss 1452 reassemble tcp fragment reassemble
#On autorise les machines du LAN à sortir sur internet en NAT (Attention cette pratique est déconseillée pour des machines Windows)
nat on $ext_if1 from $lan_net to any -> $ext_carp1
nat on $ext_if2 from $lan_net to any -> $ext_carp2
#Policy par défaut
#On bloque tout ce qui n'a pas été autorisé
block in log from any to any
block out log from any to any
#On autorise pfsync et carp à communiquer sur les interfaces voulues
pass quick on { $sync_carp } proto pfsync keep state (no-sync)
pass on { $ext_if1 $ext_if2 $int_if } proto carp keep state
#Pour transmettre les paquets de la passerelle au LAN
pass out on $int_if from any to $lan_net
#Paquets pour la passerelle
pass in quick on $int_if from $lan_net to $int_if
#Sortie sur wan1, puis wan2, puis wan1, ...
#NAT -> Sortie
# en TCP
pass in on $int_if route-to \
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \
proto tcp from $lan_net to any flags S/SA modulate state
# en UDP + ICMP
pass in on $int_if route-to \
{ ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2) } round-robin \
proto { udp, icmp } from $lan_net to any keep state
# On autorise les requetes DNS et les connexions de la passerelle vers le LAN
pass out quick on $int_if inet proto { tcp, udp } to $dns_servers port domain keep state
pass out quick on $int_if inet proto tcp to $lan_net port ssh keep state
# Permet de pinguer la passerelle de l'exterieur sur ses 2 interfaces et avoir un chemin de retour cohérent
pass in on $ext_if1 reply-to ($ext_if1 $ext_gw1) inet proto icmp icmp-type {echoreq, echorep} keep state
pass in on $ext_if2 reply-to ($ext_if2 $ext_gw2) inet proto icmp icmp-type {echoreq, echorep} keep state
#Administration distante (SSH)
pass in on $ext_if1 reply-to ($ext_if1 $ext_gw1) inet proto tcp from $admin_net port $admin_ports keep state
pass in on $ext_if2 reply-to ($ext_if2 $ext_gw2) inet proto tcp from $admin_net port $admin_ports keep state
# Regles de sortie de la passerelle
pass out on $ext_if1 proto icmp keep state
pass out on $ext_if2 proto icmp keep state
pass out on $ext_if1 proto {tcp, udp} keep state
pass out on $ext_if2 proto {tcp, udp} keep state
Une fois ce fichier créé, il faut activer pf:
#pfctl -f /etc/pf.conf && pfctl -e
Il faudra répliquer ces opération sur la 2eme machine.
Il est important de modifier certaines valeurs de /etc/sysctl.conf
net.inet.ip.forwarding=1
net.inet.carp.allow=1 # Allow the firewall to accept CARP packets
net.inet.ip.multipath=1 # MultiPath
net.inet.carp.preempt=1 # 1=Enable carp(4) preemption
…et /etc/rc.conf.local
netd=NO
pf=YES
pflog_enable=YES
Une fois ces opérations faites et les machines rebootées, tout doit fonctionner.
C’est bien beau tout ça, mais si une connexion WAN “tombe” nous routons toujours en round robin vers les 2 connexions.
Il faut donc détecter cette défaillance.
Nous utiliserons pour cela le demon ifstated
Contenu de /etc/ifstated.conf
ext1_connectivity = '( "ping -q -c 1 -w 1 myexternal_host > /dev/null" every 3)'
ext2_connectivity = '( "ping -q -c 1 -w 1 my2ndexternal_host > /dev/null" every 3)'
state ext1ok_ext2ok {
init {
run "logger C1OK C2OK"
run "route delete default 212.0.0.254 -mpath"
run "route delete default 213.0.0.254 -mpath"
run "route add default 212.0.0.254 -mpath"
run "route add default 213.0.0.254 -mpath"
run "cd /etc/pf && ln -fs pf.conf_ok_ok pf_state.conf"
run "cd /etc/pf && ln -fs pf_nat_state.conf_ok_ok pf_nat_state.conf"
run "pfctl -f /etc/pf.conf"
}
if $ext1_connectivity && ! $ext2_connectivity {
set-state ext1ok_ext2nok
}
if ! $ext1_connectivity && $ext2_connectivity {
set-state ext1nok_ext2ok
}
if ! $ext1_connectivity && ! $ext2_connectivity {
set-state ext1nok_ext2nok
}
}
state ext1ok_ext2nok {
init {
run "logger C OK -- C N-OK"
run "route delete default 212.0.0.254 -mpath"
run "route delete default 213.0.0.254 -mpath"
run "route add default 212.0.0.254 -mpath"
run "cd /etc/pf && ln -fs pf.conf_ok_nok pf_state.conf"
run "cd /etc/pf && ln -fs pf_nat_state.conf_ok_nok pf_nat_state.conf"
run "pfctl -f /etc/pf.conf"
}
if $ext1_connectivity && $ext2_connectivity {
set-state ext1ok_ext2ok
}
if ! $ext1_connectivity && $ext2_connectivity {
set-state ext1nok_ext2ok
}
if ! $ext1_connectivity && ! $ext2_connectivity {
set-state ext1nok_ext2nok
}
}
state ext1nok_ext2ok {
init {
run "logger Completel C NOK -- C OK"
run "route delete default 212.0.0.254 -mpath"
run "route delete default 213.0.0.254 -mpath"
run "route add default 213.0.0.254 -mpath"
run "cd /etc/pf && ln -fs pf.conf_nok_ok pf_state.conf"
run "cd /etc/pf && ln -fs pf_nat_state.conf_nok_ok pf_nat_state.conf"
run "pfctl -f /etc/pf.conf"
}
if $ext1_connectivity && $ext2_connectivity {
set-state ext1ok_ext2ok
}
if $ext1_connectivity && ! $ext2_connectivity {
set-state ext1ok_ext2nok
}
if ! $ext1_connectivity && ! $ext2_connectivity {
set-state ext1nok_ext2nok
}
}
state ext1nok_ext2nok {
init {
run "logger N-OK -- N-OK"
run "route delete default 212.0.0.254 -mpath"
run "route delete default 213.0.0.254 -mpath"
run "route add default 212.0.0.254 -mpath"
run "route add default 213.0.0.254 -mpath"
run "cd /etc/pf && ln -fs pf.conf_nok_nok pf_state.conf"
run "cd /etc/pf && ln -fs pf_nat_state.conf_nok_nok pf_nat_state.conf"
run "pfctl -f /etc/pf.conf"
}
if $ext1_connectivity && $ext2_connectivity{
set-state ext1ok_ext2ok
}
if $ext1_connectivity && ! $ext2_connectivity {
set-state ext1ok_ext2nok
}
if ! $ext1_connectivity && $ext2_connectivity {
set-state ext1nok_ext2ok
}
}
Les 4 blocs state ext… correspondent aux 4 états possibles des 2 connexions:
- Up + Up
- Up + Down
- Down + Up
- Down + Down
Nous avons donc maintenant une passerelle redondante faisant de la NAT du CARP, du PFSYNC (synchronisation des tables du firewall).
Reste à ajouter les VPN, un proxy pour les postes du LAN
Mauvais développement ….? non !!!
http://www.allianceplus-vitrerie.com/admin/tri.php?table=uluru_rubriques&titre=titre_fr&ou1=&ou2=&ordre=desc&id=3
http://www.heroeslegend.com/admin/tri.php?table=uluru_rubriques&titre=titre_fr&ou1=&ou2=&ordre=asc&id=1
La 3G c’est le pieds ;)
www.3615mavie.com… je sais
Tout ça pour dire, la 3G c’est terrible en illimité dans le train.
J’ai copié de la musique et quelques films avant de partir, seulement…. je les ai placés dans /tmp, donc au boot de la machine, hop, plus de musique ni de films.
Je me dis, c’est pas si grave, j’ai une carte 3G.
Je lance deezer sans grande conviction… et là je suis agréablement surpris. Juste une coupure de quelques secondes dans le flux.
La 3G, en illimité, c’est tout bon
Bridger une interface réseau sous VirtualBox
VirtualBox est tres pratique pour lancer windows depuis une machine
linux (par exemple).
Problème: L’interface réseau est nattée, il est donc impossible
d’établir une connexion directe vers la machine invitée (ici Windows).
La solution: Bridger l’interface utilisée par VirtualBox et la carte
réseau de la machine hote (eth0 ici).
Comment faire:
donald:~# apt-get install uml-utilities bridge-utils
editer /etc/network/interfaces
La section eth0 est à présent comme suit:
auto eth0
iface eth0 inet manual
Nous avons une nouvelle interface (tap1) pour les machines virtuelles:
auto tap1
iface tap1 inet manual
pre-up tunctl -d tap0
pre-up tunctl -u lcaron
(N’oubliez pas de remplacer lcaron par votre login)
Et enfin le bridge qui lui prend l’ancienne @IP d’eth0
auto bridge0
iface bridge0 inet dhcp
post-up chmod ugo+rw /dev/net/tun
bridge-ports eth0 tap0
bridge-ageing 7200
bridge-fd 0
donald:~# /etc/init.d/networking restart
Dans les préférences de la machine virtuelle sous VirtualBox, Activer
l’adaptateur réseau, l’attacher à l’adaptateur réseau hôte, dans le nom
de l’interface, indiquer tap0
Votre machine virtuelle est à présent joignable sur une @IP de la même
classe que le système hote.
Lolo en amérique
Oui, oui, ça faisait longtemps….dans le genre 36 15 MyLife.com ![]()
Un peu comme les visiteurs, je reviens d’amérique.
Yippi.
Comme promis, les photos:
Prison Break
Michael Scofield s’engage dans une véritable lutte contre la montre : son frère Lincoln est dans le couloir de la mort, en attente de son exécution. Persuadé de son innocence mais à court de solutions, Michael décide de se faire incarcérer à son tour dans le pénitencier d’état de Fox River pour organiser leur évasion…
Weeds – Une série sans prétention au premier abord mais qui n’est finalement pas si creuse que ça.
Dans une banlieue respectable de Los Angeles, les apparences sont parfois trompeuses. Les sales petits secrets des uns et des autres vont peu à peu se faire jour. Nancy Botwin, une mère célibataire, vend de la marijuana depuis la mort subite de son mari. C’est sa façon à elle de subvenir aux besoins de sa famille…