Précédent   Forum des professionnels en informatique > Systèmes > Linux > Réseau
Réseau Vos questions autour des réseaux et télécoms sous Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/02/2012, 16h08   #1
Invité de passage
 
Inscription : novembre 2009
Messages : 5
Détails du profil
Informations forums :
Inscription : novembre 2009
Messages : 5
Points : 0
Points : 0
Par défaut 2 GateWay - Problème de marquage des paquets

Bonjour
Je souhaite mettre en place routeur à base d'iptables entre 2 connexion ADSL mais je débute sur le routage

Enfaite, je suis perdu au moment de rediriger le traffic vers le net, j'arrive bien à faire mon filtrage via la table MANGLE
Le marquage des paquets ce passe bien
Mais je t'arrive pas établir a la connexion dans l'autre sens,

Donc déjà le routage :
ETH0 : réseau local (en 2.0/24)
ETH1: ADSL 1, IP : 213.XXX.X7.62, passerelle : 213.XXX.X7.61 (relais pour le traffic SSH, icmp à venir pop3s et imaps)
ETH2 : ADSL 2, IP 192.168.10.2, passrelle : 192.168.10.1 (relais pour le reste du traffic, mais pour les test, HTTP et HTTPS

j'ai crée différente table de routage (N°11 pour ETH1, et N°12 pour ETH2) :
ADSL1
Code :
1
2
3
4
5
6
 
ip route add table 11 default via 213.XXX.X7.61
ip route add table 11 192.168.2.0/24 dev eth0
ip route add table 11 213.XXX.X7.0/24 dev eth1
ip route add table 11 192.168.10.0/24 dev eth2
ip rule add fwmark 11 table 11
ADSL 2
Code :
1
2
3
4
5
6
 
ip route add table 12 default via 192.168.10.1
ip route add table 12 192.168.2.0/24 dev eth0
ip route add table 12 213.XXX.X7.0/24 dev eth1
ip route add table 12 192.168.10.0/24 dev eth2
ip rule add fwmark 12 table 12
ma table de routage par défaut
Code :
1
2
3
4
5
6
 
default via 192.168.10.1 dev eth2
192.168.2.0/24 dev eth0  src 192.168.2.4
192.168.10.0/24 dev eth2  src 192.168.10.2
192.168.20.0/24 dev eth4  src 192.168.20.1
213.XXX.X7.0/24 dev eth1  src 213.XXX.X7.62
un petit ip rule show
Code :
1
2
3
4
5
6
7
 
0:      from all lookup local
32763:  from all fwmark 0xd lookup 13
32764:  from all fwmark 0xc lookup 12
32765:  from all fwmark 0xb lookup 11
32766:  from all lookup main
32767:  from all lookup default
Maintenant mon fichier IPTABLE
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
# FLUSH ALL
iptables-X
iptables-F
iptables-Z
 
# SET DEFAULT POLICY
iptables-P INPUT DROP
iptables-P FORWARD DROP
iptables-P OUTPUT ACCEPT
 
 
# FLUSH ALL CHAINS
iptables-F FORWARD
iptables-F INPUT
iptables-F OUTPUT
iptables-F -t nat
iptables-F -t mangle
iptables-X -t nat
iptables-X -t mangle
 
iptables -t mangle -P PREROUTING  ACCEPT
iptables -t mangle -P INPUT       ACCEPT
iptables -t mangle -P OUTPUT      ACCEPT
iptables -t mangle -P FORWARD     ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
Les régles Mangle et le marquage des paquets
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
## SELECTIVE ROUTING
# PREROUTING
 
iptables -t mangle -A PREROUTING          -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A OUTPUT              -m state --state ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i eth1  -m state --state NEW                 -j CONNMARK --set-mark 11
iptables -t mangle -A PREROUTING -i eth2  -m state --state NEW                 -j CONNMARK --set-mark 12
iptables -t mangle -A PREROUTING -m connmark --mark 11                         -j MARK --set-mark 11
iptables -t mangle -A PREROUTING -m connmark --mark 12                         -j MARK --set-mark 12
iptables -t mangle -A PREROUTING -m state --state NEW -m connmark ! --mark 0   -j CONNMARK --save-mark
 
        # ETH1
#iptables -t mangle -A PREROUTING -i eth0 -m state --state NEW -p tcp --dport 80 -j CONNMARK --set-mark 11
iptables -t mangle -A PREROUTING -i eth0 -m state --state NEW -p tcp --dport 22 -j CONNMARK --set-mark 11
iptables -t mangle -A PREROUTING -i eth0 -m state --state NEW -p icmp           -j CONNMARK --set-mark 11
 
        #ETH2
iptables -t mangle -A PREROUTING -i eth0 -m state --state NEW -p tcp --dport 54 -j CONNMARK --set-mark 12
iptables -t mangle -A PREROUTING -i eth0 -m state --state NEW -p tcp --dport 80 -j CONNMARK --set-mark 12
iptables -t mangle -A PREROUTING -i eth0 -m state --state NEW -p tcp --dport 445 -j CONNMARK --set-mark 12

Voila ou j'en suis, j'ai essayer divers truc pour le forward, mais je pense que je me trompe

Code :
1
2
3
4
5
6
7
8
 
# FORWARD
 
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth2 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
 
iptables -A FORWARD -i eth0 -o eth1 -s $R_LAN  -j ACCEPT
iptables -A FORWARD -i eth0 -o eth2 -s $R_LAN  -j ACCEPT
Code :
1
2
3
4
5
6
7
 
# POSTROUTING
 
#iptables -t mangle -A POSTROUTING -o eth1 -j SNAT --to-source 213.XXX.X7.62
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
#iptables -t mangle -A POSTROUTING -o eth2 -j SNAT --to-source 192.168.10.2
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

Quand je regarde ou passe les paquets :

Code :
1
2
3
4
5
6
7
 
Chain FORWARD (policy DROP 207 packets, 16162 bytes)
 pkts bytes target     prot opt in     out             source                        destination
    0     0        ACCEPT     all  --  eth1   eth0    0.0.0.0/0             0.0.0.0/0           state RELATED,ESTABLISHED
  163  152K  ACCEPT     all  --  eth2   eth0     0.0.0.0/0              0.0.0.0/0           state RELATED,ESTABLISHED
    0     0       ACCEPT     all  --  eth0   eth1    192.168.2.0/24    0.0.0.0/0           connmark match 0xb
  119 11017 ACCEPT     all  --  eth0   eth2    192.168.2.0/24    0.0.0.0/0           connmark match 0xc
Pour mes régles Mangles (la mise en page est top dsl)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
 *** MANGLE ***
 
Chain PREROUTING (policy ACCEPT 1468 packets, 343K bytes)
 pkts bytes          target     prot opt in     out       source                                          destination
  774  232K   CONNMARK   all  --  *      *       0.0.0.0/0         .0.0.0/0      state RELATED,ESTABLISHED CONNMARK restore
   12  1080    CONNMARK   all  --  eth1   *       0.0.0.0/0      0.0.0.0/0    state NEW CONNMARK set 0xb
    0     0        CONNMARK   all  --  eth2   *       0.0.0.0/0      0.0.0.0/0    state NEW CONNMARK set 0xc
   48  3710    MARK             all  --  *      *       0.0.0.0/0         0.0.0.0/0   connmark match 0xb MARK set 0xb
  262  162K   MARK            all  --  *      *       0.0.0.0/0          0.0.0.0/0   connmark match 0xc MARK set 0xc
   12  1080    CONNMARK   all  --  *      *       0.0.0.0/0          0.0.0.0/0   state NEW connmark match !0x0 CONNMARK save
    3   132      CONNMARK   tcp  --  eth0   *       0.0.0.0/0      0.0.0.0/0  state NEW tcp dpt:22 CONNMARK set 0xb
  165 13860  CONNMARK   icmp --  eth0   *       0.0.0.0/0     0.0.0.0/0  state NEW CONNMARK set 0xb
    0     0        CONNMARK    tcp  --  eth0   *       0.0.0.0/0     0.0.0.0/0   state NEW tcp dpt:54 CONNMARK set 0xc
    3   132     CONNMARK     tcp  --  eth0   *       0.0.0.0/0     0.0.0.0/0   state NEW tcp dpt:80 CONNMARK set 0xc
    0     0       CONNMARK     tcp  --  eth0   *       0.0.0.0/0     0.0.0.0/0   state NEW tcp dpt:445 CONNMARK set 0xc
 
Chain OUTPUT (policy ACCEPT 560 packets, 138K bytes)
 pkts bytes target     prot opt in     out     source               destination
  560  138K CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED CONNMARK restore
et enfin le NAT
Code :
1
2
3
4
5
6
 
*** NAT ***
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MASQUERADE  all  --  *      eth1    0.0.0.0/0            0.0.0.0/0
    3   132 MASQUERADE  all  --  *      eth2    0.0.0.0/0            0.0.0.0/0

Voila,
Donc on vois bien que le http passe bien dans mes régles et sort par eth2 (qui est aussi mon interface par defaut)
Parcontre, lorsque je fais des ping sur 8.8.8.8 par exemple ou que je test une connexion ssh sur un de nos serveur externe
Les paquets sont bien marquer
Code :
1
2
 
    3   132          CONNMARK   tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 CONNMARK set 0xb
Mais il ne sont pas router vers ETH1,
Fin je suis perdu, je ne vois pas trop ou je me suis tromper et je pense que mes régles sont trop géneral pour la partie forward et postrouting
Butler est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h36.


 
 
 
 
Partenaires

Hébergement Web