Question SynProxy ne peut pas renvoyer de paquets syn ack avec une topologie asymétrique à double pont


J'ai une topologie à double pont asymétrique comme indiqué ci-dessous quand je me connecte à partir de 172.16.11.5 et 172.16.10.6 avec SSH mais je ne peux pas me connecter à cause de SynProxy.

                  -------
                  |     |
                  ---o--- 172.16.11.5
                     |
                     |
                -----o----- 172.16.11.6
                |         |
                |         | default gw 1.1.1.1
                |         |
     1.1.1.2/30 --o----o--- 2.2.2.2/30
                  |    |
                  |    |
                  |    | (enp10s0f0)
              ----o----o-----
              |             |
              |     XXX     |
              |             |
              |  br1   br0  | synproxy
              |             |
              ----o----o-----
                  |    |
                  |    |
                  |    |
     1.1.1.1/30 --o----o--- 2.2.2.1/30
                |         |
                |         | default gw 2.2.2.2
                |         |
                -----o----- 172.16.10.1
                     |
                     |
                  ---o--- 172.16.10.6
                  |     |
                  -------

Sur toutes les machines entre 172.16.11.5 et 172.16.10.6 "rp filtering" est désactivé et "ip forwarding" est activé. Il y a une machine au milieu de la topologie qui est appelé "XXX" machine. XXX a deux ponts et un SynProxy.

Lorsque SynProxy est désactivé sur XXX, je peux effectuer un ping à partir de Les paquets 172.16.11.5 à 172.16.10.6 et icmp suivent ce chemin: br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0. De plus, je peux accéder de 172.16.11.5 à 172.16.10.6 avec ssh. Donc, le trafic TCP fonctionne comme prévu.

Cependant, lorsque SynProxy est activé sur XXX, je peux effectuer un ping de 172.16.11.5 à 172.16.10.6 et les paquets icmp suivent le même chemin. Mais je ne peux pas accéder à partir de 172.16.11.5 à 172.16.10.6 en utilisant ssh. C'est parce que Synproxy peut ne pas envoyer de réponses syn ack via br1 iface. Si j'ajoute un route pour les paquets synack sur XXX, je peux me connecter à partir de 172.16.11.5 à 172.16.10.6 avec ssh.

route ajouter 172.16.11.5 dev enp10s0f0

Règles SynProxy pour XXX:

iptables -t raw -A PREROUTING -i br0 -p tcp -m physdev --physdev-in 
enp10s0f0 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j CT --notrack
iptables -t raw -A PREROUTING -i br1 -p tcp -m physdev --physdev-in 
enp11s0f0 -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j CT --notrack

iptables -t filter -A FORWARD -i br0 -p tcp -m physdev --physdev-in 
enp10s0f0 -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY 
--sack-perm --timestamp --wscale 7 --mss 1460
iptables -t filter -A FORWARD -i br0 -m physdev --physdev-in enp10s0f0 
-m state --state INVALID -j DROP
iptables -t filter -A FORWARD -i br1 -p tcp -m physdev --physdev-in 
enp11s0f0 -m tcp -m state --state INVALID,UNTRACKED -j SYNPROXY 
--sack-perm --timestamp --wscale 7 --mss 1460
iptables -t filter -A FORWARD -i br1 -m physdev --physdev-in enp11s0f0 
-m state --state INVALID -j DROP

Mais cela n’est pas acceptable car le réseau 172.16.11.0 est nuage. Donc, je ne pouvais pas ajouter la route tout le réseau de nuage pour router la table et n'a pas pu ajouter l'adresse mac à l'arp table.

Comment connecter de 172.16.11.5 au 172.16.10.6 machine utilisant ssh lorsque SynProxy est activé sur XXX? ou est-ce possible?

Merci d'avance,


11
2018-05-26 10:29


origine


Pouvez-vous dire quelles valeurs le medium_id des interfaces de pont sur synproxy ont? En outre, quelles sont vos règles SYNPROXY réelles dans toutes les tables? - Alexander Janssen
J'ai ajouté des règles iptables pour SynProxy. Mais je ne sais rien à propos de medium_id. J'ai cherché rapidement sur internet, mais ce n'est pas excellent @AlexanderJanssen - nyzsirt


Réponses:


Le moyen le plus simple de résoudre ce problème consiste à modifier les itinéraires par défaut sur les machines de passerelle afin qu'ils utilisent le même pont pour qu'il ne soit plus asymétrique.

  • Sur 172.16.11.6, définissez la valeur par défaut sur 2.2.2.1 (via br0)
  • Sur 172.16.10.1, définissez la valeur par défaut sur 2.2.2.2 (via br0)

Je suis curieux de savoir pourquoi il a été conçu de cette façon ... à quoi sert le second pont?


0
2017-08-03 09:09