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