SynProxy kann keine Syn-Ack-Pakete mit asymmetrischer Dual-Bridge-Topologie zurückgeben

12

Ich habe eine asymmetrische Doppelbrückentopologie, wie unten gezeigt, wenn ich mich von 172.16.11.5 und 172.16.10.6 mit ssh verbinde, aber ich kann mich wegen SynProxy nicht verbinden.

                  -------
                  |     |
                  ---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
                  |     |
                  -------

Auf allen Computern zwischen 172.16.11.5 und 172.16.10.6 ist "RP-Filterung" deaktiviert und "IP-Weiterleitung" aktiviert. In der Mitte der Topologie befindet sich eine Maschine, die als "XXX" -Maschine bezeichnet wird. XXX hat zwei Bridges und einen SynProxy.

Wenn SynProxy auf XXX ausgeschaltet ist, kann ich von 172.16.11.5 bis 172.16.10.6 pingen und icmp-Pakete folgen diesem Pfad: br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0. Außerdem kann ich mit ssh von 172.16.11.5 auf 172.16.10.6 zugreifen. Der TCP-Verkehr funktioniert also wie erwartet.

Wenn jedoch SynProxy auf XXX eingeschaltet ist, kann ich von 172.16.11.5 bis 172.16.10.6 pingen und icmp-Pakete folgen demselben Pfad. Aber ich kann nicht mit ssh von 172.16.11.5 auf 172.16.10.6 zugreifen. Dies liegt daran, dass Synproxy keine Syn-Bestätigungsantworten über br1 iface senden kann. Wenn ich eine Route für Synack-Pakete auf XXX hinzufüge, kann ich mit ssh eine Verbindung von 172.16.11.5 zu 172.16.10.6 herstellen.

route add 172.16.11.5 dev enp10s0f0

SynProxy-Regeln für 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

Dies ist jedoch nicht akzeptabel, da das Netzwerk 172.16.11.0 eine Cloud ist. Daher konnte ich der Routentabelle nicht das gesamte Cloud-Netzwerk und der Arp-Tabelle nicht die MAC-Adresse hinzufügen.

Wie kann ich mit ssh eine Verbindung zwischen 172.16.11.5 und 172.16.10.6 herstellen, wenn SynProxy auf XXX eingeschaltet ist? oder ist es möglich?

Danke im Voraus,

Nyzsirt
quelle
Kannst du sagen, welche Werte medium_iddie Bridge-Interfaces auf Synproxy haben? Wie lauten Ihre aktuellen SYNPROXY-Regeln in allen Tabellen?
Alexander Janssen,
Ich habe iptables Regeln für SynProxy hinzugefügt. Aber ich weiß nichts über medium_id. Ich suchte schnell im Internet , aber es ist nicht heplful @AlexanderJanssen
nyzsirt

Antworten:

0

Die einfachste Möglichkeit, dies zu beheben, besteht darin, die Standardrouten auf den Gateway-Computern so zu ändern, dass dieselbe Bridge verwendet wird, sodass sie nicht mehr asymmetrisch ist.

  • Am 172.16.11.6 als Standard 2.2.2.1 setzen (via br0)
  • Am 172.16.10.1 setzen Sie den Standard als 2.2.2.2 (über br0)

Ich bin gespannt, warum es so konstruiert wurde ... wozu dient die zweite Brücke?

Tricky
quelle