SynProxy não pode retornar pacotes de sincronização com topologia de ponte dupla assimétrica

11

Eu tenho uma topologia de ponte dupla assimétrica, conforme mostrado abaixo quando eu conectar de 172.16.11.5 e 172.16.10.6 com ssh mas eu não consigo conectar por causa do 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
                  |     |
                  -------

Em todas as máquinas entre 172.16.11.5 e 172.16.10.6 "rp filtering" está desativado e "ip forwarding" está ativado. Existe uma máquina no meio da topologia que é chamado de máquina "XXX". XXX tem duas pontes e um SynProxy.

Quando o SynProxy está DESATIVADO no XXX, posso fazer ping de 172.16.11.5 a 172.16.10.6 e os pacotes icmp seguem este caminho: br1- > 172.16.10.1- > 172.16.10.6- > 172.16.10.1- > br0. Além disso, eu posso acessar de 172.16.11.5 para 172.16.10.6 com ssh. Então o tráfego TCP funciona como eu esperava.

No entanto, quando o SynProxy está ativado no XXX, posso fazer ping de 172.16.11.5 a 172.16.10.6 e os pacotes icmp seguem o mesmo caminho. Mas eu não consigo acessar a partir de 172.16.11.5 para 172.16.10.6 usando ssh. Isso é porque o synproxy pode não envia respostas de confirmação de sincronização através de br1 iface. Se eu adicionar um rota para pacotes de sincronização no XXX, eu posso conectar de 172.16.11.5 a 172.16.10.6 com ssh.

route add 172.16.11.5 dev enp10s0f0

Regras do SynProxy para 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

Mas isso não é aceitável porque a rede 172.16.11.0 é nuvem. Então, eu não poderia adicionar rota toda a rede na nuvem para rotear a tabela e não foi possível adicionar o endereço MAC ao ARP tabela.

Como posso conectar do 172.16.11.5 ao 172.16.10.6 máquina usando ssh quando SynProxy está ligado em XXX? ou é possível?

Agradecemos antecipadamente

    
por nyzsirt 26.05.2015 / 12:29

1 resposta

0

A maneira mais simples que posso ver para consertar isso é alterar as rotas padrão nas máquinas de gateway para usar a mesma ponte, para que ela não seja mais assimétrica.

  • Em 172.16.11.6, defina o padrão como 2.2.2.1 (via br0)
  • Em 172.16.10.1 defina o padrão como 2.2.2.2 (via br0)

Estou curioso para saber por que ele foi projetado dessa maneira ... qual é o propósito da segunda ponte?

    
por 03.08.2015 / 11:09