Realização de testes relacionados a validação da comunicação Site-to-Site entre Servidor de PDV e os PDVs.
É importante deixar claro, dividir e direcionar as questões relacionadas a comunicação em VPN em duas frentes:
É aquela prevista no projeto e documentação, configurada entre o IP Peer da TOTVS e IP Peer único do cliente nos equipamentos (firewall/roteador) desse único ponto centralizado.
Essa VPN é configurada a partir dos dados gerados pela automação TOTVS, que tem como base nos dados de IP Peer + Rede fornecidos previamente pelo cliente.
Uma vez configurado esse ponto centralizado de comunicação, a partir dele o cliente deverá criar as regras necessárias para as demais lojas em sua VPN Interna.
Mais informações: VPN | Procedimentos de Ativação
É aquela configurada pelo cliente a partir do ponto central validado na etapa anterior (VPN TOTVS - 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.
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:
WIRESHARK*
É 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)
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
Ping 192.168.13.208 -t
É 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 após o devido teste, foi identificado o valor estável de MTU como sendo 1410, más os testes podem ser iniciados com valor 1500 e seguir diminuindo até obter o resultado estável do PING.
Sugerimos e indicamos fortemente a realização do teste de PING que segue abaixo logo na instalação do 1º PDV do Cliente para o devido ajuste (se necessário) no Servidor de PDV
PING NUMEROIPDESTINO -l 1410 -t
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 de PING acima e vá diminuindo os valores (1500, 1490, 1480, 1470...etc..) até que passe a haver retorno (ao invés de "timed out").
No exemplo que segue, em um teste realizado a partir do Servidor de PDV foi possível verificar que não havia retorno do PING até que o valor de MTU fosse reduzido abaixo de 1411, até esse ponto era exibido "Timed out", porém, assim que utilizado o valor de MTU=1410 é possível conferir na imagem que o PING for normalizado, esse ajuste é necessário quando utilizada VPN, pois 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 (Ex. instalar um PDV de testes/validações) é perfeitamente possível realizar o ajuste temporário (provisório) diretamente no PDV, sem necessidade de aplicar no Servidor de PDV.
Uma outra forma de validar se eventuais falhas no envio de cargas e configurações (do Servidor de PDV para o PDV) podem ser em virtude de erro de MTU é 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 de comunicações com o Servidor de PDV.
LINUX - VERIFICAR MTU
# 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
WINDOWS - VERIFICAR MTU e NOME DA INTERFACE
netsh interface ipv4 show subinterfaces
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, utilize o comando abaixo no Terminal do Linux, nesse utilizaremos o ajuste de MTU para o valor 1410.
# ifconfig eth0 mtu 1410
O resultado de saída do comando acima 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, basta fechar e abrir a aplicação do PDV (para liberar eventuais conexões pendentes) e realizar novos testes de estabilidade e funcionamento (envio de cargas e configurações a partir do AcruxMonitor)
Após a devida análise, verificada a necessidade de ajuste permanente é possível 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.
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
Para conferir se o ajuste foi aplicado, execute novamente o comando da Etapa 2 para exibir os valores de MTU:
Ajuste aplicado com sucesso (MTU=1410)
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:
Mensagem de "Excesso de conexões ou Limite de Conexões excedido"
Dica: Esse é um forte indício de divergência no tamanho máximo do pacote de MTU (faça novamente os testes de Ping com Pacote como no exemplo 2 do Item 1) e siga e realize os procedimentos de Ajuste de MTU.
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
É 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:
É 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
É 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 |
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/
É praticamente a união dos comandos PING e TELNET em apenas um, é um utilitário extremamente simples e funcional, exibe informações sobre PING, JITTER já com o teste na Porta desejada (se não for informada a porta o TCPing utiliza por padrão a porta 80), não vem por padrão instalado no Windows (presente nos Servidores Cloud), mas é possível ser instalado.
É uma excelente forma de testar até mesmo o funcionamento e estabilidade do Go-Global (AppController) de ambientes quando utilizado em conjunto com a respectiva porta.
Exemplos:
TCPING -d -t -j IPDESTINO
TCPING -d -t -j IPDESTINO PORTA
Exemplo de teste de comunicação validando o IP + Porta 8011 de um (PDV).: (no caso abaixo, sem resposta da porta)
TCPING -d -t -j 192.168.0.201 8011
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
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
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/