Problème de routage avec plusieurs interfaces publiques

Tags: #<Tag:0x00007f74d1e77b40>

Bonjour à tous!
Je bloque sur un problème intéressant de routage entre plusieurs ip publique… Âmes sensible s’abstenir :slight_smile:
Voici la topo du réseau:
em2 195.x.x.x —| HOTE | vpont_pub 192.168.254.250 ----- 192.168.254.254 |VM1| ---- 192.168.1.0/24
p2p1 109.y.y.y —|_____/

  • La passerelle par défault de l’hote est p2p1
  • la passerelle par défault de VM1 est vpont_pub
  • VM1 sers de passerelle pour 192.168.1.0/24
  • Si on ignore em2 tout marche parfaitement (routage de 192.168.1.0/24, sortie sur internet, accès avec des redirections depuis internet sur p2p1 vers des serveurs situé sur 192.168.1.0/24, dans ce cas le traffic entrant sur p2p1 est redirigé par l’hote vers 192.168.254.254 puis par la VM1 vers le serveur sur 192.168.1.0/24)

Les problèmes commences quand on souhaite ouvrir un accès internet à certains serveur sur 192.168.1.0/24 à partir de em2: En se connectant à em2 on doit avoir accès à certain ports de l’HOTE de la VM1 et de certaine machine sur 192.168.1.0/24

Qui dit 2eme interface publique dit nécessairement 2ème table de routage dédié avec règles pour indiquer quel type de connections doivent-ête routé. Ma deuxième table se nomme access_externe
# ip route show table access_externe
default via 195.x.x.117 dev em2 src 195.x.x.118
192.168.254.0/24 dev vpont_pub scope link src 192.168.254.250
195.x.x.116/30 dev em2 proto kernel scope link src 195.x.x.118

# ip rule show table access_externe
32762:	from all to 195.x.x.118 lookup access_externe 
32763:	from 195.x.x.118 lookup access_externe 
32764:	from all oif em2 lookup access_externe 
32765:	from all iif em2 lookup access_externe 

Avec ceci j’accède à l’hote depuis em2
Par contre si j’essaye de rediriger du traffic de em2 vers VM1 avec:
iptables -t nat -A PREROUTING -i em2 -s Z.Z.Z.Z -d 195.x.x.118 -p tcp --dport 222 -j DNAT --to-destination 192.168.254.254:22
iptables -A FORWARD -i em2 -o vpont_pub -d 192.168.254.254 -p tcp --dport 22 -j ACCEPT

Le noyau rejette d’office mes paquets:
hote_vm kernel: IPv4: martian source 192.168.254.254 from Z.Z.Z.Z, on dev em2
hote_vm kernel: ll header: 00000000: 50 9a xx xx xx c5 e8 b7 yy yy 64 42 08 00 P.L.s…H&dB…

Z.Z.Z.Z est l’ip à partir de laquelle je teste l’accès…
50 9a xx xx xx c5 est la mac de em2
e8 b7 yy yy 64 42 n’est pas sur le serveur

ah priori le problème est donc lié à mes tables de routages qui engendre des paquets à la con, plutôt qu’au parefeu qui n’intervient que dans un deuxième temps… (après le rejet des paquets par le noyau)
Je penche évidement pour un problème lié au fait que em2 n’est pas la passerelle par défaut de l’hote, puisque la même config pour rediriger les paquet depuis p2p1 n’engendre aucun blocage noyau
Si quelqu’un a une idée je suis preneur… ça fait plusieurs jours que je butte…

Oui ? avec des sous-titres cela donne quoi ?
Pourriez-vous décrire la situation plus simplement avec par exemple pour chaque machine physique quelles sont les interfaces réseau , quels sont les appareils réseau à l’autre bout des câble s: commutateur administrable? routeur ?
Ceci étant, comme vous parlez de VM1, je suppose que c’est une machine virtuelle, quelle technologie de virtualisation est utilisée ? Par quel moyen les interfaces sont partagées entre la machine hôte et VM1 ?
Pouvez-vous superposer à cette description de la topologie physique les sous-réseaux logique ?

Autrement dit quel est le plan d’adressage IP ?

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Avant donc que d’écrire, apprenez à penser »
Boileau De L’Art poétique (Chant I)

Bonjour

Juste pour info
au sujet des adresses IP publiques/privées

Certes. Mais votre exposé pour le moins confus est loin d’expliquer quelle raison impérieuse vous empilez les passerelles,.
Après moult relectures il semble qu’il y ait une exigence de connecter certains serveur sur 192.168.1.0/24 à internet via (la passerelle) en2. et non pas via la passerelle standard p2p1.
Si vous pouviez expliquer en quoi ce n’est pas un caprice et pourquoi vous ne pouvez pas définir sur ces serveurs privilégiés comme passerelle par défaut une petite babasse qui ne fasse qu’intermédiaire ené2 <-> lanVIP ?

Toute machine Debian connectée à deux sous-réseaux fait office de routeur entre ces deux sous-réaux sans modification de la configuration.
Par exemple, sur une machine nommée masime sur le réseau en 10.71.40.xx

fp2x@masime:~$ netstat  -rn
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic   MSS Fenêtre irtt Iface
0.0.0.0         10.71.40.1      0.0.0.0         UG        0 0          0 br0
10.71.40.0      0.0.0.0         255.255.254.0   U         0 0          0 br0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 br1
fp2x@masime:~$ 

toute machine du réseau 192.168.1.0/24 pourra accéder au réseau d’entreprise en 10.71.xx.xx.
Les interfaces s’appellent brX car ce sont des ponts par dessus une interface réseau dans le cas br0 et par dessus une agrégation de liens dans le cas br1
Voici un court extrait du fichier /etc/network/interfaces

# a bridge over bond0 (to be used by containers)
auto br1
iface br1 inet static
        bridge_ports bond0
        address 192.168.1.113
        netmask 255.255.255.0

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Ce que l’on conçoit bien s’énonce clairement,
Et les mots pour le dire arrivent aisément. »
Boileau De L’Art poétique (Chant I)

Merci pour vos réponses :slight_smile:

em2 correspond à une connexion symétrique avec trafic garanti donc à réserver aux connexions internet - > serveurs.
p2p1 est non symétrique et non garantie mais beaucoup plus rapide en trafic descendant, donc idéal pour le trafic sortant des utilisateurs sur 192.168.1.0/24

En fait je complique inutilement car ma question ne porte pas sur l’accès à 192.168.1.0/24:
em2 195.x.x.x —| HOTE | vpont_pub 192.168.254.250 ----- 192.168.254.254 eth0 |VM1|
p2p1 109.y.y.y —|_____/
comment accèder à eth0 depuis internet par em2 sachant que p2p1 est l’interface par défaut
Le problème de base c’est que le trafic entrant en em2 va ressortir par p2p1 puisque c’est la passerelle par defaut.
Ceci peut-être résolu au niveau de l’hôte par la table de routage supplémentaire qui dit: ‘ce qui entre par em2 ressort par em2’, cela marche pour le trafic de et vers l’hote.
Par contre si on redirige les paquets de l’hote entrant par em2 vers eth0 (routeur 192.168.254.254) les paquets sont rejetés comme martiens.
c’est là que je bloque…
La techno de virtualisation est kvm
vpont_pub est effectivement une interface virtuelle avec nat sur p2p1
Si j’ajoute une deuxieme interface virtuelle à VM1 avec nat sur em2 et y redirige le trafic entrant par em2, j’ai exactement le même probleme de paquet martien
J’en conclu peut-être à tord que le problème intervient sur l’hote au moment de la redirection

merci pour votre aide

Ahah c’est bien la première fois que littlejohn75 ne me sors pas une solution parfaite et documentée en 2 temps 3 mouvement. N’empêche vos questions m’ont quand même forcé à repenser le problème de bout en bout et m’ont amené à la solution.
En l’occurence les règles de routage sont bonne mais l’interface virtuelle qui fait le lien entre l’hote et l’invité ne doit pas être en NAT (comment j’ai pu laissé passer ça :::frowning: ) il faut une interface virtuelle “routée” pour que ça marche.

Merci encore pour votre aide !