Eu tenho um problema desagradável com conexões ssh entre hosts, que estão conectados de várias maneiras (rotas). Para explicar isso em detalhes ...
Comovocêpodever,existemduasmaneiraspossíveisentreoshosts,queospacotespodempercorrer(linhaverdeevermelha).Eseeudisserqueelespodemviajar,elespodem!;-)Nãoháregrasdefirewall(ounat)nolugarnoroteador,apenasoencaminhamentodepacotessimples.
OqueaconteceagoraéqueseeuestabeleçoumaconexãosshdohostAparaohostBatravésdoroteador(ouvice-versa),poisestaéaformapretendida(nãoaconexãodiretanamesmarede;ossh-servidorescutaapenasnaoutrainterface),queestaconexãomorreempoucossegundos,massomenteseeuestiverociosoporaí.Eutenteiasváriasopçõeskeepalivenoservidorssh(ecliente),masagoraeupossodizer,quenãoénemoproblemanemumasolução.
Conformeeuinvestigueiumpoucomais,percebiqueesseproblemadeveteralgoavercomasmúltiplasinterfaceserotasemambososhosts-éaúnicasituaçãoemquesetratadessesfenômenos;masreprodutívelemoutrossistemastambém(seelescompartilhamomesmoif-setup).
Entãoeupegueialgunstraceseviumtráfegosshemambososhostsviajandopelasinterfaces,quecompartilhamamesmarede(nãoatravésdoroteador,comopretendido).
Oqueestouexperimentandotambéméque,seeusshdohostAparaB(lembre-se,aúnicainterfacenaqualosshescutaéaquele,queestáconectadoaoroteador)ederrubarainterfacenocompartilhamentorede,aconexãosshmorreimediatamente!
Minhasuposiçãoéqueotráfegosshposteriorusaoutrocaminhoalémdaconexãoinicial.Talvezambasasinstânciasssh(cliente/servidor)"vejam" que existe uma rede comum entre elas, então por que não usá-la (é claro que essa conexão "direta" tem uma preferência muito maior na tabela de roteamento)! strong>
Eu tentei bloquear o tráfego do ssh nos hosts diretamente com a filtragem de pacotes, mas com os mesmos tempos limite. A única solução que funciona é derrubar a interface para a rede compartilhada; que ajuda imediatamente e a conexão "ocioso" por um longo tempo.
Alguém com uma boa ideia?!
Muito obrigado! : -)
- INFORMAÇÕES ADICIONAIS CONFORME SOLICITADO EM COMENTÁRIOS -
Todas as seguintes saídas foram geradas no "host B" (o ssh "target").
"host A" está no "192.168.110.0/24"-subnet!
"ifconfig -a" (interfaces irrelevantes removidas):
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:00:00:00:00:00
inet 192.168.100.5 netmask 0xffffff00 broadcast 192.168.100.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:00:00:00:00:00
inet 192.168.110.5 netmask 0xffffff00 broadcast 192.168.110.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
"netstat -rna" (rotas irrelevantes removidas (interfaces)):
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.100.1 UGS 0 807 em0
127.0.0.1 link#9 UH 0 0 lo0
192.168.100.0/24 link#1 U 0 113430 em0
192.168.100.5 link#1 UHS 0 10437 lo0
192.168.110.0/24 link#2 U 0 319 em1
192.168.110.5 link#2 UHS 0 0 lo0
(...)
"sockstat -l" (manteve outros processos para completar):
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
dhcpd dhcpd 1416 10 udp4 *:67 *:*
dhcpd dhcpd 1416 20 udp4 *:58917 *:*
dhcpd dhcpd 1416 21 udp6 *:33125 *:*
mysql mysqld 1629 10 tcp4 192.168.100.5:3306 *:*
root apcupsd 1353 4 udp4 *:18755 *:*
root apcupsd 1353 5 udp4 *:162 *:*
root apcupsd 1353 7 tcp4 192.168.100.5:3551 *:*
root collectd 1635 10 udp4 *:65262 *:*
root collectd 1635 11 udp4 *:49993 *:*
root collectd 1635 12 udp4 *:51224 *:*
root collectd 1635 13 udp4 *:58446 *:*
root collectd 1635 4 udp4 192.168.100.5:25826 *:*
root collectd 1635 7 udp4 *:16430 *:*
root collectd 1635 8 udp4 *:12406 *:*
root collectd 1635 9 udp4 *:16113 *:*
root inetd 1676 5 udp4 *:69 *:*
root monit 1358 7 tcp4 127.0.0.1:2812 *:*
root sshd 1656 3 tcp4 192.168.100.5:22 *:*
root syslog-ng 1295 10 dgram /var/run/logpriv
root syslog-ng 1295 12 tcp4 192.168.100.5:514 *:*
root syslog-ng 1295 13 udp4 192.168.100.5:514 *:*
root syslog-ng 1295 14 tcp4 192.168.100.5:601 *:*
root syslog-ng 1295 9 dgram /var/run/log
_ntp ntpd 1425 6 udp4 192.168.100.5:123 *:*