<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.maxux.be/index.php?feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Maxux Dot Unix</title>
  <link>http://www.maxux.be/index.php?</link>
  <atom:link href="http://www.maxux.be/index.php?feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Un blob ? Un blog !</description>
  <language>fr</language>
  <pubDate>Wed, 01 Sep 2010 14:41:23 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Deux FAI, deux Switch, 4 NIC... une machine.</title>
    <link>http://www.maxux.be/index.php?post/2010/08/31/Deux-FAI%2C-deux-Switch%2C-4-NIC...-une-machine.</link>
    <guid isPermaLink="false">urn:md5:539f02d34b8f6d46c1efdf582b946fc8</guid>
    <pubDate>Tue, 31 Aug 2010 20:09:00 +0200</pubDate>
    <dc:creator>Maxux</dc:creator>
            
    <description>    &lt;p&gt;J'ai récemment du changer l'infrastructure de mon réseau local pour pouvoir y permettre l'utilisation de deux FAI en changeant simplement son câble de Switch.
Pour ce faire, j'ai (grâce à l'aide de khemael, Oxy-D et pistache) du faire ce que je n'avais jamais fais: plusieurs tables de routage.&lt;/p&gt;


&lt;p&gt;Voici un schéma simplifié du réseau:&lt;/p&gt;
&lt;pre&gt;
  +------------
               \
                -------- WAN1 ----| eth3     eth0 |------ LAN1 --------| SWITCH 1 |---| Machine 1 (fany) |-- httpd
                                  |               | (192.168.10.0/24)                 | Router Wifi
                                  |               |
 INTERNET                         |    SERVER     |
                                  |               |
                                  |               | (192.168.20.0/24)
              ---------- WAN2 ----| eth2     eth1 |------ LAN1 --------| SWITCH 2 |---| Laptop
  +----------/
&lt;/pre&gt;


&lt;p&gt;Pour que tout fonctionne comme je le désire:
- LAN1 doit communiquer avec LAN2
- Le serveur http se trouvant sur le LAN1 doit être accessible via l'IP WAN1
- Le serveur central dispose également d'un httpd qui doit être accessible via l'IP WAN2&lt;/p&gt;


&lt;p&gt;Le serveur tourne sous Gentoo ~x86 et dispose comme service de: bind (local), httpd, ssh, nfs (local), bitlbee (local),
Note: iproute2 est requis.&lt;/p&gt;


&lt;p&gt;Tout d'habord, j'ai mis en place dans /etc/conf.d un fichier '/etc/conf.d/maxux-routing' qui contiendra toutes les variables pour faire notre routage:&lt;/p&gt;

&lt;pre&gt;
#!/bin/bash

export LAN1=eth0	# 192.168.10.0
export LAN2=eth1	# 192.168.20.0
export WAN1=eth3	# Belgacom
export WAN2=eth2	# Voo

export GW1=&amp;quot;192.168.1.1&amp;quot;
export GW2=&amp;quot;85.26.68.1&amp;quot;
&lt;/pre&gt;


&lt;p&gt;Pourquoi&amp;nbsp;? Pour pouvoir 'sourcer' le fichier et avoir toutes les variables à porté de main :)&lt;/p&gt;


&lt;p&gt;En suite, dans /etc/init.d, même si mon script n'est pas un &quot;service&quot; en tant que tel, je préfère le placer là pour centraliser tout les scripts systèmes/démarrages.
Deux fichiers scripts bash s'y trouvent: /etc/init.d/maxux-iptables et /etc/init.d/maxux-routing
Ces deux fichiers sont appelés dans /etc/conf.d/local.start, pour être lancés en tout dernier lors du démarrage du système.&lt;/p&gt;


&lt;p&gt;Le premier concerne iptables et va faire les règles de forward. Notez à la fin les règles de forward de ports en local, vous comprendrez pourquoi plus loin :)&lt;/p&gt;

&lt;pre&gt;
#!/bin/bash
source /etc/conf.d/maxux-routing

iptables -F
iptables -t nat -F
iptables -X

# Policy
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

# Finally we add the rules for NAT
# iptables -A FORWARD -i ${LAN1} -s 192.168.10.0/255.255.255.0 -j ACCEPT    # En cas de Policy FORWARD DROP
# iptables -A FORWARD -i ${WAN1} -d 192.168.10.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ${WAN1} -j MASQUERADE

# iptables -A FORWARD -i ${LAN2} -s 192.168.20.0/255.255.255.0 -j ACCEPT
# iptables -A FORWARD -i ${WAN2} -d 192.168.20.0/255.255.255.0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ${WAN2} -j MASQUERADE

# Port Forwarding
iptables -t nat -A PREROUTING -i ${WAN1} -p tcp --dport 22 -j DNAT --to-destination 192.168.10.193:22
iptables -t nat -A PREROUTING -i ${WAN2} -p tcp --dport 22 -j DNAT --to-destination 192.168.20.1:22

iptables -t nat -A PREROUTING -i ${WAN1} -p tcp --dport 80 -j DNAT --to-destination 192.168.10.193:80
iptables -t nat -A PREROUTING -i ${WAN2} -p tcp --dport 80 -j DNAT --to-destination 192.168.20.1:80

# Tell the kernel that ip forwarding is OK
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward    # Si vous ne l'avez pas défini dans /etc/sysctl.conf
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 &amp;gt; $f ; done
&lt;/pre&gt;


&lt;p&gt;Une grosse partie est reprise du Tuto Gentoo (Mini-Router Maison). Grossmodo, ici rien de spécial, juste un masquerading sur les interfaces... classique.
Note: la policy ACCEPT est un choix. A vous de faire comme bon vous semble.&lt;/p&gt;


&lt;p&gt;Ensuite, une petite modification persistante est à faire dans /etc/iproute2/rt_tables:
Ajoutez-y ces deux tables de routage&lt;/p&gt;
&lt;pre&gt;
200 wan1
201 wan2
&lt;/pre&gt;


&lt;p&gt;Puis vient le fichier plus intéressant: les règles de routages :)&lt;/p&gt;

&lt;pre&gt;
#!/bin/bash
source /etc/conf.d/maxux-routing

# IP Route Configuration
ip route add default via $GW1 dev $WAN1 table wan1
ip route add default via $GW2 dev $WAN2 table wan2
ip rule add from 192.168.10.0/24 lookup wan1
ip rule add from 192.168.20.0/24 lookup wan2

# Inteconnecting
ip rule add from 192.168.10.0/24 to 192.168.20.0/24 lookup main
ip rule add from 192.168.20.0/24 to 192.168.10.0/24 lookup main

# Interconnecting with router
ip route add 192.168.20.0/24 via 192.168.20.1 table wan2
ip route add 192.168.10.0/24 via 192.168.10.1 table wan2
ip route add 192.168.10.0/24 via 192.168.10.1 table wan1
ip route add 192.168.20.0/24 via 192.168.20.1 table wan1


# Tell the kernel that ip forwarding is OK
echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward    # Si vous ne l'avez pas défini dans /etc/sysctl.conf
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 &amp;gt; $f ; done
&lt;/pre&gt;


&lt;p&gt;Ici, nous commençons par dire dans chacune des tables de routage, que nous faisons un pont direct avec la gateway voulu et l'iface LAN.
Ensuite, l'interconnexion entre le LAN1 et le LAN2, nous routons via la table main, le premier subnet vers le deuxième et inversement.
Pour finir, point important (sinon votre routeur ne pourra pas pinger avec vos clients... et inversement) il faut définir le routage précis pour chaque iface pour router toutes les connexion vers les IP locales, en les faisant passer via le serveur.
Note: la fin du script qui remet le forward à 1 n'est pas nécessaire.&lt;/p&gt;


&lt;p&gt;Il ne reste plus qu'à tester le tout.&lt;/p&gt;


&lt;p&gt;Pour la partie forward, pour avoir le plus facile (et le plus sécurisé je pense), le mieux est de faire écouter (apache par exemple) votre service sur l'IP local du serveur (192.168.20.1 par exemple) et de router avec iptables les connexions entrantes sur la WAN_X vers l'IP local du serveur, tout simplement.
Note: le serveur lui même utilise la première route default sur la table main, pour sa propre connexion.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.maxux.be/index.php?post/2010/08/31/Deux-FAI%2C-deux-Switch%2C-4-NIC...-une-machine.#comment-form</comments>
      <wfw:comment>http://www.maxux.be/index.php?post/2010/08/31/Deux-FAI%2C-deux-Switch%2C-4-NIC...-une-machine.#comment-form</wfw:comment>
      <wfw:commentRss>http://www.maxux.be/index.php?feed/atom/comments/3</wfw:commentRss>
      </item>
    
  <item>
    <title>Un blog...</title>
    <link>http://www.maxux.be/index.php?post/2010/08/27/Un-blog...</link>
    <guid isPermaLink="false">urn:md5:e418fb2cbbc1e7b49b48b2884aeb2123</guid>
    <pubDate>Fri, 27 Aug 2010 20:50:00 +0200</pubDate>
    <dc:creator>Maxux</dc:creator>
            
    <description>    &lt;p&gt;Après une longue absence, je me replonge dans la création d'un blog. N'espérer pas y trouver ici, ma vie, mes humeurs ni mes analyses d'urines... &lt;del&gt;tout ça, c'est sur Facebook qu'il faut aller voir&lt;/del&gt;.
J'ai repris encore une fois DotClear, pour une simple raison: pourquoi pas&amp;nbsp;?&lt;/p&gt;</description>
    
    
    
          <comments>http://www.maxux.be/index.php?post/2010/08/27/Un-blog...#comment-form</comments>
      <wfw:comment>http://www.maxux.be/index.php?post/2010/08/27/Un-blog...#comment-form</wfw:comment>
      <wfw:commentRss>http://www.maxux.be/index.php?feed/atom/comments/2</wfw:commentRss>
      </item>
    
</channel>
</rss>