• [^] # Re: erreur de concept

    Posté par . En réponse au message Iptables et NAT - La suite..... Évalué à 3.

    non !
    DNAT= changement de destination = PREROUTING (il faut le faire avant de prendre la décision de routage).
    SNAT= changement de source = POSTROUTING (ça se fait quand le paquet part, après le routage)

    Ici, le problème est qu'il faut du DNAT et du SNAT.

    En effet, ce qui se passe c'est :
    A (172.16.0.0) -> (openvpn) interface tunnel (ppp) avec trafic à destination de la 10.8.0.0 -> DNAT (modification de la destination du paquet) vers 172.16.0.0

    A ce stade, le paquet a une source en 172.16.0.0 et une destination de 172.16.0.0. Du coup, la destination n'a aucune raison de renvoyer le paquet au routeur qui se charge de la NAT. Il faut donc ajouter une règle de SNAT (du genre : iptables -t nat -A POSTROUTING- s <masque réseau A, disons 172.16.0.0/16> -d <masque réseau B, 172.16.0.0/16> -o <interface lan local> -j SNAT --to <ip locale>, ou plus simplement iptables -t nat -A POSTROUTING -s <masque réseau A> -d <masque réseau B> -o <interface locale B> -j MASQUERADE). C'est en plus de la règle de DNAT en prérouting sur le trafic à destination de 10.8.0.0 sur l'interface openvpn.

    Il me semble que c'est ce que j'avais déjà répondu au premier post, mais bon, soit j'ai pas compris le problème, soit je m'explique pas clairement :-)

    Après, quand on a le même réseau de chaque côté, c'est toujours galère dans les vpn...

    Si on a besoin de faire des connexions point à point entre les machines du réseau A et du réseau B (et pas juste d'accéder à une machine du réseau B depuis le réseau A), le mieux est de faire un double NAT complet : http://www.netfilter.org/documentation/HOWTO//netfilter-doub(...)

    Pour mieux comprendre l'enchainement des règles INPUT, FORWARD, OUTPUT, PREROUTING, et POSTROUTING : http://www.netfilter.org/documentation/HOWTO/netfilter-hacki(...) ou la "big picture" : http://linux-ip.net/nf/nfk-traversal.html