Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Linux] Deux accès WAN

1 réponse
Avatar
JKB
Bonjour à tous,

La suite de mes problèmes de routage ;-)

Concidérons l'architecture suivante :



LAN
|
|
|
192.168.1.254
Serveur 1 (192.168.0.1)-------------------------(192.168.0.2) Serveur 2
| |
| 213.215.42.70
|
213.215.42.69

eth0: 213.215.42.70
eth0:1: 213.215.42.71
...
eth0:8: 213.215.42.78
eth1: 192.168.0.1
eth2: 192.168.1.254
eth3: 213.215.42.69

J'aimerais que les machines du LAN soient accessibles par eth0:x.
Le trafic en provenance du serveur 2 doit être routé par eth3.
ssh répond sur eth0 et eth3. Tout le trafic généré localement par
Serveur 1 routé par défaut par eth3.

J'ai presque réussi... Il me manque le routage par défaut du trafic
généré localement par eth3. Mon script de configuration est le
suivant :

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# liens entre Serveur 1 et Serveur 2
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT

# eth3
iptables -A OUTPUT -o eth3 -p tcp -m tcp --dport domain -j ACCEPT
iptables -A OUTPUT -o eth3 -p udp -m udp --dport domain -j ACCEPT

# eth2
iptables -A OUTPUT -o eth2 -p tcp -m tcp --dport ssh -j ACCEPT

# Passerelle pour Serveur2
iptables -A FORWARD -i eth1 -o eth3 -p tcp -m tcp --dport domain -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth3 -j MASQUERADE

route add default gw 213.215.42.65 dev eth0
ip rule add from 213.215.42.69 lookup local_traffic priority 101
ip rule add fwmark 1 table local_traffic priority 102
ip route add default via 213.215.42.65 dev eth3 table local_traffic
ip route flush cache

echo 0 > /proc/sys/net/ipv4/conf/eth3/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth3/arp_ignore

# Tentative pour router le trafic local par eth3 (route par défaut sur
# eth0)
iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -jMARK --set-mark 1
iptables -t mangle -A OUTPUT -s 213.215.42.70 -jRETURN
iptables -t mangle -A OUTPUT -jMARK --set-mark 1

J'ai l'impression que mon problème se situe au niveau des deux
dernières lignes, mais je ne trouve pas... Des idées ?

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.

1 réponse

Avatar
JKB
Le 08-10-2007, à propos de
[Linux] Deux accès WAN,
JKB écrivait dans fr.comp.reseaux.ip :
Bonjour à tous,

La suite de mes problèmes de routage ;-)

Concidérons l'architecture suivante :



LAN
|
|
|
192.168.1.254
Serveur 1 (192.168.0.1)-------------------------(192.168.0.2) Serveur 2
| |
| 213.215.42.70
|
213.215.42.69

eth0: 213.215.42.70
eth0:1: 213.215.42.71
...
eth0:8: 213.215.42.78
eth1: 192.168.0.1
eth2: 192.168.1.254
eth3: 213.215.42.69

J'aimerais que les machines du LAN soient accessibles par eth0:x.
Le trafic en provenance du serveur 2 doit être routé par eth3.
ssh répond sur eth0 et eth3. Tout le trafic généré localement par
Serveur 1 routé par défaut par eth3.

J'ai presque réussi... Il me manque le routage par défaut du trafic
généré localement par eth3. Mon script de configuration est le
suivant :

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# liens entre Serveur 1 et Serveur 2
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT

# eth3
iptables -A OUTPUT -o eth3 -p tcp -m tcp --dport domain -j ACCEPT
iptables -A OUTPUT -o eth3 -p udp -m udp --dport domain -j ACCEPT

# eth2
iptables -A OUTPUT -o eth2 -p tcp -m tcp --dport ssh -j ACCEPT

# Passerelle pour Serveur2
iptables -A FORWARD -i eth1 -o eth3 -p tcp -m tcp --dport domain -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth3 -j MASQUERADE

route add default gw 213.215.42.65 dev eth0
ip rule add from 213.215.42.69 lookup local_traffic priority 101
ip rule add fwmark 1 table local_traffic priority 102
ip route add default via 213.215.42.65 dev eth3 table local_traffic
ip route flush cache

echo 0 > /proc/sys/net/ipv4/conf/eth3/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth3/arp_ignore

# Tentative pour router le trafic local par eth3 (route par défaut sur
# eth0)
iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -jMARK --set-mark 1
iptables -t mangle -A OUTPUT -s 213.215.42.70 -jRETURN
iptables -t mangle -A OUTPUT -jMARK --set-mark 1

J'ai l'impression que mon problème se situe au niveau des deux
dernières lignes, mais je ne trouve pas... Des idées ?


On avance, on avance... J'ai remplacé les trois dernières lignes par :

iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -j MARK --set-mark 1
iptables -t mangle -A OUTPUT -d 192.168.0.0/24 -j RETURN
iptables -t mangle -A OUTPUT -d 192.168.1.0/24 -j RETURN
iptables -t mangle -A OUTPUT -s 213.215.42.70 -j RETURN
iptables -t mangle -A OUTPUT -j MARK --set-mark 1

Lorsque je lance une résolution de nom (par exemple), je vois bien
que les chaînes me marquent les paquets générés localement.
J'aimerais savoir où ces paquets passent, parce qu'un tcpdump sur
eth3 ne montre rien ! Si j'ouvre les ports sur eth0, je m'aperçois
que tout passe par eth0 ! Ce que je ne comprends pas bien, c'est que
si je vire les cibles RETURN, les paquets à destination du réseau
local n'arrivent plus à destination, preuve que la dernière règle
fait bien quelque chose...

En un mot comme en cent... AU SECOURS ! ;-)

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.