Difference between revisions of "Ping"

From Linuxintro
imported>ThorstenStaerk
imported>ThorstenStaerk
Line 44: Line 44:
  
 
= MTU =
 
= MTU =
The '''m'''aximum '''t'''ransfer '''u'''nit determines how big network packets can be. A good explanation can be found at http://www.dslreports.com/faq/695. Note that  
+
The '''m'''aximum '''t'''ransfer '''u'''nit determines how big network packets can be. It can be set on the computer and on the network switch. The biggest packets that will be able to travers the internet are 1500 bytes in size. Jumbo-Frames are typically 9000 bytes of size. A good explanation can be found at http://www.dslreports.com/faq/695. Note that  
 
  ping -s 65000 ''192.168.0.1''
 
  ping -s 65000 ''192.168.0.1''
may work even though your switch has a maximum frame size of 9216 set. In this case use
+
is not sufficient to say if packets of 65000 bytes are possible. Better use
 
  ping -M do -s 65000 ''192.168.0.1''
 
  ping -M do -s 65000 ''192.168.0.1''
  

Revision as of 12:12, 16 August 2011

Ping allows you to see if a computer is reachable via the network and to measure the network latency. You stop it with CTRL_C.

Example:

# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.19 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.417 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=0.382 ms

In this example we have a latency of below 1 milisecond and 192.168.0.1 is up

Broadcast ping

A broadcast ping can be described as a request "Anybody who hears this, please respond back". The problem is that you can configure computers to ignore these requests.

To tell your computer to answer on broadcast pings, open a console and issue:

echo "0" >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

To verify if your computer is set to answer on broadcast pings, issue:

sysctl net.ipv4.icmp_echo_ignore_broadcasts

In this case, the response

net.ipv4.icmp_echo_ignore_broadcasts = 0

means it is set to answer broadcast pings.

To perform a broadcast ping,

  • Find out the broadcast address of the network where you want to broadcast
ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:1C:F0:BB:06:C8
          inet addr:192.168.0.5  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21c:f0ff:febb:6c8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:315742 errors:0 dropped:0 overruns:0 frame:0
          TX packets:297176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:195071533 (186.0 Mb)  TX bytes:41401952 (39.4 Mb)
          Interrupt:21 Base address:0x4000
  • ping the broadcast IP
# ping -b 192.168.0.255
WARNING: pinging broadcast address
PING 192.168.0.255 (192.168.0.255) 56(84) bytes of data.
64 bytes from 192.168.0.5: icmp_seq=1 ttl=64 time=0.039 ms 

Broadcast ping does not work?

try nmap like this:

nmap 192.168.0.0/24

MTU

The maximum transfer unit determines how big network packets can be. It can be set on the computer and on the network switch. The biggest packets that will be able to travers the internet are 1500 bytes in size. Jumbo-Frames are typically 9000 bytes of size. A good explanation can be found at http://www.dslreports.com/faq/695. Note that

ping -s 65000 192.168.0.1

is not sufficient to say if packets of 65000 bytes are possible. Better use

ping -M do -s 65000 192.168.0.1

Ping does not work

If you change a host's IP in /etc/hosts and this change is not reflected instantly by ping, restart the name service cache daemon:

/etc/init.d/nscd restart

and check /etc/nsswitch.conf

See also