Profiter de la fibre Orange pour les geeks

Il y a quelques semaines, j'ai emménagé dans une résidence qui a été fibrée par Orange.

Au début je pensais que cela signifiait que je pouvais continuer à utiliser Free, mais manifestement, l'accord multi-opérateurs qui est nécessaire pour cela n'a pas encore été signé. Malheureusement, cela signifie donc que pour le moment, je serai obligé de passer par le FAI qui a fait le raccordement à la fibre.

C'est pourquoi j'ai décidé de vendre mon âme à Orange (en tant que client mobile et d'ancien stagiaire chez FT R&D c'est déjà chose faite mais bon) pour profiter d'une connexion fibre à 200 Mbps en download et 50 Mbps en upload, une sacrée claque par rapport à l'ADSL2+ dont je profitais avant. Du moins, c'est ce que les différents tests de débit confirment.

Néanmoins, j'ai vu que certains ont mis en place un tunnel GRE entre Orange et un point d'accès chez OVH, ce qui pourrait également se révéler intéressant si ce FAI fait des trucs pas très nets.

L'architecture réseau prévisionnelle

Pour le moment, j'ai mon propre routeur OpenWRT, mais que je laisserai derrière la Livebox. Je sais qu'il y a la possibilité de se passer de la Livebox, mais faute de temps pour faire joujou avec des cartes FXO/FXS et faute de temps pour faire marcher la téléphonie dans ces cas-là, je ne le fais pas encore.

Réseau prévisionnel

En effet, ceux qui n'envisagent pas d'utiliser la télévision ni le téléphone Orange peuvent très simplement utiliser leur propre routeur OpenWRT en lieu et place de la Livebox. L'avantage étant que celui-ci fournit une interface de configuration par SSH et qu'on en garde le contrôle total.

Merci à ack et slash sur IRC pour leurs renseignements, en particulier à propos de l'utilisation de ses propres équipements :

11:31:22 < slash> x0r: j'ai un pfSense à la place de la livebox fibre, 
              ça marche bien, il faut juste que ça gére les VLAN et PPPoE
11:35:22 < slash> x0r: c'est le VLAN 835 pour info :)

Cependant, il est tout à fait possible d'obtenir également la télévision et le téléphone avec cette méthode, mais ce sera un peu plus compliqué et je verrai ça plus tard.

Prérequis

Avant de commencer quoi que ce soit, allez dans l'interface de configuration de la Livebox et donnez une IP fixe à votre routeur OpenWRT. Ajoutez-le également dans la DMZ pour que la Livebox forwarde tous les ports TCP/UDP de la box vers lui.

Connectivité IPv4

Contrairement à leur connectivité IPv6, l'IPv4 passe bien. Seul problème, quelque chose de particulièrement nuisible à tout projet d'auto-hébergement est le fait que les adresses IP sont dynamiques et donc susceptibles de changer d'une minute à l'autre !

Heureusement, il y a des parades tels que le DNS dynamique qui permettent de mettre à jour une entrée DNS ou deux dès qu'une adresse IP change.

Je me suis néanmoins rendu compte de quelque chose d'assez frustrant : lorsqu'on fait pointer une entrée DNS vers l'IP extérieure de la box (par exemple un chezmoi.example.com qui est ensuite DNATé vers un serveur sur lequel on autohéberge un site Web) et qu'on essaye d'accéder à ce chezmoi.example.com depuis l'intérieur via un navigateur, eh bien on obtient... le panneau d'administration de la Livebox. Autrement dit : la Livebox est infoutue de faire du NAT loopback correctement.

La seule mesure palliative à peu près propre à ce "bug" constitue alors à maintenir un DNS "split-horizon", c'est-à-dire maintenir deux examplaires de son domaine example.com. L'une est servie à l'extérieur et fait pointer chezmoi.example.com sur l'IP publique de la box. L'autre n'est accessible que de l'intérieur de son propre LAN et fait pointer chezmoi.example.com sur l'IP du (vrai) serveur à l'intérieur du LAN.

Dans mon cas, j'ai la version publique du domaine x0r.fr chez OVH, et la version privée (avec mes IP privées) du même domaine sur mon serveur sous BIND9.

Connectivité IPv6

Lorsque j'ai eu l'idée saugrenue d'appeler le support technique pour « une question d'ordre technique à propos de [leur] offre Livebox », la conversation téléphonique qui s'en est suivie se résume à cela :

— Bonjour monsieur, est-ce que vous fournissez un préfixe IPv6 à vos clients ?
— Ipévéquoi ?
— IPv6.
(bruits de clavier) Ah oui, pour des connexions à usage professionnel.
— Proposez-vous cela à des particuliers ?
— Non.
— D'accord. (clac)

Conclusion : c'est pas encore pour tout de suite, même si des rumeurs disent que ce sera pour 2014 ou 2015. J'espère juste qu'on ne me mette pas derrière un Carrier-Grade NAT d'ici là. Ceci dit, le carton de la Livebox indique qu'elle est compatible IPv6, donc ils ont au moins prévu une stack IPv6 dans le firmware.

En tout cas, il faudra donc utiliser un tunnel broker, celui de SixXS ou de Hurricane Electric.

Administration de son propre domaine DNS

Nous verrons ici tout ce qu'il reste à faire niveau DNS afin de pouvoir faire de l'auto-hébergement correctement sur sa ligne.

Mise à jour dynamique avec nsupdate

Ce qui est probablement le plus frustrant avec le fait d'avoir une adresse IP dynamique est l'impossibilité de gérer (simplement) une zone DNS ayant des entrées qui pointent vers des machines chez soi.

Heureusement, le paquet ddns-scripts fourni par OpenWRT permet d'utiliser simplement son routeur OpenWRT comme client DynDNS.

Comme le registrar de ma zone DNS est OVH, il me suffisait simplement d'ajouter un champ DYNHOST dans ma zone. Il a fallu que je désactive le "mode avancé" pour ce faire, cependant. Dans le champ "Adresse IP", j'ai saisi l'IP de mon ancienne Freebox pour forcer la première mise à jour.

Ensuite, sur le routeur OpenWRT, rien de très compliqué :

# opkg install ddns-scripts
# vi /etc/config/ddns

Le fichier de config que j'ai utilisé pour OVH est le suivant :

config service "myddns"
        option enabled          "1"
        option interface        "eth0.2"

        option service_name     "ovh.com"
        option domain           "dyn.example.com"
        option username         "example.com-monusername"
        option password         "monpassword"

        option force_interval   "24"
        option force_unit       "hours"
        option check_interval   "10"
        option check_unit       "minutes"
        option retry_interval   "60"
        option retry_unit       "seconds"

        option ip_source        "web"
        option ip_url           "http://checkip.dyndns.com/"

Cette config permet de mettre à jour un domaine dyn.example.com. Comme ça, tous les noms qui devraient pointer vers l'adresse IP de la Livebox suffisent d'être modifiés pour qu'ils deviennent des CNAME ("alias") vers ce dyn.example.com et on n'aura pas besoin de refaire cette configuration cinquante mille fois.

Il y a néanmoins un cas où il m'a fallu rajouter une entrée quasiment identique à ce que j'ai montré : lorsqu'on héberge un serveur mail derrière sa box. Du coup j'ai aussi une autre section config service dans /etc/config/ddns qui sert à mettre à jour un mx.example.com. En effet, Les entrées DNS des serveurs mail devant impérativement être de type A ou AAAA et n'ont donc pas le droit d'être des CNAME.

Ensuite, deux solutions pour démarrer le service. Comme cela ne se fait pas via un initscript mais que ce service démarre automatiquement lors du démarrage de l'interface associée, on a le choix entre rebooter (mais ça, c'est pour les faibles) ou démarrer manuellement à l'aide de la commande :

# ACTION=ifup INTERFACE=eth0.2 /sbin/hotplug-call iface

Pour que les champs DynHost fonctionnent correctement, il m'a néanmoins fallu désactiver de manière permanente le mode avancé (celui où on modifie la zone DNS dans un éditeur de texte, comme un vrai). Un léger inconvénient mais un mal nécessaire pour que les mises à jour fonctionnent.

E-mails sortants : le relais d'Orange à moitié caché

Comme j'avais configuré mon Postfix pour qu'il envoie des mails via le relais mail de Free, je ne peux désormais plus envoyer de mails vers l'extérieur sans un brin de configuration.

Avant de commencer, comme mon serveur mail est un MX principal et que son IP va changer, j'ai viré la clause proxy_interfaces (qui ne servait à rien de toute façon parce que mon serveur n'est pas un MX secondaire).

Ensuite, il suffit d'utiliser le relais SMTP d'Orange. En gros, voici ce que j'ai désormais dans le main.cf de Postfix:

relayhost                       = [193.252.22.72]:587

smtp_sasl_auth_enable           = yes
smtp_sasl_password_maps         = hash:/etc/postfix/sasl_passwd

smtp_tls_CAfile                 = /etc/ssl/postfix/gmail_cert.pem
smtp_tls_cert_file              = /etc/ssl/postfix/server.crt
smtp_tls_key_file               = /etc/ssl/postfix/server.pem
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_tls_session_cache
smtp_use_tls                    = yes
smtp_sasl_security_options      = noanonymous
smtp_sasl_tls_security_options  = noanonymous
smtp_tls_note_starttls_offer    = yes
tls_random_source               = dev:/dev/urandom
smtp_tls_scert_verifydepth      = 5
smtp_tls_enforce_peername       = no
smtp_tls_CApath                 = /etc/ssl/certs

Pas mal de trucs datent encore d'une vieille config où j'utilisais Gmail comme relais, et je n'ai pas eu le temps de tester si ces éléments-là sont encore pertinents. (surtout que bon, comme ils refilent tout à la NSA, je ne devrais plus leur faire confiance... mais je suis peut-être mauvaise langue.)

Ne pas oublier de créer le fichier /etc/postfix/sasl_passwd qui contient les identifiants messagerie. Le login est la partie avant @orange.com. Donc si Orange vous a donné une adresse e-mail truc.bidule@orange.com et que le password est supersecret, le fichier contiendra donc :

[193.252.22.72]:587     truc.bidule:supersecret

Enfin, ne pas oublier non plus d'exécuter la commande

# postmap /etc/postfix/sasl_passwd

pour que Postfix tienne compte du password. Un chmod 600 sur ce fichier, ainsi que le sasl_passwd.db produit par la commande postmap(1), n'est probablement pas une mauvaise idée non plus. Rechargez la configuration de Postfix puis testez l'envoi d'un petit mail vers une adresse "extérieure" à votre domaine, genre une adresse Gmail ou Yahoo!.

Remarquez aussi qu'on n'a pas donné de noms DNS pour le relais SMTP d'Orange. Son petit nom est en réalité smtp-msa.orange.fr mais ne peut être résolu qu'en utilisant les DNS d'Orange. Je n'ai pas encore regardé ce que valent les DNS d'Orange, mais comme je ne les utilise pas (encore), je suis obligé de mettre son adresse IPv4 à la place.

Adieu le reverse DNS customisé

Probablement la feature qui me manque le plus depuis que je n'ai plus Free. Hélas, ce reverse DNS n'est pas paramétrable. Sur IRC, il vous faudra donc clamer haut et fort malgré vous le fait d'être sur une connexion Orange. Au lieu d'avoir

--> Poiral (Poiral@mon.super.rever.se) has joined #truc

vous aurez donc :

--> Poiral (Poiral@AMontsouris-puis-plein-de-chiffres.abo.wanadoo.fr) has joined #truc

Au moins, si vous faites tourner un oidentd sur votre bécane, vous n'aurez pas le ~ devant le hostmask.

Conclusion

Après quelques semaines d'utilisation, je trouve que la fibre optique est une sacrée bouffée d'air frais, en particulier pour YouTube où j'ai limite l'impression d'être en réseau local. Avoir 50 Mbps de débit en upload ouvre énormément de possibilités d'auto-hébergement également. C'est juste un peu dommage qu'Orange ne soit pas le fournisseur d'accès le plus "geek-friendly", mais pour le moment il fait largement l'affaire. Pour le reste, on verra bien.

Posté par x0r à 5 commentaires • Tags : orange demenagement free fibre ftth cablage

Commentaires

Poster un commentaire

#1 — Jugurta

Salut Marc,

Je tiens à te remercier pour ton tuto. Moi aussi, je suis passé chez Orange. Par contre la LiveBox 2 n'est pas terrible, mon but est m'en passer complétement sans doute avec un switch avec les VLAN 83x. Je ais essayer de sniffer tout ça :)

Le seul problème est le Multicast pour la TV.

#2 — DAVID

bonjour, je suis passé chez orange fibre (avant j'étais chez free), ayant un nas synology ds213, je ne peux plus accéder en externe, ez internet de synology n'arrive pas à me faire cela automatiquement alors que chez free ca roulait comme sur du papier à musique...là je dois tout me faire à la main, mais selon les tutos vu sur le net pour ddns cela ne fonctionne pas non plus. ce que je désire c'est juste accéder à mon nas, mes vidéos rien de plus snif... j'ai supprimé l'ancien profil synology qui était affecté à free, pour en recréer une nouvelle. pourriez vous juste me dire quoi faire sur la live box d'orange svp. juste quoi configurer. merci

#3 — Guenneguez

Bonjour,

Perso, j'ai désactivé le service DHCP de la livebox. J'ai activé celui de synology. J'ai activé le package serveur DNS sur Synology. Dans la conf DHCP du synology, j'ai mis comme serveur DNS son IP. Sur le serveur DNS du synology, j'ai dit de se référer au DNS de la livebox et sur mon domaine, j'ai dit qu'il était master.

A+ Thomas

#4 — Nicolas Steinmetz

Bien vu le coup du DNS local/privé vs public ; ça va me résoudre mes problèmes d'auto-hébergement :)

S'il y a moyen de mettre son routeur pfsense en lieu et place de la livebox, je serais plus qu'intéressé de savoir comment tout en bénéficiant de la TV+Téléphone !

Merci, Nicolas

#5 — x0r

En effet. Je trouve juste que le fait de maintenir deux zones DNS avec sensiblement le même contenu relève plus du hack qu'une solution durable, mais à moins de passer à IPv6, je vois mal faire autrement dans la plupart des situations.

Pas mal de recherches ont été faites depuis ce post à propos de la TV et du téléphone : https://lafibre.info/remplacer-livebox/remplacer-livebox-le-telephone/

Pour la téléphonie, il est possible d'utiliser un siproxd modifié afin de s'enregistrer directement sur le proxy en amont : http://x0r.fr/blog/36 et http://x0r.fr/blog/38

Poster un commentaire