Medindo a latência por link / tremulação / perda de pacotes

9

Preciso medir a latência, instabilidade e perda de pacotes por link em uma rede, em vez de ponta a ponta, por exemplo:

s1-eth0 <--> s2-eth0 (~ 20µs de latência média, derivação padrão 10µs, 57% de perda de pacotes / último segundo)

s2-eth1 <--> s3-eth0 (~ 25µs de latência média, derivação padrão 5µs, 21% de perda de pacotes / último segundo)

...

Todas as soluções que encontrei foram propostas acadêmicas ou envolvem o uso de hardware dedicado para análise ativa.

Aqui está um resumo do que, de acordo com minha pesquisa, não funciona:

  • NetFlow: sem informações de latência, apenas de ponta a ponta
  • Análise ativa: Não é possível alterar a configuração da rede
  • Medir o tempo de ida e volta: não fornece estatísticas por link

Existe algum protocolo de rede, ferramenta de medição ou outra funcionalidade que forneça todas ou pelo menos algumas das estatísticas acima?

user1923488
fonte

Respostas:

12

Em dispositivos Cisco, você pode usar o Cisco IP SLA. Você precisa primeiro configurá-lo e habilitá-lo e depois monitorar os resultados.

Passos:

1. ip sla monitor operation-number

2. type echo protocol ipIcmpEcho {destination-ip-address | destination-hostname} [source-ipaddr {ip-address | hostname} | source-interface interface-name]

3. frequency seconds

4. ip sla monitor schedule operation-number [life {forever | seconds}] [start-time {hh:mm[:ss] [month day | day month] | pending | now | after hh:mm:ss] [ageout seconds] [recurring]

O exemplo de configuração foi retirado da Cisco: SLAs IP - Analisando os níveis de serviço IP usando a operação de eco ICMP .

Router> enable
Router# configure terminal
Router(config)# ip sla monitor 10
Router(config-sla-monitor)# type echo protocol ipIcmpEcho 172.29.139.134
Router(config-sla-monitor-echo)# frequency 300
Router(config-sla-monitor-echo)# exit
Router(config)# ip sla monitor schedule 10 start-time now life forever

Monitorar:

show ip sla monitor statistics
Ahmet Cemil Sabır
fonte
6

No hardware do zimbro, você pode usar o serviço RPM para obter essas medidas. O serviço pode ser configurado para monitorar interfaces específicas que ajudarão com o requisito 'por link'.

user5469
fonte
4

Confira o protocolo Y.1731 (ou IEEE 802.1ag ou OAM). É bastante fácil de implementar em software (acho que é isso que você pretende) e é suportado por todos os elementos físicos da rede.

Há uma implementação Y.1731 de código aberto muito ingênua em C , que você pode ver.

Observe que o Y.1731 não foi projetado para cruzar os limites da rede física (ou seja, exige que os endereços MAC de ambos os MEPs sejam conhecidos); portanto, se você precisar passar pelo roteamento IP, deverá encapsular seus quadros Y.1731 em alguns túneis. protocolo, como VXLAN ou GRE.

Espero que isto ajude.

Gal-Or Eshed
fonte
4

O Etherate permite medir a taxa de transferência, latência e perda de pacotes (quadros) na camada 2 diretamente na Ethernet (que soa como o que você está procurando). Ele não mede o jitter no momento, mas o fará no futuro.

Utilizando-o, você pode gerar tráfego Ethernet da camada 2 de uma maneira controlada que você pode medir.

Você pode especificar a duração do fluxo de tráfego, tamanho do quadro, bits por segundo / bytes por segundo, total de bytes a serem transferidos, ethertype, ID da VLAN e valor do PCP. Você também pode aceitar os quadros da camada 2 se desejar testar a perda na camada 2.

Quando o teste é concluído, o host Rx exibe uma contagem de quadros de teste recebidos (se este for menor que o número de quadros enviados pelo host Tx, que fornece o valor da perda de quadros), quadros que não são de teste recebidos, quadros de teste recebidos em quadros de pedido e teste recebidos fora de ordem (antecipado ou atrasado).

https://github.com/jwbensley/etherate

jwbensley
fonte