Linux: значение Time To Live (TTL) для TCP и UDP пакетов

Автор: | 22/11/2014

linux_logoПонадобилось узнать точное значение в конкретной системе.
В документе RFC 1700 сказано:

IP TIME TO LIVE PARAMETER

The current recommended default time to live (TTL) for the
Internet Protocol (IP) [45,105] is 64.

Что бы проверить реальное значение (например, в CentOS) – можно использовать tcpdump с ключём -v и указанием протокола.

Например, для UDP:

# tcpdump udp -n -v
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:32:13.006266 IP (tos 0x0, ttl 128, id 13007, offset 0, flags [none], proto UDP (17), length 68)
    77.***.***.16.59304 > 255.255.255.255.hlserver: UDP, length 40

TTL = 128

А для TCP:

# tcpdump tcp -n -v
12:32:55.773880 IP (tos 0x10, ttl 64, id 42971, offset 0, flags [DF], proto TCP (6), length 600)
    77.***.***.20.EtherNet/IP-1 > 85.91.123.15.18489: Flags [P.], cksum 0x8741 (incorrect -> 0x1aba), seq 95344:95904, ack 865, win 1002, length 560

TTL = 64, как и должно быть согласно RFC.

Для прочих систем значения можно найти в таблице:

	+--------------------+-------+---------+---------+
	| OS Version	     |"safe" | tcp_ttl | udp_ttl |
	+--------------------+-------+---------+---------+
	  AIX			  n	 60	   30
	  DEC Pathworks V5	  n	 30	   30
	  FreeBSD 2.1R		  y	 64	   64
	  HP/UX	 9.0x		  n	 30	   30
	  HP/UX	10.01		  y	 64	   64
	  Irix 5.3		  y	 60	   60
	  Irix 6.x		  y	 60	   60
	  Linux		 	  y	 64	   64
	  MacOS/MacTCP 2.0.x	  y	 60	   60
	  OS/2 TCP/IP 3.0	  y	 64	   64
	  OSF/1 V3.2A		  n	 60	   30
	  Solaris 2.x		  y	255	  255
	  SunOS 4.1.3/4.1.4	  y	 60	   60
	  Ultrix V4.1/V4.2A	  n	 60	   30
	  VMS/Multinet		  y	 64	   64
	  VMS/TCPware		  y	 60	   64
	  VMS/Wollongong 1.1.1.1  n	128	   30
	  VMS/UCX (latest rel.)	  y	128	  128
	  MS WfW		  n	 32	   32
	  MS Windows 95		  n	 32	   32
	  MS Windows NT 3.51      n	 32	   32
	  MS Windows NT 4.0       y	128	  128