Chères lectrices, chers lecteurs,
voici quelques informations techniques utiles pour quiconque souhaiterait utiliser un autre routeur que la bbox fournie.
Comme depuis la fin d'année 2018, tout ce qui est nécessaire pour l'usager passe sur le
VLAN 100.
Mon cas se base sur l'utilisation d'un routeur F@st 5330b-r1 et d'une Miami 4k (Brooklyn) et d'un bridge (les plus fortunés utiliseront un tap) pour savoir ce qui sort de la bbox.
- Séquence de démarrage
- Remarques générales
- Accès internet
- TV
- Replays
- Téléphone
- Bugs et limitations
- Anti-rejeu
- FAQ
1. Séquence de démarrageLe routeur suit l'ordre de séquence suivant à la mise sous tension (grandes lignes):
- Requêtes ICMP v6 (RA et MLD v2 notamment) sur les VLAN 100 (le VLAN usager), VLAN 10 (maintenance des équipements réseaux ?) et sans VLAN
- Requête DHCP v6 (PD)
- Requête DHCP puis obtention du bail sur le VLAN 100
- Requête DNS sur le serveur TR-069 aCS.boUYgueSboX.fR et level3.com
- Requêtes http sur 67.26.133.252 puis https sur le serveur TR-069 194.158.119.72
- Requêtes DNS sur www.ams-ix.net www.tatacommunications.com ASBCIDF11.fai.bouygtel.net (de façon générale le registraire SIP)
- Initiation session SIP (cf point 6)
- Requêtes DNS sur www.neotelecoms.com (laule)
DNS www.google.fr
DNS www.lyonix.net
DNS www.leaseweb.com
DNS www.bouyguestelecom.fr webiad.bouyguesbox.fr
DNS www.apple.com
DNS www.facebook.com
DNS www.leboncoin.fr
DNS acs.bouyguesbox.fr
DNS webiad.bouyguesbox.fr
DNS wikipedia.org
DNS sharepoint.com
DNS connectivitycheck.gstatic.com 194.158.122.15
DNS connectivitycheck.android.com 172.217.22.142
DNS clientservices.googleapis.com
DNS secure.bouygtel.fr
DNS… - Plein de ping
- Encore du DHCPv6
- Plein de requêtes http(s) sans doute pour s'assurer que la connexion est bonne
J'exclus pour le moment les requêtes IGMP nécessaires pour la STB.
2. Remarques générales802.1pLa première chose remarquée est que le routeur utilise
IEEE 802.1p pour prioriser son trafic ce qui est normal puisque des flux multicast (y compris IGMP) et RTP pour la voix vont transiter sur le réseau.
Toutefois, certaines choses sont plus difficiles à comprendre. Certaines requêtes http(s) sont p6 en sortie de la bbox (cf capture jointe), les requêtes DNS en sortie vers les DNS Bouygues sont p6 alors que les requêtes vers d'autres serveurs sont p0 !
De manière générale:
- p6 pour les requêtes DHCP(v6)
- p5 en sortie et entrée pour IGMP
- p6 pour ICMP en sortie lorsque les paquets sont générés par la box, p0 dans les autres cas
- les flux multicast arrivent p5
- p5 pour les sessions SIP et RTP
- ...
DHCPContrairement à Orange, Bouygues ne discrimine pas les requêtes DHCP qui ne sont pas marquées p6.
TR-069Le serveur en charge de la maintenance et du déploiement des firmwares est 194.158.119.72
Il se connecte sur les ports 51005 (bbox) et 52005 (Miami via une règle UPnP), la bbox le contacte via https à chaque démarrage.
PasserelleBouygues utilise
VRRP pour annoncer ses passerelles. Je ne sais pas quelle est l'influence au niveau du routage (unicast et multicast).
3. Accès internetPourvu que le bail précédent a été correctement libéré, une simple requête DHCP non priorisée sur le VLAN 100 permet d'obtenir une adresse IP routable.
Sans libération propre du bail précédent, il faudra cloner l'adresse MAC de la bbox ou attendre au maximum 1 heure.
4. TVCe qui est obligatoire:
- marquage p5 des paquets IGMP via la cos (interface WAN)
- possibilité de forcer IGMPv2
- un proxy IGMP qui ne traîne pas de bugs impactant (notamment un bon support des VLAN) le bon fonctionnement du multicastComme déjà plus ou moins énoncé les flux sont distribué par multicast (224.0.0.0/4 en destination) et les routes sont annoncées via IGMP.
Les préfixes distribuant les flux sur les ports 8200 ou 49152:
- 89.86.96.0/24
- 89.86.97.0/24
- 176.165.8.0/24 (pas encore vu chez moi, annonce ByTel mobile ?)
- 193.251.97.0/24
Peut-être que les préfixes peuvent être plus réduits (à voir).
Les ports en entrée sont 1234, 8200 ou 8202 en UDP.
igmpproxy.conf
##------------------------------------------------------
## Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave
phyint igb0.100 upstream ratelimit 0 threshold 1
altnet 193.251.97.0/24
altnet 89.86.97.0/24
altnet 176.165.8.0/24
altnet 89.86.96.0/24
phyint igb1 downstream ratelimit 0 threshold 1
altnet 192.168.1.0/24
Si vous avez 2 Miami chez vous, je vous conseille de désactiver le quickleave.
Pour la partie IGMP, il s'agit d'annonces IGMP v2 dont l'annonce peut provenir de 0.0.0.0 et c'est là que les choses se compliquent pour certaines personnes malgré une règle autorisant tout le trafic IGMP en entrée. En effet igmpproxy ou mcroute n'arrivent pas à mettre à jour la table de routage (constaté chez moi).
Le
dirty workaround consiste à lancer pimd mal configuré, le tuer puis relancer igmpproxy et tout fonctionne ! Il subsiste toutefois un problème lorsque la Miami est en veille, au bout d'un certain temps (pas encore mesuré), il faut refaire la bidouille pour que cela refonctionne.
Je rappelle que igmpproxy agit en proxy et donc les règles de filtrage se font uniquement en entrée WAN.
La Miami 4k a, a priori, besoin de UPnP pour fonctionner (difficile à vérifier) et avoir accès au service TR-069.
5. ReplaysPour les replays il s'agit de flux UDP émis (prestataire http://bytel.prod.spideo.com/) par les préfixes (à réduire ?):
- 212.195.48.0/24
- 212.195.244.0/24
- 62.34.201.0/24
- 194.158.119.0/24
- 195.36.152.0/24
sur l'intervalle de ports 20000-30000 qu'il faudra natté vers la Miami.[/s]
ByTel a migré tout ou partiellement vers de l'unicast, la solution ne semble plus nécessaire.https://www.bbox-mag.fr/box/firmware/17128158-mise-a-jour-des-decodeurs-4k-hdr-4k-et-miami-janvier-20236. TéléphoneBouygues utilise du SIP pur jus avec certaines option anti-rejeu sans communiquer le mot de passe, voici un exemple en capture:
REGISTER sip:fai.bouygtel.net SIP/2.0
Via: SIP/2.0/UDP 176.134.1.254;rport;branch=z9hG4bK7e7ejSamy5vvg
Max-Forwards: 70
From: <sip:+33123456789@fai.bouygtel.net>;tag=54SyNNHZNB9vg
To: <sip:+33123456789@fai.bouygtel.net>
Call-ID: d86e9675-8891-1237-84ac-1ee9967f14ac
CSeq: 21 REGISTER
Contact: <sip:+33123456789@176.134.1.254;transport=UDP>
Expires: 1800
Min-Expires: 180
User-Agent: SagemCom Fast5330b 16.2.20
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, NOTIFY, REFER, UPDATE, INFO, REGISTER
Supported: 100rel, replaces, path
Content-Length: 0
SIP/2.0 401 Unauthorized
Call-ID: d86e9675-8891-1237-84ac-1ee9967f14ac
Via: SIP/2.0/UDP 176.134.1.254;received=176.134.1.254;branch=z9hG4bK7e7ejSamy5vvg;rport=5060
To: <sip:+33123456789@fai.bouygtel.net>;tag=5a0df55c-5c2baa8933edb604
From: <sip:+33123456789@fai.bouygtel.net>;tag=54SyNNHZNB9vg
CSeq: 21 REGISTER
Date: Tue, 01 Jan 2019 17:59:37 GMT
WWW-Authenticate: Digest realm="ims.bouyguestelecom.fr",
nonce="a6c9036dbf3054vga940e5c2baa889703dc8f84c3249",
opaque="ALU:DbkRBthOEgEQAkgVEgwHRAIBHgkdHwQCQ4lFRkBWFxsvKzAndXdpIScsOS1jJyIjfzA8ISwxIj0qLlReVldaWxleSwobHlTH",
algorithm=MD5,
qop="auth"
Content-Length: 0
REGISTER sip:fai.bouygtel.net SIP/2.0
Via: SIP/2.0/UDP 176.134.1.254;rport;branch=z9hG4bK0mX9K72ttepZj
Max-Forwards: 70
From: <sip:+33123456789@fai.bouygtel.net>;tag=54SyNNHZNB9vg
To: <sip:+33123456789@fai.bouygtel.net>
Call-ID: d86e9675-8891-1237-84ac-1ee9967f14ac
CSeq: 22 REGISTER
Contact: <sip:+33123456789@176.134.1.254;transport=UDP>
Expires: 1800
Min-Expires: 180
User-Agent: SagemCom Fast5330b 16.2.20
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, NOTIFY, REFER, UPDATE, INFO, REGISTER
Supported: 100rel, replaces, path
Authorization: Digest username="12345@ims.bouyguestelecom.fr", realm="ims.bouyguestelecom.fr", nonce="a6c9036dbf3054vga940e5c2baa889703dc8f84c3249", cnonce="8H6rAYiREjetmB7pln8UrE", opaque="ALU:DbkRBthOEgEQAkgVEgwHRAIBHgkdHwQCQ4lFRkBWFxsvKzAndXdpIScsOS1jJyIjfzA8ISwxIj0qLlReVldaWxleSwobHlTH", algorithm=MD5, uri="sip:fai.bouygtel.net", response="c42d9cc3dbddd70feca8fb3a8c681d56", qop=auth, nc=00000001
Content-Length: 0
SIP/2.0 200 OK
Call-ID: d86e9675-8891-1237-84ac-1ee9967f14ac
Via: SIP/2.0/UDP 176.134.1.254;received=176.134.1.254;branch=z9hG4bK0mX9K72ttepZj;rport=5060
To: <sip:+33123456789@fai.bouygtel.net>;tag=5a0df55c-5c2baa89385819f0
From: <sip:+33123456789@fai.bouygtel.net>;tag=54SyNNHZNB9vg
CSeq: 22 REGISTER
Allow-Events: reg
Contact: <sip:+33123456789@176.134.1.254;transport=udp>;expires=900
Date: Tue, 01 Jan 2019 17:59:37 GMT
Path: <sip:62.201.147.164:5060;lr;ottag=ue_term;bidx=63008798;access-type=ADSL>
P-Associated-URI: <sip:+33123456789@fai.bouygtel.net>
P-Associated-URI: <tel:+33123456789>
Content-Length: 0
REGISTER sip:fai.bouygtel.net SIP/2.0
Via: SIP/2.0/UDP 176.134.1.254;rport;branch=z9hG4bKttK2NNU1QQF0m
Max-Forwards: 70
From: <sip:+33123456789@fai.bouygtel.net>;tag=54SyNNHZNB9vg
To: <sip:+33123456789@fai.bouygtel.net>
Call-ID: d86e9675-8891-1237-84ac-1ee9967f14ac
CSeq: 23 REGISTER
Contact: <sip:+33123456789@176.134.1.254;transport=UDP>
Expires: 1800
Min-Expires: 180
User-Agent: SagemCom Fast5330b 16.2.20
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, NOTIFY, REFER, UPDATE, INFO, REGISTER
Supported: 100rel, replaces, path
Authorization: Digest username="12345@ims.bouyguestelecom.fr", realm="ims.bouyguestelecom.fr", nonce="a6c9036dbf3054vga940e5c2baa889703dc8f84c3249", cnonce="8H6rAYiREjetmB7pln8UrE", opaque="ALU:DbkRBthOEgEQAkgVEgwHRAIBHgkdHwQCQ4lFRkBWFxsvKzAndXdpIScsOS1jJyIjfzA8ISwxIj0qLlReVldaWxleSwobHlTH", algorithm=MD5, uri="sip:fai.bouygtel.net", response="ed9168afc36a75bca0508345b3c14ce6", qop=auth, nc=00000002
Content-Length: 0
SIP/2.0 200 OK
Call-ID: d86e9675-8891-1237-84ac-1ee9967f14ac
Via: SIP/2.0/UDP 176.134.1.254;received=176.134.1.254;branch=z9hG4bKttK2NNU1QQF0m;rport=5060
To: <sip:+33123456789@fai.bouygtel.net>;tag=574e8e9c-5c2bad5a126e20f2
From: <sip:+33123456789@fai.bouygtel.net>;tag=54SyNNHZNB9vg
CSeq: 23 REGISTER
Contact: <sip:+33123456789@176.134.1.254;transport=UDP>;expires=900
Date: Tue, 01 Jan 2019 18:11:38 GMT
P-Associated-URI: <sip:+33123456789@fai.bouygtel.net>
P-Associated-URI: <tel:+33123456789>
Content-Length: 0
REGISTER sip:fai.bouygtel.net SIP/2.0
Via: SIP/2.0/UDP 176.134.1.254;rport;branch=z9hG4bKK89vQ3K8K082p
Max-Forwards: 70
From: <sip:+33123456789@fai.bouygtel.net>;tag=54SyNNHZNB9vg
To: <sip:+33123456789@fai.bouygtel.net>
Call-ID: d86e9675-8891-1237-84ac-1ee9967f14ac
CSeq: 24 REGISTER
Contact: <sip:+33123456789@176.134.1.254;transport=UDP>
Expires: 1800
Min-Expires: 180
User-Agent: SagemCom Fast5330b 16.2.20
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, PRACK, MESSAGE, NOTIFY, REFER, UPDATE, INFO, REGISTER
Supported: 100rel, replaces, path
Authorization: Digest username="12345@ims.bouyguestelecom.fr", realm="ims.bouyguestelecom.fr", nonce="a6c9036dbf3054vga940e5c2baa889703dc8f84c3249", cnonce="8H6rAYiREjetmB7pln8UrE", opaque="ALU:DbkRBthOEgEQAkgVEgwHRAIBHgkdHwQCQ4lFRkBWFxsvKzAndXdpIScsOS1jJyIjfzA8ISwxIj0qLlReVldaWxleSwobHlTH", algorithm=MD5, uri="sip:fai.bouygtel.net", response="3e1a873733aa8eb3b162c3c9e9a33983", qop=auth, nc=00000003
Content-Length: 0
SIP/2.0 200 OK
Call-ID: d86e9675-8891-1237-84ac-1ee9967f14ac
Via: SIP/2.0/UDP 176.134.1.254;received=176.134.1.254;branch=z9hG4bKK89vQ3K8K082p;rport=5060
To: <sip:+33123456789@fai.bouygtel.net>;tag=5a0df55c-5c2bb02936b6dcc5
From: <sip:+33123456789@fai.bouygtel.net>;tag=54SyNNHZNB9vg
CSeq: 24 REGISTER
Allow-Events: reg
Contact: <sip:+33123456789@176.134.1.254;transport=udp>;expires=900
Date: Tue, 01 Jan 2019 18:23:37 GMT
Path: <sip:62.201.147.164:5060;lr;ottag=ue_term;bidx=63008798;access-type=ADSL>
P-Associated-URI: <sip:+33123456789@fai.bouygtel.net>
P-Associated-URI: <tel:+33123456789>
Content-Length: 0
La formule magique est la suivante :
ha1=`echo -n $username":"$realm":"$password | md5sum`
ha2=`echo -n $method":"$uri | md5sum`
response=`echo -n $ha1":"$nonce":"$nc":"$cnonce":"$qop":"$ha2 | md5sum`
où
username est "12345@ims.bouyguestelecom.fr" (à capturer) / realm "ims.bouyguestelecom.fr" /
password a priori inconnu / method "REGISTER" / uri "sip:fai.bouygtel.net" /
nonce "a6c9036dbf3054vga940e5c2baa889703dc8f84c3249" (à capturer) / nc s'incrèmente à chaque requête ! /
cnonce "8H6rAYiREjetmB7pln8UrE" (à capturer) / qop auth (option à configurer)
Je ne sais pas s'il est aisèment possible de déduire le mot de passe (seule inconnue) aisèment ; il existe des petits programmes pour calculer le mot de passe à partir de ha1 (ha1 et ha2 ne sont pas diffusés sur le réseau). En outre, Bouygues via le TR-069 peut changer le mot de passe comme bon leur semble, compliquant l'opération.
Solution low cost pour le téléphone.la bbox est bonne poire et accepte de se connecter en local mais surtout en IPv6 pour profiter du téléphone, il vous faut donc:
- un port libre sur votre routeur et la bbox connecté depuis son port WAN vers le routeur
- ledit port doit avoir un préfixe IPv6 (même un /63 on prend...) sur le VLAN 100
- un serveur dhcpv6 qui écoute sur le vlan 100
- des règles de firewall pour autoriser le trafic depuis la bbox vers la passerelle Bouygues
Cela ne fonctionne plus en IPv4 à cause vraisemblablement du renforcement des contrôles sur le client SIP.7. Bugs et limitations1. Je n'ai pas de méthode efficace pour garantir l'utilisation à 100% des flux multicast car même si certains ont le proxy igmp qui fonctionnent sans souci, pour d'autres (comme moi), il faut "ruser" pour obtenir les annonces des routes multicast. Il faudrait voir si pimd est utilisable en tant que tel ou creuse dans le fonctionnement d'igmp.
2. Pas de téléphonie possible à ce jour, la rétro-ingénierie reste à faire mais sans garantie que Bouygues ne change à intervalle régulier les mots de passe. De plus, je ne connais pas de clients qui sont capables toutes ces options (un plugin siproxd à réaliser ?). L'idéal serait que Bouygues mette à disposition un boîtier (type SPA 112) déjà configuré.
8. Anti-rejeuByTel a implémenté des solutions anti-rejeu:
DHCP: si le bail n'est pas libéré proprement par un équipement, il faut spoofer l'adresse MAC de cet équipement si le dernier renouvellement a eu lieu il y a moins de 1h.
DHCPv6: autrefois il suffisait d'indiquer le même client id pour obtenir un préfixe, il existe maintenant un contrôle plus poussé pas encore identifié.
Téléphone: le serveur mandataire doit regarder les informations fournies par le client ce qui implique notamment qu'on ne peut plus mettre la bbox derrière un routeur pour jouer le rôle de boîtier SIP.
9. FAQ1. Pare-feu pour IGMP.Si vous bloquez les requêtes depuis les
bogon networks vous ne recevrez pas les annonces IGMP depuis 0.0.0.0 (l'OLT ?) indispensables pour la TV.