SynProxy non può restituire pacchetti syn ack con topologia asimmetrica a doppio ponte


12

Ho una topologia asimmetrica a doppio ponte come mostrato di seguito quando mi collego da 172.16.11.5 e 172.16.10.6 con ssh ma non riesco a collegarmi a causa di 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
                  |     |
                  -------

Su tutte le macchine tra 172.16.11.5 e 172.16.10.6 "filtro rp" è disattivato e "IP forwarding" è attivo. C'è una macchina al centro della topologia che si chiama macchina "XXX". XXX ha due bridge e un SynProxy.

Quando SynProxy è disattivato su XXX, posso eseguire il ping da 172.16.11.5 a 172.16.10.6 e i pacchetti icmp seguono questo percorso: br1-> 172.16.10.1-> 172.16.10.6-> 172.16.10.1-> br0. Inoltre, posso accedere da 172.16.11.5 a 172.16.10.6 con ssh. Quindi il traffico TCP funziona come mi aspetto.

Tuttavia, quando SynProxy è attivato su XXX, posso eseguire il ping da 172.16.11.5 a 172.16.10.6 e i pacchetti icmp seguono lo stesso percorso. Ma non posso accedere da 172.16.11.5 a 172.16.10.6 usando ssh. Questo perché synproxy non può inviare risposte syn ack tramite br1 iface. Se aggiungo un percorso per i pacchetti synack su XXX, posso collegarmi da 172.16.11.5 a 172.16.10.6 con ssh.

route add 172.16.11.5 dev enp10s0f0

Regole SynProxy per 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

Ma questo non è accettabile perché la rete 172.16.11.0 è cloud. Quindi non ho potuto aggiungere route tutta la rete cloud alla route route e non ho potuto aggiungere l'indirizzo mac alla tabella arp.

Come posso collegarmi da 172.16.11.5 alla macchina 172.16.10.6 usando ssh quando SynProxy è attivato su XXX? o è possibile?

Grazie in anticipo,


Puoi dire quali valori hanno le medium_idinterfacce bridge sul synproxy? Inoltre, quali sono le tue attuali regole SINTETICHE in tutte le tabelle?
— Alexander Janssen,

Ho aggiunto le regole di iptables per SynProxy. Ma non so nulla di medium_id. Ho cercato rapidamente su internet ma non è abbondante @AlexanderJanssen
— nyzsirt

Risposte:


0

Il modo più semplice che posso vedere per risolvere questo problema è cambiare i percorsi predefiniti sulle macchine gateway per utilizzare lo stesso bridge in modo che non sia più asimmetrico.

  • Il 172.16.11.6 imposta il valore predefinito su 2.2.2.1 (tramite br0)
  • Su 172.16.10.1 impostare il valore predefinito su 2.2.2.2 (tramite br0)

Sono curioso di sapere perché è stato progettato in questo modo ... qual è lo scopo del secondo ponte?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.