Tempos limite SSH entre hosts conectados por várias rotas

1

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     *:*
    
por codepoet 22.08.2013 / 12:47

1 resposta

0

Assim que você se conecta a B, ele adiciona um ARP para o host A. Ele usa a sub-rede local depois disso, mas, assim que o ARP expira ~ 300s ou cinco minutos, ele transmite para o seu endereço Ethernet. O roteador não encaminha a transmissão a menos que esteja agindo como uma ponte, que, a julgar por uma espécie de configuração de rede do kerplooie, eu assumo que não é assim.

Você pode tentar adicionar uma entrada ARP estática para o seu host na tabela ARP do host B, ou apenas manualmente, na linha de comando.

Então, se você quiser, você poderia explicar por que você tem um Ge full-duplex rodando no modo simplex? Além disso, por que diz "éter 00: 00: 00: 00: 00: 00"? Você apagou (é um pouco confuso)?

    
por 23.08.2013 / 06:20