Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 56 Próxima »

01. OBJETIVO

Realização de testes relacionados a validação da comunicação Site-to-Site necessária entre os PDVs e o Monitor de PDV.

02. COMUNICAÇÃO 

É importante deixar claro e dividir as questões relacionadas a comunicação em VPN em duas situações distintas:

  • VPN TOTVS - CLIENTE

É aquela prevista no projeto e documentação, realizada entre o IP Peer da TOTVS e IP Peer (único) do cliente, definidos e validados, a partir da sua configuração, o cliente deverá realizar e validar a configuração desse ponto principal para as demais lojas da rede do mesmo.

Mais informações: VPN | Procedimentos de Ativação


  • VPN CLIENTE - LOJAS

É aquela configurada pelo cliente a partir do ponto principal (VPN TOTV - Cliente) para as demais lojas, é a responsável direta pela comunicação entre o Monitor de PDV (que é o gerenciador de todas as operações/movimentações relacionadas ao PDV) e cada PDV de cada loja.


03. TESTES

Os testes de comunicação devem ser realizados sempre nos dois sentidos, ou seja do Monitor de PDV para o PDV e por sua vez, no sentido contrário, do PDV para o Monitor de PDV, pois só assim é possivel verificar e identificar de maneira assertiva, bloqueios, restrições ou falhas de comunicação na origem correta.

É importante considerar que, especificamente em caso de PDV Windows o mesmo continua sujeito a necessidade de verificação/liberação das restrições de GPO e Firewall (local).

Principais testes sugeridos: 

  1. PING

  2. TELNET

  3. NETSTAT

  4. PATHPING

  5. MTR

  6. WinMTR*
  7. TCPING*

  8. WIRESHARK*

  9. ZENMAP (NMAP) *


Os comandos de 1 a 5 estão presentes e funcionais nativamente nos respectivos ambientes (Linux e ou Windows), já as sugestões dos itens 6 a 8 (TCPing e Wireshark) os mesmos podem demandar instalação complementar por não virem instalados/embarcados em todas as distribuições.

Exemplos práticos :

1.PING (Windows e Linux)


É o primeiro teste que deve ser realizado pois com ele é possível validar a comunicação e também o limite do pacote de dados MTU que pode trafegar de forma estável na VPN.

Executar no Prompt (Windows) ou Terminal (Linux)

  1. PING SIMPLES


    Serve exclusivamente para conferir se o outro equipamento está ativo/responde, não mede ou valida tamanho ou limite de pacotes na comunicação.

    PING NUMEROIPDESTINO  -t

    Linha de comando
    Ping 192.168.13.208 -t 



  2. PING COM TAMANHO DE PACOTE PARA TESTE DE MTU

    É o teste recomendado para verificação e correção de falhas no envio de Cargas e Configurações quando enviadas sem sucesso a partir do AcruxMonitor, pois envia pacotes de tamanho personalizado.

    É importante considerar que cada infraestrutura pode apresentar números diferentes para MTU, o exemplo abaixo considera pontualmente que o estável foi identificado em 1410.

    Sugerimos e indicamos fortemente a realização do teste logo na instalação do 1º PDV do Cliente.

    PING NUMEROIPDESTINO  -l 1410 -t

    Linha de comando
    Ping 192.168.13.208 -l 1410 -t


    Como identificar o MTU estável ?


    O valor padrão de interfaces de rede em geral é 1500, se forem verificadas falhas nos envios de Cargas e Configurações, utilize a linha de comando acima e vá diminuindo (1500, 1490, 1490...etc..) até que passe a haver retorno.

    No exemplo que segue, em teste realizado a partir do Servidor de PDV é possível verificar que não havia sequer retorno até 1411 (timed out), sendo que, a comunicação se mostrou estável em MTU=1410, nesse cenário é necessário  solicitar o ajuste do tamanho do MTU, só assim a comunicação irá ocorrer da forma esperada entre Servidor de PDV x PDV.


    Recomendações:

    O ideal é que o MTU seja ajustado diretamente no Servidor de PDV uma única vez, isso dispensará quaisquer ajustes complementares nos PDVs, pois as conexões irão passar a considerar sempre o MTU do Servidor de PDV, porém, em casos pontuais, se houver necessidade pontual (Ex. instalar um PDV de testes/validações) é perfeitamente possível realizar um ajuste provisório (ou até mesmo permanente) diretamente no PDV.

    De forma complementar, uma outra forma de validar a falha nos pacotes e instabilidade de conexão é realizar um teste de NetStat na porta 8011 via Terminal Linux do PDV de Validações para conferir se o mesmo está acumulando conexões naquela porta.

    O teste complementar de NetStat só é efetivo se o PDV já estiver ligado há algum tempo e com a aplicação do AcruxPDV em execução, porque só nesse cenário as portas 8011 e 7011 estão sendo utilizadas.

MTU: COMO VERIFICAR O VALOR ATUAL ?


LINUX - VERIFICAR MTU

No Terminal Linux do PDV
# ifconfig eth0
     Será exibido o resultado abaixo:
        eth0      Link encap:Ethernet  HWaddr 00:0c:29:ac:b2:8e
                  inet addr:172.23.134.101  Bcast:172.23.134.255  Mask:255.255.255.0
                  inet6 addr: fe80::20c:29ff:feac:b28e/64 Scope:Link
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:6164356 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:96179 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000
                  RX bytes:515490533 (491.6 MiB)  TX bytes:22206002 (21.1 MiB)

Na linha 5 você pode ver MTU:1500


O exemplo acima é uma forma simples e rápida de verificar/confirmar o valor atual de MTU na interface de rede do PDV;



WINDOWS - VERIFICAR MTU e NOME DA INTERFACE

No prompt de comando digitar:
netsh interface ipv4 show subinterfaces

No exemplo acima (Windows) é exibido que o tamanho MTU naquele momento para a Interface de rede é 1500

MTU: COMO ALTERAR O VALOR ATUAL ?


ALTERAÇÃO TEMPORÁRIA PARA TESTES DE ESTABILIDADE

PDV LINUX


A alteração temporária de valor de MTU do exemplo abaixo é totalmente funcional enquanto o PDV não for reiniciado, o que possibilita ajustes de tamanho de pacote de MTU até validação e verificação do tamanho correto/ideal e análise de estabilidade. Após esse processo, verificado o valor, deverá ser realizado o ajuste permanente, recomendamos realizar esses procedimentos no 1º PDV de testes instalado.

Para realizar a alteração manual (temporária) do MTU para um valor específico, no exemplo abaixo utilizaremos o ajuste do MTU para 1410. 

No Terminal Linux do PDV
# ifconfig eth0 mtu 1410


O resultado de saída do comento será parecido com o conteúdo abaixo:

     # ifconfig eth0
     eth0      Link encap:Ethernet  HWaddr 00:0c:29:ac:b2:8e
               inet addr:172.23.134.101  Bcast:172.23.134.255  Mask:255.255.255.0
               inet6 addr: fe80::20c:29ff:feac:b28e/64 Scope:Link
               UP BROADCAST RUNNING MULTICAST  MTU:1410  Metric:1
               RX packets:6168787 errors:0 dropped:0 overruns:0 frame:0
               TX packets:96489 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000
               RX bytes:515839287 (491.9 MiB)  TX bytes:22249757 (21.2 MiB)


A partir desse momento é possivel por exemplo fechar e abrir a aplicação do PDV (para liberar eventuais conexões pendentes) e realizar novos testes de estabilidade e funcionamento

Reforçando: a configuração via linha de comando acima será perdida após reiniciar o equipamento, é indicada para validação do tamanho estavel limite, que deverá ser ajustado permanentemente após verificado.



ALTERAÇÃO PERMANENTE


Após a devida análise, verificada a necessidade de ajuste permamente é possivel ajustar (em definitivo) naquele PDV o MTU na respectiva interface (ETH0 no exemplo) ou editar o arquivo de configuração para que o parâmetro seja sempre mantido após reinicar o equipamento.

A alteração definitiva pode ser realizada tanto no próprio PDV, Roteador do cliente ou ainda, no próprio Servidor de PDV, o que dispensa as outras 2 anteriores, mas só é realizada após a validação no 1º PDV conforme sugerido,

WINDOWS

ALTERAÇÃO MTU

Via prompt de comando

1. Abra o prompt de comando como administrador.

2.Para conferir o numero atual e anotar o nome da Interface execute primeiro o seguinte comando:

netsh interface ipv4 show interface

O resultado do comando acima será uma janela como a que segue abaixo:

Agora com os dados necessários (exemplo de valor de MTU = 1500 e nome da Interface = "Ethernet0") siga para a etapa 3


3.Ajustar de forma permanente o valor do MTU (mantém após reboot), no exemplo abaixo utilizaremos o valor de MTU=1410, pode variar conforme cliente.

netsh interface ipv4 set subinterface “Ethernet0” mtu=1410 store=persistent

Após o comando acima, ao verificar novamente (comando da etapa 2), o ajuste será exibido:


2
.TELNET
 (Windows e Linux)

A finalidade é validar se as portas principais (7011 e 8011) estão se comunicando.

Do Monitor de PDV para o PDV

Estando no prompt do Windows, digitar Telnet IP_do_PDV 8011
Ex. Telnet 192.168.2.10 8011

Do PDV para o Monitor de PDV
Estando no terminal, digitar Telnet IP_do_Monitor_de_PDV 7011
Ex. Telnet 10.0.1.6 7011

Em ambos os casos, seja do Servidor para o PDV ou do PDV para o Servidor, a confirmação da comunicação deverá exibir sempre a mensagem de "Conectado" como na imagem de exemplo abaixo

Caso o teste de Telnet informe que a porta não está acessível, verifique a mensagem exibida:

    1. Mensagem simples de "Porta não Acessível"
      Dica: Verifique as regras de liberação previstas na documentação padrão (portas 7011, 8011, etc...)

    2. Mensagem de "Excesso de conexões ou Limite de Conexões excedido"
      Dica: Esse é  um forte indício de que pode haver divergência no tamanho máximo suportado do pacote de MTU (exemplo de Ping no Item 1)

      Observação: A existência de Objetos Inválidos no Banco de Dados inativa o Serviço do Monitor e deixa parados os Listeners de portas, como 8011 e 7011, nesse cenário o ping funciona, mas o Telnet não. Verifique Objetos Inválidos na opção "ALL USERS" utilizando usuário que tenha essas permissões.



3.NETSTAT (Windows e Linux)

Valida a quantidade de conexões ativas, indicado para execução no terminal do PDV.


Linux

Estando no terminal do Linux do PDV:

Verificar conexões existentes na porta 8011:
netstat -an | grep 8011

Verificar apenas o total de conexoes ativas existentes filtrando pela porta 8011
netstat -ant | grep ESTABILISHED | grep 8011 | wcl -l

Caso queira gravar a saída de resultados em um arquivo Log/TXT basta adicionar ao final da linhas acima o complemento:     >arquivo.log

Linux

Estando no terminal do Linux do PDV:

Verificar conexões existentes na porta 8011:
netstat -an | grep 8011

O NETSTAT em conjunto com o teste de MTU via PING é uma excelente forma de validar conexões acumuladas na porta 8011, que inviabilizam o envio de Configurações e Cargas para PDV)



4.PATHPING (Windows)

É uma combinação de PING com TRACERT, permite que você confira as rotas/pontos a partir do Host de origem até IP de destino informado, podendo evidenciar problemas de comunicação como link e operadora.


Exemplo:


5.MTR (Linux)

É o equivalente em LINUX do PATHPING, deve ser executado no Terminal do Linux, a grande vantagem é que ele fica em execução constante automática, verificando a velocidade, perdas de pacote, etc... (até que seja finalizado).
Como fica em execução (loop) é possivel usar atalhos para "D" Display mode, "R" Restart statistics, etc...


Exemplo: mtr -o "LSD A MX" IP_Destino



Dicas de Parâmetros

  • Use  -x ou -xml para gerar xml
  • Use -C para exportar os dados em arquivo csv
  • Use -j para saida no padrão json

Lista de parâmetros adicionais para usar com a opção "-o"

É possível informar vários parâmetros adicionais de acordo com a necessidade de monitoramento, segue tabela:

Flag
Descrição
L
Loss ratio
D
Dropped packets
R
Received packets
S
Sent packets
N
Newest RTT(ms)
B
Min/Best RTT(ms)
A
Average RTT(ms)
W
Max/Worst RTT(ms)
V
Standard Deviation
G
Geometric Mean
J
Current Jitter
M
Jitter Mean/Avg.
X
Worst Jitter
I
Interarrival Jitter




6.WinMTR (Windows)


Versão do MTR para Windows, permite testar a rota e exibe detalhes sobre a comunicação e salvar o log em TXT ou HTML.
É possivel ainda (Options) alterar o tamanho do pacote de dados para o ping, etc...

Download: https://winmtr.net/


7.TCPING (Windows)

Exibe informações mais detalhadas da comunicação do que o PING tradicional e é possivel informar porta especifica, não vem por padrão instalado no Windows, mas é possivel ser instalado. 


Exemplos: 

tcping -d -t -j IPDESTINO


tcping -d -t -j IPDESTINO PORTA

Ex.: tcping -d -t -j 192.168.0.201 8011


8.WIRESHARK (Windows e Linux)

Software que possui versões Windows e Linux (vem embarcado em algumas distribuições Linux do AcruxPDV) e permite filtros e um detalhamento ainda mais avançado que todos os anteriores, é possivel até mesmo conferir a inconsistência do tamanho de um pacote MTU.


Linux (AcruxPDV)

Procure pela aplicação Wireshark (use F3 para alternar aplicação do AcruxPDV caso queira mantê-la ativa e busque em aplicativos).


Exemplo: no Filtro digite o IP do Servidor de PDV, no caso do exemplo ip.src==10.0.1.6

Podem haver algumas variações na interface interface inicial de acordo com a versão utilizada e ou embarcada, mas a forma de uso é sempre a mesma, informar o filtro desejado a as interfaces que deseja monitorar


9.ZENMAP (Windows, no Linux é NMAP)


Solução extremamente completa e que não exige necessáriamente conhecimentos avançados, substitui e centraliza a maioria das ferramentas e comandos citados anteriormente em uma unica aplicação.
É possivel realizar testes de ping, telnet, portas, tracerout, serviços em execução com poucos cliques e ainda salvar o log diretamente em arquivos.

Verificação de Portas do Go-Global:



Download: https://nmap.org/download


No linux é possivel utiliza-lo via linha de comando no Terminal (NMAP) digitando exatamente a mesma linha que a interface ZENMAP exibe em "Command"


OUTROS IMPACTOS RELACIONADOS A DIVERGÊNCIA DE MTU E MSS CLAMPING

Pacotes de atualização, não estavam sendo baixados no PDV.
Ajustar o MTU - TCP MSS Clamping no tráfego entre a rede local e a VPN e vice-versa, este ajuste varia de firewall para firewall, basta seguir as informações sobre testes de MTU nos itens anteriores.

Para maiores informações sobre conceitos acerca de MSS e MTU: https://www.cloudflare.com/pt-br/learning/network-layer/what-is-mss/




  • Sem rótulos