Sélectionner une page

Quand on a un setup pas simple, on assume !

Etant donné que les gosses surfent sur Internet avec leur DSi XL, j’ai un routeur Linux (mono interface, j’y reviendrais) qui me sert donc de proxy filtrant.

La freebox est en donc en mode bridge. Ce qui pose un problème, dans le sens ou l’uPnP ne passe plus, du moins sans configurer correctement le routeur.

Il faut installer les démons permettant de faire le routage multicast, et proxy uPnP. Sur une debian :

aptitude install smcroute linux-igd

On configure ensuite linux-igd en modifiant le fichier de configuration pour qu’il reflète notre installation.

On ajoute ensuite une route statique multicast :

smcroute -a eth0 192.168.10.246 239.255.255.250 eth0.200

On autorise l’igmp sur le firewall en ajoutant la ligne suivante à notre script firewall.sh :

iptables -A INPUT -p igmp -j ACCEPT

On autorise ensuite le firewall à router les paquets à destination de 239.255.255.250 :

iptables -A FORWARD -i eth0.200 -d 239.255.255.250 -j ACCEPT

Problème : les paquets uPnP sont envoyés avec un TTL à 1 (ie : ça correspond au nombre de sauts que peut faire le paquet, c’est à dire un).  C’est insuffisant pour traverser le routeur. On va donc utiliser la table mangle d’iptable pour modifier les paquets entrant par l’interface interne. Pour cela :

iptables -t mangle -A PREROUTING -i eth0 -d 239.255.255.250 -j TTL –ttl-inc 1

Un reboot du boitier HD et quelques minutes plus tard, le boitier HD voit bien le NAS et peut naviguer dessus. On vient dans un tcpdump que c’est freeplayer.freebox.fr qui accède au NAS (d’ou l’absence de modification de TTL sur les paquets transitant par le NAS) :

18:18:01.467680 IP 192.168.10.246.50002 > freeplayer.freebox.fr.59741: Flags [.], seq 1029873:1047397, ack 82, win 1448, options [nop,nop,TS val 931499 ecr 884835], length 17524
18:18:01.467898 IP 192.168.10.246.50002 > freeplayer.freebox.fr.59741: Flags [.], seq 1047397:1058181, ack 82, win 1448, options [nop,nop,TS val 931499 ecr 884835], length 10784
18:18:01.511466 IP freeplayer.freebox.fr.59741 > 192.168.10.246.50002: Flags [.], ack 1058181, win 5954, options [nop,nop,TS val 884846 ecr 931499], length 0
18:18:01.511690 IP 192.168.10.246.50002 > freeplayer.freebox.fr.59741: Flags [.], seq 1058181:1068965, ack 82, win 1448, options [nop,nop,TS val 931504 ecr 884846], length 10784
18:18:01.555512 IP freeplayer.freebox.fr.59741 > 192.168.10.246.50002: Flags [.], ack 1068965, win 722, options [nop,nop,TS val 884857 ecr 931504], length 0
18:18:01.555736 IP 192.168.10.246.50002 > freeplayer.freebox.fr.59741: Flags [.], seq 1068965:1070313, ack 82, win 1448, options [nop,nop,TS val 931508 ecr 884857], length 1348
18:18:01.592254 IP freeplayer.freebox.fr.59741 > 192.168.10.246.50002: Flags [.], ack 1070313, win 22304, options [nop,nop,TS val 884866 ecr 931508], length 0
18:18:01.592531 IP 192.168.10.246.50002 > freeplayer.freebox.fr.59741: Flags [.], seq 1070313:1090533, ack 82, win 1448, options [nop,nop,TS val 931512 ecr 884866], length 20220
18:18:01.592733 IP 192.168.10.246.50002 > freeplayer.freebox.fr.59741: Flags [.], seq 1090533:1098621, ack 82, win 1448, options [nop,nop,TS val 931512 ecr 884866], length 8088
18:18:01.635492 IP freeplayer.freebox.fr.59741 > 192.168.10.246.50002: Flags [.], ack 1098621, win 8570, options [nop,nop,TS val 884877 ecr 931512], length 0
18:18:01.635727 IP 192.168.10.246.50002 > freeplayer.freebox.fr.59741: Flags [.], seq 1098621:1113449, ack 82, win 1448, options [nop,nop,TS val 931516 ecr 884877], length 14828
18:18:01.635878 IP 192.168.10.246.50002 > freeplayer.freebox.fr.59741: Flags [.], seq 1113449:1114797, ack 82, win 1448, options [nop,nop,TS val 931516 ecr 884877], length 1348
18:18:01.679583 IP freeplayer.freebox.fr.59741 > 192.168.10.246.50002: Flags [.], ack 1114797, win 722, options [nop,nop,TS val 884888 ecr 931516], length 0
18:18:01.679804 IP 192.168.10.246.50002 > freeplayer.freebox.fr.59741: Flags [.], seq 1114797:1116145, ack 82, win 1448, options [nop,nop,TS val 931520 ecr 884888], length 1348
18:18:01.723457 IP freeplayer.freebox.fr.59741 > 192.168.10.246.50002: Flags [.], ack 1116145, win 48, options [nop,nop,TS val 884899 ecr 931520], length 0