Realização de testes relacionados a validação da comunicação Site-to-Site necessária entre os PDVs e o Monitor de PDV.
É importante deixar claro e dividir as questões relacionadas a comunicação em VPN em duas situações distintas:
É 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
É 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.
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)
PING NUMEROIPDESTINO -l 1410 -t
Exemplo: Ping 192.168.13.208 -l 1410 -t
No exemplo da imagem logo abaixo, em teste realizado a partir do Servidor de PDV é possível verificar que a comunicação só se mostrou estável em MTU=1410, sendo que, acima (1411) não havia resposta (timed out), nesse cenário será necessário ajustar o tamanho do MTU para que a comunicação ocorra da forma esperada entre Servidor de PDV x PDV, pois essa divergência acarreta mensagens de "Falha" no envio de cargas e configurações e até inviabilizar a ativação de PDV sendo instalado, já que não irá se comunicar corretamente com o Servidor de PDV.
A alteração pode ser realizada tanto no Servidor de PDV (pois já contempla todos o PDVs, sejam aqueles já instalados ou que venham a ser futuramente), o que no caso demanda solicitação via email/ticket ou ainda, a titulo de validação e para agilizar processos ou testes, no próprio PDV (antes de solicitar no Servidor de PDV), pois isso o próprio analista/especialista pode realizar pontualmente.
Como a maioria dos equipamentos já vem por padrão com MTU configurado para 1500 e mesmo acima, sugerimos que o teste de PING com Pacote de MTU seja iniciado com o valor 1500 e então ir diminuindo até que seja obtido retorno do PING em questão (conforme imagem abaixo) ao invés de "timed out" .
Indicamos a realização dos testes citados logo na instalação do 1º PDV.
Verificando MTU estável:
De forma complementar e em paralelo é possível e indicado realizar um teste de NetStat na porta 8011 via Terminal Linux do PDV de Validações se o mesmo já se encontrar instalado para conferir se o mesmo está acumulando conexões naquela porta.
LINUX
# 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
netsh interface ipv4 show subinterfaces
COMO ALTERAR O TAMANHO DO MTU NO PDV
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 do Linux, executar:
# 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
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.
ALTERAÇÃO MTU
Via prompt de comando
1. Abra o prompt de comando como administrador.
2.Execute o seguinte comando para determinar o índice da interface que você quer atualizar:
netsh interface ipv4 show interface
3.Atualize a interface:
netsh interface ipv4 set interface INTERFACE_INDEX mtu=MTU store=persistent
Via Powershell
1.Abra o PowerShell como administrador.
2.Execute este comando:
Set-NetIPInterface -InterfaceAlias INTERFACE_NAME -AddressFamily IPv4 -NlMtu MTU
3.Execute o seguinte comando para atualizar as configurações do driver do dispositivo:
Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword MTU -RegistryValue MTU
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 7011
Do PDV para o Monitor de PDV
Estando no terminal, digitar Telnet IP_do_Monitor_de_PDV 7011
Ex. Telnet 10.0.1.6 8011
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 que pode haver divergência no tamanho máximo suportado do pacote de MTU (exemplo de Ping no Item 1)
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/
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
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
Problema : Pacotes de atualização, não estavam sendo baixados no PDV.
A solução foi habilitar o TCP MSS Clamping em todo o tráfego entre a rede local e a VPN e vice-e-versa, este ajuste varia de firewall para firewall.