mercredi, août 19, 2015

Groupe Cazuol se moque d'un client.

Coup de gueule ce matin.


Ma femme et moi, sommes passé par le groupe Cazuol. Une entreprise générale de taille moyenne puisque le groupe ne semble être constitué que de deux personnes.


Lors de notre 1ère prise de contact, Ludovic DUPONT (linkedin, facebook) nous a laissé une bonne impression, il avait en quelques minutes redéfini nos plans initiaux en nous incitant à utiliser plus d'espace pour notre projet. Il avait proposé d'utiliser la buanderie pour en faire une salle-de-bain/buanderie. Dès lors, il nous était possible d'agrandir l'espace de vie de 15m² habitable. Un véritable coup de baguette magique pour nous.


Contrairement aux autres entreprises, ils avaient effectués un devis non-facturé pour ce type d'habitations en mettant des prix à la louche pour les différents points. Ils nous avaient assurés que ce devis laissait tout à fait possible des modifications sans qu'il y ait à chaque fois des plus-values. Que nous pourrions choisir des éléments différents pour autant que ça reste dans la même gamme de prix. Au final, bien qu'un peu hésitant, nous avons décidé de partir avec eux.


Tout avance avec du retard et le chantier ne suit pas du tout l'échéancier. Et nous nous sommes mis à pensé que ce retard n'était, au final, pas si important que ça. Mais lorsque la point de la cuisine est entré en force, nous nous sommes rendu compte que les délais largement en retard, nous mettait en difficulté pour pouvoir bien effectué la cuisine. Cette cuisine reste pour nous, comme un point noir dans cette construction. Nous avons à plus d'une reprise eu l'impression d'être mis devant le fait accompli.


La prise en charge ne nous a pas laissé la possibilité de choisir/voir n'importe quels éléments de la cuisine. Incapacité de voir les matériaux (en photo ou en vrai), de manipuler les tiroirs, de choisir parmi une nuance de couleur, de sélectionner un type de poignée. Rien… Nada ! Nous n'avons eu que des relations par email: au maximum trois emails avec des plans spécifiant les dimensions, rien de très détaillé. Nada de chez nada: le désert quoi !


Au final, alors que nous demandions de changer le plateau stratifié par du granit la facture s'est allongée de 7000.- pour 2.2m². Cela rend quand même le m² à ~3000CHF. Bon il vous diront que nous avions aussi demandé d'ajouter une crédence en verre, mais je ne pense pas que 2m² de verre coûte si cher (pour info, à Annecy un cuisiniste m'a dit que la crédence valait 180€ le m²). C'est ce que j'appelle du vol. Soyons clair le prix entre le salaire suisse et français diffère, certe, mais le devis express que j'avais demandé me revenait à ~1500€ à Annecy (alors que 1€ = 1CHF). Cette différence de 5'500CHF, monte le prix de 1'500 à 7'000 CHF:


 _____                    __                   __ __ 
|  |  |.--.--.    .-----.|  |.--.--.-----.    |  |  |
|__    |_   _|    |  _  ||  ||  |  |__ --|    |__|__|
   |__||__.__|    |   __||__||_____|_____|    |__|__|
                  |__|                               






v
Après moulte discussion, leur demandant expressément de nous mettre en contact avec le cuisiniste/menuisier pour voir les matériaux, les couleurs, nous nous sommes dit que nous ferions notre cuisine ailleurs, car le cuisiniste d'Annecy: l'atelier d'Arcadie avec qui nous avions déjà dans le passé travaillé nous a fait un devis à 10'000€ tout compris, coloris, marbre, crédence ainsi qu'un meuble à provision en plus. Il a été rapide, 1 journée pour tout faire, il a été professionnel car il a fait devis mentionnant un prix pour chaque point. En plus de cela, il nous a fait une vue en perspective. Le rêve quoi !


Dès lors, avec d'un côté un devis à 20'000CHF (15'000 de la cuisine de base + 7000 de plus value - 2000CHF d'appareil non acheté) et un devis à 10'000 tout inclu et un meuble à provision de plus, on se retrouve avec un bilan assez intéressant.

    10'000 pour une cuisine en bossant avec des pros, à l'écoute.
    20'000 pour une cuisine ou on ne peut rien choisir, un meuble en moins et ou votre interlocuteur fait monté la pression.

Nous avons écrit au M. Ludovic DUPONT, notre 1er interlocuteur du groupe-Cazuol (de 2 personnes :)) et leur avons proposé de retirer du contrat l'exécution de la cuisine en leur proposant 1'000CHF de dédommagement (largement trop selon moi) et ils nous ont répondu:


Attention: on passe en mode gros foutage de gueule (désolé d'être vulgaire, mais ça fait du bien):

    Ce lundi matin, nous avons reçu de votre part un email nous disant que les plans de la cuisine était accepté, dès lors nous nous sommes déjà engagé avec notre menuisier, et les frais s'élève à 5'000 CHF.

WOUaaaaAAAaaaaaA aaH,…………… keuf, keuf, keu.


Bon, un conseil… ne passer pas par cette entreprise ! Euh non, je veux dire par ce groupe de deux !


Tout ceci, alors que ce même lundi à midi nous leur disions que les plans n'était pas accepté. Il est vrai, qu'au vu de la non-gestion de l'échéancier, de leurs réponses tardives à nos questions, ils avaient ce lundi matin mis le turbo et avait en moins de 3 heures engagés plus de 5000CHF. C'est pas facile à comprendre, et ça fait mal.


Bon, c'est une bande de voleur. Je reste convaincu que la meilleur façon de ne pas avoir d'ennui, c'est de ne jamais rien signé avec qui que ce soit tant que tout les détails ne sont pas levés. C'est chiant, c'est lourd mais au moins on a pas de surprise.


C'est vrai quoi... pourquoi se donnerait-il du mal pour bien faire leur boulot, d'être à l'écoute, de faire des moins-values puisqu'ils ont déjà le client captif avec un contrat pourri.


À bonne entendeur !

mardi, septembre 18, 2012

IPv6 concept, Outils, Exemple & Diagnostic de pannes au sein de l'université de Genève

IPv6 et l'UniGE

Nous sommes encore en phase de test, prière de ne monter pour l'instant que des serveurs de test en IPv6. 

Structure IPv6

de 32 bits à 128 bits (129.194.16.54 à 2001:620:600:100:8484:d172:25ab:585c)

Avant tout, télécharger le cheat sheet sur ipv6, imprimez-le et affichez-le!

bon la couleuvre est pas facile à passer.

décortiquons notre adresse IPv6 en trois partie: le préfixe global de routage, l'identifiant de sous-réseau, l'identifiant d'interface
  • le préfixe global de routage (global routing prefix) est composé des 3 premiers champs (2001:620:600:1000:8484:d172:25ab:585c)
    • 2001:620:600:... correspond au préfixe qui identifie le réseau public de l'uni: visible depuis l'extérieur
    • fd69:620:600:... correspond au préfixe qui identifie le réseau privé de l'uni.
  • l'identifiant de sous-réseau (subnet id) qui correspond au 4ème champs (2001:620:600:1000:8484:d172:25ab:585c)
    • A l'uni, l'identifiant de sous-réseau des adresses IPv6 est construit depuis celui en IPv4
    • 1000 est déterminé de la manière suivante: de l'adresse 129.194.16.54/22, on cherche la première adresse de ce sous réseau: 129.194.16.0. Puis on retire 129.194 qui correspond au préfixe de l'uni. Dès lors il ne nous que: 16.00. Puis on retranscrit 16.00 en hexa soit 10 pour 16 et 00 pour 00.
      • un autre exemple pour illustré le calul: l'observatoire de Genève 129.194.64.78/30 la première ip est 129.194.64.0 donc la partie sous-réseau vaudra: 40 pour 64 et 00 pour 00, soit 2001:620:600:4000::/64
  • l'identifiant d'interface est composé des 4 derniers champs (2001:620:600:1000:8484:d172:25ab:585c)
    • le nombre d'ip disponible sur 4 champs est de (16⁴)⁴ ou 2¹⁶ soit 1.844674407×10¹⁹.
    • Privacy Extension" (RFC 4941) permet d'avoir une adresse ip qui change au cours du temps
      • Pour les PC de bureau, nous recommandons fortement d'activer l'extension IPv6 "Privacy Extension" (RFC 4941), qui est activé par défaut sur la ubuntu 12.04 à travers le fichier (/etc/sysctl.d/10-ipv6-privacy.conf). En activant cette extension vous aurez sur votre machine autant une adresse IPv6 construite depuis votre mac adresse qu'une aléatoire. Mais avec cette activation, le noyau choisira par défaut l'aléatoire :).  Pour mieux comprendre vos interfaces, préférez ip à ifconfig en tapant : "ip addr show"
      • Pour les serveurs, il faut la désactiver avec
cat > /etc/sysctl.d/60-ipv6-privacy-disabled.conf << EOF
# IPv6 Privacy Extensions (RFC 4941)
# ---
# This rules overwrite the one in /etc/sysctl.d/10-ipv6-privacy.conf
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.default.use_tempaddr = 0
EOF
      • Dès lors, l'identifiant d'interface est construit depuis l'adresse mac (RFC 4291 Appendix A)
    •  Au vu du nombre d'adresse IP à disposition pour un sous réseau 2¹⁶
      • le risque de collision que deux machines prennent la même adresse est très très...très improbable.
      • la recherche d'une machine sur le réseau en scannant une à une les adresses devient impossible

 

Écriture d'une adresse IPv6

  • Une adresse IPv6 est construit de 8 champs, chacun séparé par un ":"
  • Chaque champs est composé de 4 chiffres hexadécimal
    • les 0 sur la gauche peuvent être omis
      • 0034 peut être écrit 34
      • 000f en f
      • 0100 en 100
  • si certains champs sont composés de 0000 on peut les contracter une seul fois par un "::"
    • 2001:0000:0000:1000:0000:0000:0000:0001 peut s'écrire 2001:0:0:620:600:1000::1
    • 2001:0000:0000:1000:0000:0000:0000:0001 ne peut pas s'écrire 2001::1000:0:0:0:1
    • 2001:0000:0000:1000:0000:0000:0000:0001 ne peut pas s'écrire 2001::1000::1 car il ne peut y avoir qu'un seul "::"

 

Type d'adresse IPv6 (IPv6 address Scopes)

Les adresses IPv6 sont découpées en morceau pour permettre certaine spécificité: (Une jolie référence à ce sujet)
  • address ip non-spécifiée : utilisé comme route par défaut et pour les soliciations du routeur, ex: 0.0.0.0 en IPv6
    • ::/128
  • adresse de boucle (localhost) : ex: 127.0.0.1 en IPv4
    • ::1/128
  • lien locale : adresse autoconfigurée et non-routable utilisé sur le LAN qui permet d'atteindre toutes les machines sur le même réseau
    • fe80::/10
  • site locale (sous-réseau privé de l'uni)
    • fd69:620:600::/48
  • sous-réseau public de l'uni
    • 2001:620:600::/48
  • 2000::/3 : adresse ip globale
  • ff00::/8 multicast

 

Configuration

Poste de Travail

Pour les machines de bureau, rien est à faire puisque le NetworkManager prends la main et que IPv6 y est activé par défaut.

Suis-je en IPv6

Pour savoir si la machine sur laquelle, nous nous trouvons est correctement configuré en IPv6, il suffit d'aller sur http://test-ipv6.com/

Serveur Public

 Dans ce cas, il faut activer ipv6 dans /etc/network/interfaces, à l'aide de
iface eth0 inet6 auto

dont voici un example
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback
#iface lo inet6 loopback

# The primary network interface
auto eth0
iface eth0 inet6 auto
iface eth0 inet static
 address 129.194.11.5
 netmask 255.255.255.0
 network 129.194.11.0
 broadcast 129.194.11.255
 gateway 129.194.11.1
 # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers     129.194.4.6 129.194.8.7 129.194.4.32
 dns-search unige.ch

puis on lit l'adresse crée automatiquement
ip addr show | sed 's|^|  # |'
  # 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
  #     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  #     inet 127.0.0.1/8 scope host lo
  #     inet6 ::1/128 scope host 
  #        valid_lft forever preferred_lft forever
  # 3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
  #     link/ether 00:50:56:90:22:f4 brd ff:ff:ff:ff:ff:ff
  #     inet 129.194.11.5/24 brd 129.194.11.255 scope global eth0
  #     inet6 fd69:620:600:b00:250:56ff:fe90:22f4/64 scope global dynamic 
  #        valid_lft 2591873sec preferred_lft 604673sec
  #     inet6 2001:620:600:b00:250:56ff:fe90:22f4/64 scope global dynamic 
  #        valid_lft 2591873sec preferred_lft 604673sec
  #     inet6 fe80::250:56ff:fe90:22f4/64 scope link 
  #        valid_lft forever preferred_lft forever

et on voit que nous avons deux adresses ipv6  une en global (publique, commençant par 2001:), une autre en site-local (privé, commençant en fd69:), plus un lien-local commençant en (fe80)

Serveur Privé

Dans ce cas, il faut prendre une adresse privée, et pour éviter des collisions on la construit à l'aide de EUI-64. Pour ne pas se fatiguer à la calculer, on passe temporairement la machine en ip publique (comme ci-dessus), et on récupère l'ip privée:
  # ...
  #     inet6 fd69:620:600:b00:250:56ff:feb6:778a/64 scope global dynamic 
  # ...

puis on l'insère dans interfaces en spécifiant aussi le gateway, qui est le premier élémenet dans le sous-reseau fd69:620:600:b00::1
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
 address 10.194.11.4
 netmask 255.255.255.0
 network 10.194.11.0
 broadcast 10.194.11.255
 gateway 10.194.11.1
 # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers     129.194.4.6 129.194.8.7 129.194.4.32
 dns-search unige.ch
iface eth0 inet6 static
 address fd69:620:600:b00:250:56ff:feb6:778a
        netmask 64
        gateway fd69:620:600:b00::1
# The primary network interface

Route par défaut (Neighbor Discovery "ND")

En IPv6 la configuration de la route par défaut ce fait par le Neighbor Discovery. Pour cela aucune configuration sur le poste n'est nécessaire, cela s'effectue automatiquement.

DHCP or not DHCP

L'impression que je retire de mon utilisation d'IPv6 est que le DHCP n'est plus utile pour les raisons suivantes sur les postes de travail:
  • "Privacy Extension" (RFC 4941) qui protège la sphère privée des internautes
  • Pas de risques de collision d'adresse ip au vu du nombre d'ip possible par sous réseau 2¹⁶ ou 1.844674407×10¹⁹
  • Plus besoin d'informer le client sur la route par défaut. Ceci est dorénavant opéré par Neighbor Discovery)
  • Les adresse NTP définie de base à l'adresse
    • ff0X::101, dans notre cas,  ff05::101
      • plus d'info sur le cheat sheet section :  Well Known Multicast Addresses
  • DNS offert bientôt par le "Router Advertisement" pour les DNS décrit par la (RFC 6106)

Outils

certains outils s'utilisent d'une autre manière pour tenir compte d'IPv6

netstat

Ne pas oublier de mettre l'option -W pour wide afin de ne pas tronquer la sortie de netstat. Car sinon vos adresses ip seront coupées

ip (au lieu de ifconfig)

D'après ce que j'ai lu, il faut préférer la commande ip à ifconfig. Quelques reférences (ifconfig vs ip, man ip)

route

ajouter l'option -6

ip6tables (au lieu d'iptables)

Je vous présente le jeux d'instructions que je mets dans:
  •  /etc/network/if-pre-up.diptables-up
attention de bien filtrer toutes les adresses ips pour les serveurs. Il faut filtrer autant les fd69:, les 2001: que les fd80:
#!/bin/bash

# IPv4 ---------------------------------------------

# Flush all
/sbin/iptables -P INPUT  ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -F
/sbin/iptables -X

# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0`
/sbin/iptables -A INPUT -i lo -j ACCEPT 
/sbin/iptables -A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable

# Accepts all established connections
/sbin/iptables -A INPUT  -m state --state RELATED,ESTABLISHED -j ACCEPT 
/sbin/iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

# Accepts all outbound connections
/sbin/iptables -A OUTPUT -m state --state NEW -j ACCEPT 

# allow ping 
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 

# BEGIN SPECIFIC

# allow web
/sbin/iptables -A INPUT -p tcp --dport 80  -m state --state NEW -j ACCEPT -m comment --comment "http"
/sbin/iptables -A INPUT -p tcp --dport 443  -m state --state NEW -j ACCEPT -m comment --comment "https"

# allow ssh for people
/sbin/iptables -A INPUT -s 129.194.16.54 -p tcp --dport 22 -m state --state NEW -m comment --comment "ssh Cedric.Briner" -j ACCEPT
/sbin/iptables -A INPUT -s 10.194.17.10 -p tcp --dport 22 -m state --state NEW -m comment --comment "ssh Dominique.Petipierre\'" -j ACCEPT
/sbin/iptables -A INPUT -s 10.194.17.9  -p tcp --dport 22 -m state --state NEW -m comment --comment "ssh Dominique.Petipierre.2" -j ACCEPT
/sbin/iptables -A INPUT -s 129.194.17.66 -p tcp --dport 22 -m state --state NEW -m comment --comment "ssh Pierre.Pasche" -j ACCEPT

# allow hobbit
/sbin/iptables -A INPUT -s 10.0.0.0/8 -p tcp -m tcp --dport 1984 -m state --state NEW -j ACCEPT -m comment --comment "hobbit"
/sbin/iptables -A INPUT -s 129.194.0.0/16 -p tcp -m tcp --dport 1984 -m state --state NEW -j ACCEPT -m comment --comment "hobbit"

# END SPECIFIC


# enforce the policy
/sbin/iptables -P INPUT   DROP
/sbin/iptables -P OUTPUT  DROP
/sbin/iptables -P FORWARD DROP


# IPv6 ---------------------------------------------

# Flush all
/sbin/ip6tables -P INPUT  ACCEPT
/sbin/ip6tables -P OUTPUT ACCEPT
/sbin/ip6tables -F
/sbin/ip6tables -X

# allow all stream related to an accepted session
/sbin/ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/ip6tables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# allow all new connection from this host
/sbin/ip6tables -A OUTPUT -m state --state NEW -j ACCEPT

# Disable processing of any RH0 packet
# Which could allow a ping-pong of packets
# http://www.sixxs.net/wiki/IPv6_Firewalling
/sbin/ip6tables -A INPUT -m rt   --rt-type 0 -j DROP
/sbin/ip6tables -A OUTPUT -m rt  --rt-type 0 -j DROP
/sbin/ip6tables -A FORWARD -m rt --rt-type 0 -j DROP

# Allow anything on the loopback
/sbin/ip6tables -A INPUT -i lo -j ACCEPT
/sbin/ip6tables -A OUTPUT -o lo -j ACCEPT

# Allow Link-Local addresses
/sbin/ip6tables -A INPUT -s fe80::/10 -j ACCEPT
/sbin/ip6tables -A OUTPUT -s fe80::/10 -j ACCEPT

# Allow ICMPv6
/sbin/ip6tables -A INPUT -p icmpv6 -j ACCEPT
/sbin/ip6tables -A OUTPUT -p icmpv6 -j ACCEPT

# BEGIN SPECIFIC

# allow web
/sbin/ip6tables -A INPUT -p tcp --dport 80   -m state --state NEW -j ACCEPT -m comment --comment "http"
/sbin/ip6tables -A INPUT -p tcp --dport 443  -m state --state NEW -j ACCEPT -m comment --comment "https"

# allow hobbit
/sbin/ip6tables -A INPUT -s fd69:620:600::/32 -p tcp -m tcp --dport 1984 -m state --state NEW -j ACCEPT -m comment --comment "hobbit"
/sbin/ip6tables -A INPUT -s 2001:620:600::/32 -p tcp -m tcp --dport 1984 -m state --state NEW -j ACCEPT -m comment --comment "hobbit"

# allow ssh for people
/sbin/ip6tables -A INPUT -p tcp -s 2001:620:600:1000::/64 --dport 22  -m state --state NEW -j ACCEPT -m comment --comment "ssh"

# END SPECIFIC

# logging
#-A INPUT -p ipv6-icmp -j LOG --log-prefix "Dropped ICMPv6 Packets"

# enforce the policy
/sbin/ip6tables -P INPUT   DROP
/sbin/ip6tables -P OUTPUT  DROP
/sbin/ip6tables -P FORWARD DROP
  • /etc/network/if-post-down.d/iptables-down

#!/bin/bash

# IPv4 ---------------------------------------------

/sbin/iptables -P INPUT  ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -F
/sbin/iptables -X

# IPv6 ---------------------------------------------

/sbin/ip6tables -P INPUT  ACCEPT
/sbin/ip6tables -P OUTPUT ACCEPT
/sbin/ip6tables -F
/sbin/ip6tables -X

ping6 (au lieu de ping)

pour "pinger" www.google.com
root@unixmaster1204:~# ping6 2a00:1450:4001:c01::67
  # PING 2a00:1450:4001:c01::67(2a00:1450:4001:c01::67) 56 data bytes
  # 64 bytes from 2a00:1450:4001:c01::67: icmp_seq=1 ttl=52 time=17.4 ms
  # 64 bytes from 2a00:1450:4001:c01::67: icmp_seq=2 ttl=52 time=16.5 ms
  # ^C
  # --- 2a00:1450:4001:c01::67 ping statistics ---
  # 2 packets transmitted, 2 received, 0% packet loss, time 1001ms
  # rtt min/avg/max/mdev = 16.549/17.024/17.499/0.475 ms

dig (au lieu de nslookup)

dig est un outil qui permet d'interroger les DNS. Je vous conseille de lire le howto de madboa qui en vaut la peine.

les adresse IPv6 ne sont pas des A records mais des AAAA records.
dig AAAA www.google.com +short
  # www.l.google.com.
  # 2a00:1450:4001:c01::67

 firefox

pour insérer une ipv6 il faut mettre des crochets [ ipv6 ] exemple avec google, dès lors pour atteindre 2a00:1450:4001:c01::67 dans firefox, il faut mettre dans la barre d'adresse
[2a00:1450:4001:c01::67]

Diagnostic de pannes

Route par défaut opérationnel ?

Afin de pouvoir sortir de notre sous-réseau LAN, il faut avoir une route par défaut, et cette dernière doit-être accessible. Pour ce faire, faites les tests suivants :
  • ping du localhost
ping6 ::1
  # PING ::1(::1) 56 data bytes
  # 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.035 ms
  # 64 bytes from ::1: icmp_seq=2 ttl=64 time=0.043 ms
  # ^C
  # --- ::1 ping statistics ---
  # 2 packets transmitted, 2 received, 0% packet loss, time 999ms
  # rtt min/avg/max/mdev = 0.035/0.039/0.043/0.004 ms
  • ping de notre IP sur le lien-local
# trouvons notre adresse IP en lien-locale
ip addr show | grep fe80
  # inet6 fe80::250:56ff:fe90:22f4/64 scope link 

ping6 fe80::250:56ff:fe90:22f4
  #  connect: Invalid argument

# en spécifiant l'interface, tout marche
ping6 -I eth0  fe80::250:56ff:fe90:22f4
  # PING fe80::250:56ff:fe90:22f4(fe80::250:56ff:fe90:22f4) from fe80::250:56ff:fe90:22f4 eth0: 56 data bytes
  # 64 bytes from fe80::250:56ff:fe90:22f4: icmp_seq=1 ttl=64 time=0.030 ms
  # 64 bytes from fe80::250:56ff:fe90:22f4: icmp_seq=2 ttl=64 time=0.052 ms
  # ^C
  # --- fe80::250:56ff:fe90:22f4 ping statistics ---
  # 2 packets transmitted, 2 received, 0% packet loss, time 999ms
  # rtt min/avg/max/mdev = 0.030/0.041/0.052/0.011 ms
  • ping sur notre route par défaut
# trouvons notre route par défaut
route -n6
  # Kernel IPv6 routing table
  # Destination                    Next Hop                   Flag Met Ref Use If
  # 2001:620:600:b00::/64          ::                         UAe  256 0     0 eth0
  # fd69:620:600:b00::/64          ::                         UAe  256 0     0 eth0
  # fe80::/64                      ::                         U    256 0     0 eth0
#X# ::/0                           fe80::5:73ff:fea0:96       UGDAe 1024 0     0 eth0
  # ::/0                           ::                         !n   -1  1  2477 lo
  # ::1/128                        ::                         Un   0   1   174 lo
  # 2001:620:600:b00:250:56ff:fe90:22f4/128 ::                         Un   0   11383623 lo
  # fd69:620:600:b00:250:56ff:fe90:22f4/128 ::                         Un   0   1     0 lo
  # fe80::250:56ff:fe90:22f4/128   ::                         Un   0   1  5669 lo
  # ff00::/8                       ::                         U    256 0     0 eth0
  # ::/0                           ::                         !n   -1  1  2477 lo

# notre route est celle avec le X en préfixe. On peut aussi la trouver avec un grep
route -n6 | grep G
  # ::/0                           fe80::5:73ff:fea0:96       UGDAe 1024 0     0 eth0

# pingons notre route par défaut
ping6 -I eth0 fe80::5:73ff:fea0:96
  # PING fe80::5:73ff:fea0:96(fe80::5:73ff:fea0:96) from fe80::250:56ff:fe90:22f4 eth0: 56 data bytes
  # 64 bytes from fe80::5:73ff:fea0:96: icmp_seq=1 ttl=64 time=0.454 ms
  # 64 bytes from fe80::5:73ff:fea0:96: icmp_seq=2 ttl=64 time=0.572 ms
  # ^C
  # --- fe80::5:73ff:fea0:96 ping statistics ---
  # 2 packets transmitted, 2 received, 0% packet loss, time 999ms
  # rtt min/avg/max/mdev = 0.454/0.513/0.572/0.059 ms

A-t-on une résolution de nom délivrant des adresse en IPv6

  •  Pour les impatients:
host www.google.com
  # www.google.com is an alias for www.l.google.com.
  # www.l.google.com has address 173.194.32.81
  # www.l.google.com has address 173.194.32.83
  # www.l.google.com has address 173.194.32.84
  # www.l.google.com has address 173.194.32.82
  # www.l.google.com has address 173.194.32.80
  # www.l.google.com has IPv6 address 2a00:1450:4001:c01::63
On remarque que host délivre autant des adresses IPv4 que IPv6.

De plus, je recommande plutôt d'utiliser
getent hosts www.google.com
2a00:1450:4001:c01::63 www.l.google.com www.google.com

qui tiendra compte de la configuration de votre système (/etc/hosts, /etc/nsswitch.conf) pour vous afficher la même réponse retournée à vos applications. Car il arrive parfois que le DNS répondent correctement, mais que la configuration de votre machine fait qu'il ne tiendra pas compte de cette réponse (p.ex: le nom est redéfini dans /etc/hosts)
  •  Pour les vrais :)
  la résolution d'adresse se fait par un Serveur de Nom de Domaine (Domain Name Server  ou DNS). On ne doit pas être nécessairement en IPv6 pour effectuer la résolution de nom offrant des adresses IPv6. Car les serveurs de noms de domaines utilisent un autre type d'enregistrement (record) pour stocker les adresses IPv6 qui se nomment AAAA (quadruple A) au lieu de A. Jouons avec dig (l'outil remplaçant nslookup et dont voici une superbe doc très axées exemple
# une requête pour connaître l'enregistrement A (IPv4) de www.google.com
dig A www.google.com +short
  # www.l.google.com.
  # 173.194.32.84
  # 173.194.32.81
  # 173.194.32.83
  # 173.194.32.80
  # 173.194.32.82


# une requête pour connaître l'enregistrement AAAA (IPv6) de www.google.com
dig AAAA www.google.com +short
  # www.l.google.com.
  # 2a00:1450:4001:c01::69

A-t-on une adresse IP global ?

A l'aide d'une adresse IP global nous pouvons nous connecter sur des sites publics en IPv6 (p.ex: www.google.com)

mercredi, juillet 11, 2012

un CLI pour VirtualBox


Vagrant est une API qui se met autour de VirtualBox. Ainsi, au lieu de cliquer partout pour créer une machine, on a simplement à écrire une configuration et à -gentiment- demander à vagrant de nous créer une VirtualBox

VirtualBox c'est bien!
Vagrant sur VirtualBox, c'est encore mieux :O

Dès lors, on peut créer des machines "kleenex" à la volée, définir par script la taille du disque dur, parfait pour faire du test.

Tu veux le tester... euh tu dois le tester.
Va suivre la doc sur leur site, qui se constitue à peine de 3 ou 4 lignes de commandes.

mercredi, juillet 04, 2012

Télécharger des vidéos depuis ARTE+7 en mode "GEEK"

Bon, pour le coup, il va falloir être un peu geek. Alors relevons-nous les manches et mettons les mains dans le camboui!

Un ami me donne le pointeur sur la vidéo arte : L'emballage qui tue.
http://videos.arte.tv/fr/videos/l_emballage_qui_tue-6771996.html


J'affiche la page web en mettant l'url ci-dessus, et je demande à voir le code source de cette page CTRL+U sous Firefox, et là je me balade en cherchant au fil du document quelque chose qui parle de vidéo:
<div id="flashContent"><!--[if !IE]><![endif]--></div>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0"
width="720" height="406" id="player" align="middle">
<param name="allowScriptAccess" value="always"/>
<param name="allowFullScreen" value="true"/>
<param name="quality" value="high"/>
<param name="wmode" value="transparent"/>
<param name="movie" value="http://videos.arte.tv/blob/web/i18n/view/player_23-3188338-data-4993762.swf?admin=false&amp;autoPlay=true&amp;configFileUrl=http%3A%2F%2Fvideos.arte.tv%2Fcae%2Fstatic%2Fflash%2Fplayer%2Fconfig.xml&amp;embed=false&amp;lang=fr&amp;localizedPathUrl=http%3A%2F%2Fvideos.arte.tv%2Fcae%2Fstatic%2Fflash%2Fplayer%2F&amp;mode=prod&amp;videoId=6771996&amp;videorefFileUrl=http%3A%2F%2Fvideos.arte.tv%2Ffr%2Fdo_delegate%2Fvideos%2Fl_emballage_qui_tue-6771996%2Cview%2CasPlayerXml.xml"/>
<embed src="http://videos.arte.tv/blob/web/i18n/view/player_23-3188338-data-4993762.swf?admin=false&amp;autoPlay=true&amp;configFileUrl=http%3A%2F%2Fvideos.arte.tv%2Fcae%2Fstatic%2Fflash%2Fplayer%2Fconfig.xml&amp;embed=false&amp;lang=fr&amp;localizedPathUrl=http%3A%2F%2Fvideos.arte.tv%2Fcae%2Fstatic%2Fflash%2Fplayer%2F&amp;mode=prod&amp;videoId=6771996&amp;videorefFileUrl=http%3A%2F%2Fvideos.arte.tv%2Ffr%2Fdo_delegate%2Fvideos%2Fl_emballage_qui_tue-6771996%2Cview%2CasPlayerXml.xml"
width="720" height="406" allowFullScreen="true" name="playerArte" quality="high"
allowScriptAccess="always" pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash">
</embed>
</object>
</noscript>
</div>

Ah voilà qui semble intéressant:
<param name="movie" value="http://videos.arte.tv/blob/web/i18n/view/player_23-3188338-data-4993762.swf?admin=false&amp;autoPlay=true&amp;configFileUrl=http%3A%2F%2Fvideos.arte.tv%2Fcae%2Fstatic%2Fflash%2Fplayer%2Fconfig.xml&amp;embed=false&amp;lang=fr&amp;localizedPathUrl=http%3A%2F%2Fvideos.arte.tv%2Fcae%2Fstatic%2Fflash%2Fplayer%2F&amp;mode=prod&amp;videoId=6771996&amp;videorefFileUrl=http%3A%2F%2Fvideos.arte.tv%2Ffr%2Fdo_delegate%2Fvideos%2Fl_emballage_qui_tue-6771996%2Cview%2CasPlayerXml.xml"/>

dans lequel on lit par paramètres, il faut couper à chaque ";":
http://videos.arte.tv/blob/web/i18n/view/player_23-3188338-data-4993762.swf?admin=false&amp;
autoPlay=true&amp;
configFileUrl=http%3A%2F%2Fvideos.arte.tv%2Fcae%2Fstatic%2Fflash%2Fplayer%2Fconfig.xml&amp;
embed=false&amp;
lang=fr&amp;
localizedPathUrl=http%3A%2F%2Fvideos.arte.tv%2Fcae%2Fstatic%2Fflash%2Fplayer%2F&amp;
mode=prod&amp;
videoId=6771996&amp;
videorefFileUrl=http%3A%2F%2Fvideos.arte.tv%2Ffr%2Fdo_delegate%2Fvideos%2Fl_emballage_qui_tue-6771996%2Cview%2CasPlayerXml.xml

Maintenant, vu qu'on connaît tous l'encodage des urls, on transforme le videorefFileUrl:
http://videos.arte.tv/fr/do_delegate/videos/l_emballage_qui_tue-6771996%2Cview%2CasPlayerXml.xml
 
et mettons cette url dans notre firefox et nous voyons
<videoref id="6771996">
  <url>
    http://videos.arte.tv/fr/videos/l_emballage_qui_tue-6771996.html
  </url>
  <videos>
    <video lang="fr" ref="http://videos.arte.tv/fr/do_delegate/videos/l_emballage_qui_tue-6771998,view,strmVideoAsPlayerXml.xml"/>
    <video lang="de" ref="http://videos.arte.tv/de/do_delegate/videos/hauptsache_haltbar-6772040,view,strmVideoAsPlayerXml.xml"/>
  </videos>
  <subtitles>
  </subtitles>
  <services>
    <service name="fullscreen" allow="true" allowEmbedded="true"/><service name="share" allow="true" allowEmbedded="true"/>
    <service name="embed" allow="true" allowEmbedded="true"/><service name="info" allow="false" allowEmbedded="true"/>
  </services>
  <embed>
    <disallow>defrancisation.com</disallow>
  </embed>
</videoref>
 
  
Copions-Collons l'url sous "video lang="fr" ref="http://.... dans firefox.
http://videos.arte.tv/fr/do_delegate/videos/l_emballage_qui_tue-6771998,view,strmVideoAsPlayerXml.xml

et nous voyons après quelques lignes:
 <urls>
  <url quality="sd">
    rtmp://artestras.fcod.llnwd.net/a3903/o35/mp4:geo/videothek/ALL/arteprod/A7_SGT_ENC_06_042206-000-A_PG_MQ_FR?h=f87a034e9f9702a0bbc70b9eb48facfc
  </url>
  <url quality="hd">
    rtmp://artestras.fcod.llnwd.net/a3903/o35/mp4:geo/videothek/ALL/arteprod/A7_SGT_ENC_08_042206-000-A_PG_HQ_FR?h=985993171957266179184767ab785940
  </url>
</urls>
Youhou, on dirait bien le lien de la vidéo en qualité HD!
rtmp://artestras.fcod.llnwd.net/a3903/o35/mp4:geo/videothek/ALL/arteprod/A7_SGT_ENC_08_042206-000-A_PG_HQ_FR?h=985993171957266179184767ab785940

Et là on sort, l'outil VLC :)
vlc >> media > Convert/Save >> Network > URL > Convert/Save
rtmp://artestras.fcod.llnwd.net/a3903/o35/mp4:geo/videothek/ALL/arteprod/A7_SGT_ENC_08_042206-000-A_PG_HQ_FR?h=985993171957266179184767ab785940
Et pour le reste... remplissez par vous même en choisissant pour le format vidéo:
  • "Vidéo - H.264 + AAC (MP4)" si vous voulez pouvoir lire votre truc sur n'importe quoi
  • "Vidéo - VP80 + Vortbis (Webm)" si vous êtes un vrai! Attention l'encodage sera beaucoup plus lent.

vendredi, juin 22, 2012

Suis-je fiché sur Internet par des groupes commerciaux ? Qui me suit réellement ? Quel en est l'ampleur ?

merci à Edoardo Basilico, qui m'a fait pointer vers cette vidéo de 6min qui vaut la lecture:



puis si vous vous en sentez le cœur, tester le greffon firefox collusion

Une fois l'installation faite vous devrez cliquer sur l'icone rond en bas à droite.



vendredi, mai 25, 2012

Transit de Vénus pour les lèves tôt

C'est toujours sympa de ce faire un truc qui change de l'ordinaire avec les gamins. Il est vrai que de se lever à 5h du mat. n'est pas de tout repos... mais bon, ce n'est pas tout les ans non plus. La prochaine fois sera en 2117, pas sûr que j'y sois!

Un transit s'opère lorsqu'une planète passe entre nous et le soleil. Dès lors, vous aurez l'occasion de voir un point noir se balader au milieu du Soleil. Mais pour ça vous devez vous munir de lunette spéciale ou d'un solarscope sinon vous finirez à la clinique pour un problème oculaire sérieux.

Pour ma part, j'irai à la Barillette ou au Salève, je dois avoir une dizaine de lunettes à disposition et 3 sièges libres dans ma voiture. Départ le mercredi 6 juin à 05h15.

Ça vous tente ?

Pour bien comprendre le sujet :

lundi, mars 05, 2012

I've created a few weeks ago a script which will enable you to easily package TSM 6.3 for Ubuntu 12.04 (aka Precise Pangolin)


The source is on github.

features are:
  • init scripts for "dsmc sched"
  • create launchers for dsmj (GUI) and dsmc
  • dsmc and dsmj can work with usual user (not only root)
  • not anymore dependencies to oracle-java (thanks to IBM)