Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

My production servers are kept at US east coast and some of the supporting apps are kept at Amsterdam in Europe. There is a Nagios instance running at US east coast as well which does a few port checks and a few checks via ssh.

Problem is that almost every day I observe packet drops using mtr (combo of traceroute and ping) as well as minor service issues which lasts for about 1 minute. I showed these mtr outputs to our service provider in Amsterdam but he denied any issue saying that ICMP (used by mtr) is not a reliable way to measure the drops since ICMP has lowest priority on the routers. So routers can drop ICMP but they'll be just fine for TCP.

How do I prove this to my service provider that there is indeed an issue with his service and he needs to fix it? What are the right tools and techniques for this?

share|improve this question
1  
switching to a service provider that is willing to troubleshoot with you is an option? –  lVlint67 Feb 28 at 7:40
    
Unfortunately, in good times, we signed an annual contract with them. –  Aditya Patawari Feb 28 at 7:52
    
Some tools exist like tcpping or tcptraceroute. I haven't heard of tcp-mtr, but it could also exist. That would circumvent ICMP restrictions. –  Kwaio Feb 28 at 9:36
add comment

3 Answers 3

up vote 2 down vote accepted

It is difficult to definitively prove packet loss.

If this is your goal my recommended strategy would be to:

  • set up host A and host B to test the network between
  • implement iptables rule on each host to count number of packets entering/leaving
    • this means NO stateful tracking rule
  • use iperf to do a TCP test for a period, e.g. 300 seconds
  • dump the iptables on both hosts and compare packet counts

An alternative to using iptables is to look at the tx/rx packet counts of your interface on both hosts (e.g. ifconfig eth0) - make a note at the start of your test, do your transfer test (e.g. using SCP or FTP) - and then calculate if the packets sent from one host equal the packets received on the other host.

Any other technique is going to give you false information. It is true that hosts and intermediate routers will treat ICMP with low priority or maybe not respond to it at all. Often UDP packets are also treated as lower priority so a controlled iperf test using a UDP stream could give false results. And a TCP test without actually counting packets sent and packets received will never reveal much as the underlying operating system handles packet loss.

share|improve this answer
    
I liked iperf the most. Thanks for this. –  Aditya Patawari Mar 5 at 6:37
add comment

Maybe you could try installing smokeping and do some service checks (tcp, http, http, ...). It can do nice graphs of packet loss.

share|improve this answer
    
This looks promising. I'll have a look into this. –  Aditya Patawari Feb 28 at 7:52
add comment

Product Recommendation:

Note: This is a commercial service and costs money $.

In my workplace we use a 3rd party network monitoring service called Wormly.

We use it mainly to make sure that websites are up and running, but we can also do checks on specific ports, etc.

You can get a basic account and set up some sensors to test TCP connections if ICMP is a problem.
It will produce graphs for you, which you can show to your provider.

The tests are done from several towers all over the world, and you can kindly ask the support team to set one particular tower as the primary (we use sydney, so that the graphs show a more realistic ping for our region)

You can even specify certain text or a regex pattern which should be present in the TCP response, which is pretty cool.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.