diff --git a/content/parade_peering_free.mdown b/content/parade_peering_free.mdown index 02a39e9..57e416b 100644 --- a/content/parade_peering_free.mdown +++ b/content/parade_peering_free.mdown @@ -15,17 +15,17 @@ Pour youtube, un simple proxy suffit. Mais pour les flux RTMP, j'ai joué un peu # En pratique ## Prérequis La mise en place du VPN n'est pas décrite ici, ce n'est pas l'objet. -N'importe quel type de VPN routable devrait faire l'affaire (j'utilise openvpn) +N'importe quel type de VPN routable devrait faire l'affaire. (j'utilise openvpn) -Il faut aussi un noyau supportant le routage avance - TODO: config kernel +Il faut aussi un noyau supportant le routage avancé. + TODO: config kernel ## Marquage des paquets On va tout d'abord isoler et marquer les paquets que l'on souhaite rediriger. Je l'ai fait avec iptables qui a une cible spécialement prévu à cet effet, [MARK][1]. iptables -t mangle -A OUTPUT -p udp --dport 1935 -j MARK --set-mark 0x9 -Une fois ces paquets marqués, avec la marque /0x9/, ils vont être interceptésau moment du routage pour ne pas sortir par le même endroit que d'habitude. +Une fois ces paquets marqués, avec la marque /0x9/, ils vont être interceptés au moment du routage pour ne pas sortir par le même endroit que d'habitude. NOTE: Ici, j'utilise la chaîne **OUTPUT**, parce que la connexion est initialisée depuis la machine. Pour appliquer la marque aux paquets provenant d'une connexion routée par cette machine, il faut utiliser la chaîne **PREROUTING** (Voir plus bas). # Les tables de routage du noyau linux @@ -47,11 +47,11 @@ Il reste ensuite à définir la règle pour associer les paquets marqués par ip # conclusion Donc en résumé, les paquets seront reconnus par iptables, fonction de critères classiques tels que l'adresse et/ou le port de destination, mais sachez que tous les critères d'iptables peuvent être utilisés pour celà, adresse/port source, ipset, nom d'utilisateur, etc... -NOTE: les marques sont locales à la machine et ne sonit pas transmise sur le réseau +NOTE: Les marques sont locales à la machine et ne sont pas transmises sur le réseau. -# Sur la passerelle VPN +## Sur la passerelle VPN Cette passerelle me sert aussi de point d'accès wifi, avec la passerelle par défaut normale. -J'ai donc ajouté le même script en modifiant l'IP de destination pour forcer ce type de trafic à passer par le VPN. Dans la chaine PREROUTING cette fois car le traffic d'origine n'est pas local (cf TODO: lien vers le cheminement dans les tables d'iptables) +J'ai donc ajouté le même script en modifiant l'IP de destination pour forcer ce type de trafic à passer par le VPN, une adresse en 10.0.0.1 chez moi. Dans la chaine PREROUTING cette fois car le traffic d'origine n'est pas local (cf TODO: lien vers le cheminement dans les tables d'iptables) # Le script et voici donc cce que ça donne @@ -63,13 +63,14 @@ et voici donc cce que ça donne # mark the packets # RTMP - iptables -t mangle -A OUTPUT -p udp --dport 1935 -j MARK --set-mark 0x1 - iptables -t mangle -A OUTPUT -p tcp --dport 1935 -j MARK --set-mark 0x1 + iptables -t mangle -A OUTPUT -p udp --dport 1935 -j MARK --set-mark 0x9 + iptables -t mangle -A OUTPUT -p tcp --dport 1935 -j MARK --set-mark 0x9 # add route to redirect these packets ip route add default via ${VPN_GATEWAY} table vpn - ip rule add fwmark 1 pref 10 lookup vpn + # add rule to detect marked packets and to send that trafic to the new routing table + ip rule add fwmark 9 pref 10 lookup vpn # Liens Les quelques liens cités dans cet article.