From 76fc80aa9c487739ffb0670d5cea3651640fb9e8 Mon Sep 17 00:00:00 2001 From: kleph Date: Fri, 12 Jul 2013 13:10:20 +0200 Subject: [PATCH] Better syntax hilight and review code blocks --- content/parade_peering_free.mdown | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/content/parade_peering_free.mdown b/content/parade_peering_free.mdown index 57e416b..5f558b2 100644 --- a/content/parade_peering_free.mdown +++ b/content/parade_peering_free.mdown @@ -9,8 +9,8 @@ Lang: fr Ce soir je voulais suivre une des conférences TED en préparant à manger, et comme il y a une extension pour faire ça avec XBMC, ça ne devait pas être difficile. J'avais juste oublié un détail, ma connexion est fournie par Free, donc le streaming hors de France (et a priori surtout ce qui passe par le lien avec Google) fonctionne très mal. Dommage pour la fibre :'( # Idée -J'avais déjà eu ce genre de problème auparavant, avec youtube évidement, ainsi que les lives twitch. -Pour youtube, un simple proxy suffit. Mais pour les flux RTMP, j'ai joué un peu avec les possibilité de routage de Linux. J'ai redirigé d'abord une partie, puis finalement tout le trafic sur le port 1194 à travers un VPN ayant de meileurs peerings. +J'avais déjà eu ce genre de problème auparavant, avec youtube évidement, ainsi que les lives [twitch](http://www.twitch.tv). +Pour youtube, un simple proxy suffit, ainsi que pour les vidéos de twitch. Mais pour les flux RTMP, j'ai joué un peu avec les possibilités de routage de Linux. J'ai redirigé d'abord une partie, puis finalement tout le trafic à destination du port 1194 à travers un VPN pour sortir depuis une machine ayant de meileurs peerings. # En pratique ## Prérequis @@ -34,17 +34,20 @@ En plus de la table de routage principale que l'on obtient avec la commande "ip Sachez juste qu'il est possible de rajouter des tables, en plus de la table "main", et que le fichier `/etc/iproute2/rt_tables` permet de nommer ces tables pour rendre plus explicite les n°. Vous verez d'ailleurs que ce fichier contient déjà des alias vers les tables par défaut. J'ai donc rajouté une ligne à ce fichier : + 2 vpn Et ensuite, je vais affecter une passerelle par défaut à cette table différente de celle de la table principale : + ip route add default via 192.168.1.1 table vpn Il reste ensuite à définir la règle pour associer les paquets marqués par iptables à cette table de routage : + ip rule add fwmark 1 pref 10 lookup vpn -# conclusion +# 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 sont pas transmises sur le réseau. @@ -54,13 +57,14 @@ Cette passerelle me sert aussi de point d'accès wifi, avec la passerelle par d 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 +Voici le script que j'utilise pour faire tout ça. Finalement il est plutôt simple. + :::bash #!/bin/sh # route some ports/applications through the VPN VPN_GATEWAY=192.168.1.1 - + # mark the packets # RTMP iptables -t mangle -A OUTPUT -p udp --dport 1935 -j MARK --set-mark 0x9 @@ -72,6 +76,7 @@ et voici donc cce que ça donne # 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.