[iptables] Routage entre 2 FAI

Routage entre 2 FAI [iptables] - Réseaux - Réseaux grand public / SoHo

Marsh Posté le 08-06-2011 à 03:26:42    

Bonjour à tous :hello:
Voici ma config actuelle :  
je possède actuellement 2 accès internet, le premier est une offre fibre à débit symétrique de chez Orange, le second est un accès ADSL OVH. Ces 2 accès viennent chacun avec leur box respective.
Physiquement ca donne ça :
 


                                          192.168.0.1                 192.168.0.253                                                 192.168.3.1
          ----  ip dynamique ----|Livebox|-----------------------------------------                                           -----------------Serveur HTTP
        /                                                                           \                 192.168.3.253         /
INTERNET                                                                             Passerelle Debian---------------------  
        \                                                                           /                                       \
          ----- 178.x.x.x -------|Modem OVH|---------------------------------------                                           -----------------Serveur DNS
                                            192.168.1.254             192.168.1.253                                                 192.168.3.2


 
La problématique est la suivante :

  • L'accès ADSL ne sert qu'à résoudre les requêtes DNS (et les transferts de zone) qui lui parviennent et le serveur DNS doit répondre via la passerelle OVH
  • L'accès fibre sert à tout le reste du trafic entrant et sortant
  • La passerelle Debian a iptables d'installé et de configuré pour tout ce qui est port forwarding mais pas pour le load balancing entre les 2 lignes ADSL (tout le trafic sortant veut absolument sortir par la route par défaut qui se trouve en premier dans la table de routage de la machine d'où problème pour les retours vers le net à des connexions entrantes)


Pourriez-vous m'aider à configurer la ou les tables de routage de ma machine pour que seul le trafic DNS passe par la ligne ADSL (requêtes entrantes, réponse aux requêtes entrantes et au pire requêtes DNS sortantes pour les forwarders de mon serveur DNS) et pour que tout ce qui est trafic entrant sur la ligne fibre (donc à destination du serveur HTTP/FTP etc) ressorte par cette même ligne fibre...
 
J'ai trouvé un tuto qu'a pas l'air trop mal, mais qui marche avec des ip publiques (machine passerelle attaquée en direct par le FAI) et je pense que le SNAT va pas marcher comme indiqué, si ça peut vous aider :
http://linux-ip.net/html/adv-multi-internet.html
 
Merci d'avance :jap:
 
                                               


---------------
/!\ Le point de rendez-vous des amateurs de vieux matos informatique c'est ici !/!\
Reply

Marsh Posté le 08-06-2011 à 03:26:42   

Reply

Marsh Posté le 08-06-2011 à 20:41:28    

Reply

Marsh Posté le 08-06-2011 à 20:56:44    

Le coup du routage uniquement pour le DNS, c'est pas du routage justement, c'est de la couche >3.


---------------
Fort et motivé. Sauf parfois.
Reply

Marsh Posté le 08-06-2011 à 21:09:56    

rajoute une ip sur ton serveur dns et sur ta passerelle et fais sortir ce qui arrive de cette IP sur ovh via du snat.
Configure ton forwarding de port pour taper cette nouvelle ip

Reply

Marsh Posté le 08-06-2011 à 21:20:32    

Pour le SNAT je peux juste faire du SNAT 192.168.1.0/24 ? Ou ca marche qu'avec des ip publiques ?


---------------
/!\ Le point de rendez-vous des amateurs de vieux matos informatique c'est ici !/!\
Reply

Marsh Posté le 08-06-2011 à 22:04:37    

Euh ça doit marcher je pense

Reply

Marsh Posté le 08-06-2011 à 22:09:06    

J'ai une config du même genre, pour que ton traffic entrant ressorte par le bon endroit tu dois marquer tes paquets la premiere fois qu'ils arrivent et router ensuite en fonction de cette marque.
 
Ca necessite des regles iptables et du policy routing, chez moi ça donne ça :
 

Code :
  1. # restore marks for forced routes
  2. iptables -I PREROUTING -t mangle -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark --nfmask $MARK_MPATH_FORCE_MASK --ctmask $MARK_MPATH_FORCE_MASK
  3. # set marks for first forwarded incoming packets
  4. iptables -A PREROUTING_FROM_INET -t mangle -m conntrack --ctstate NEW -i $DEV_ADSL -j CONNMARK --set-xmark $MARK_MPATH_FORCE_ADSL/$MARK_MPATH_FORCE_MASK
  5. iptables -A PREROUTING_FROM_INET -t mangle -m conntrack --ctstate NEW -i $DEV_CABLE0 -j CONNMARK --set-xmark $MARK_MPATH_FORCE_CABLE0/$MARK_MPATH_FORCE_MASK
  6. iptables -A PREROUTING_FROM_INET -t mangle -m conntrack --ctstate NEW -i $DEV_CABLE1 -j CONNMARK --set-xmark $MARK_MPATH_FORCE_CABLE1/$MARK_MPATH_FORCE_MASK


 
et côté routage une table par gateway avec des rules qui testent la fwmark.
 
Pour info j'utilise mpath-tools  :)

Reply

Marsh Posté le 08-06-2011 à 22:19:14    

Ouais si tu peux faire du policy based routing c'est pas plus mal.
A voir si ta machine a assez de ressources pour ça

Reply

Marsh Posté le 08-06-2011 à 22:35:00    

Opty 175 + 2,5Go de ram (+1Go pour mes VM).
Je vais regarder du côté du marquage :jap:


---------------
/!\ Le point de rendez-vous des amateurs de vieux matos informatique c'est ici !/!\
Reply

Marsh Posté le 10-06-2011 à 02:34:54    

Problem solved [:shay]
J'ai rajouté les lignes suivantes dans mon iptables

iptables -t mangle -A PREROUTING -p tcp --dport 53 -s 192.168.3.1/32 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p tcp --sport 53 -s 192.168.3.1/32 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p udp --dport 53 -s 192.168.3.1/32 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p udp --sport 53 -s 192.168.3.1/32 -j MARK --set-mark 4
iptables -t mangle -A PREROUTING -p tcp --sport 80 -s 192.168.3.2/32 -j MARK --set-mark 2


 
J'ai créé une seconde table de routage sur ma machine :

ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table 4 $ROUTE done  
ip route add table 4 default via 192.168.1.254


 
Puis j'ai rajouté les règles de redirection en fonction de la marque :

ip rule add fwmark 4 table 4
ip rule add fwmark 2 table main


 
L'interrogation DNS marche désormais nickel sur ma ligne ADSL, et le serveur web répond bien par la ligne fibre [:shay]
 
M'enfin six_dfx je vais essayer ta syntaxe, qui m'évitera de devoir rajouter les règles une par une en fonction des ports et qui fera automatiquement le bon routage :)


---------------
/!\ Le point de rendez-vous des amateurs de vieux matos informatique c'est ici !/!\
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed