systemadmin.es » Utilidades » Seguir las llamadas a sistema relacionadas con comunicación por red con strace

Seguir las llamadas a sistema relacionadas con comunicación por red con strace

Anteriormente ya hemos hablado como usar strace para seguir las llamadas a sistema de un proceso, incluso un subconjunto concreto de ellas. Hoy vamos a ver como seguir una clase concreta de llamadas: las relacionadas con comunicación por red.

Para seguir las llamadas relacionadas con comunicación por red sólo deberemos indicarlo mediante la opción trace=network. Podemos ver un ejemplo haciendo un trace a un ping:

# strace -s 128 -fF -e trace=network ping -c 1 www.google.com
socket(PF_INET, SOCK_RAW, IPPROTO_ICMP) = 3
socket(PF_FILE, SOCK_STREAM, 0)         = 4
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = 0
sendto(4, "\2\0\0\0\r\0\0\0\6\0\0\0hosts\0", 18, MSG_NOSIGNAL, NULL, 0) = 18
recvmsg(4, {msg_name(0)=NULL, msg_iov(1)=[{"hosts\0", 6}], msg_controllen=24, {cmsg_len=20, cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, {5}}, msg_flags=0}, 0) = 6
socket(PF_FILE, SOCK_STREAM, 0)         = 4
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
connect(4, {sa_family=AF_INET, sin_port=htons(1025), sin_addr=inet_addr("209.85.227.147")}, 16) = 0
getsockname(4, {sa_family=AF_INET, sin_port=htons(39884), sin_addr=inet_addr("10.12.16.69")}, [16]) = 0
setsockopt(3, SOL_RAW, ICMP_FILTER, ~(ICMP_ECHOREPLY|ICMP_DEST_UNREACH|ICMP_SOURCE_QUENCH|ICMP_REDIRECT|ICMP_TIME_EXCEEDED|ICMP_PARAMETERPROB), 4) = 0
setsockopt(3, SOL_IP, IP_RECVERR, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_SNDBUF, [324], 4) = 0
setsockopt(3, SOL_SOCKET, SO_RCVBUF, [65536], 4) = 0
getsockopt(3, SOL_SOCKET, SO_RCVBUF, [-3759521007472082944], [4]) = 0
PING www.l.google.com (209.85.227.147) 56(84) bytes of data.
setsockopt(3, SOL_SOCKET, SO_TIMESTAMP, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_SNDTIMEO, "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
setsockopt(3, SOL_SOCKET, SO_RCVTIMEO, "\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
sendmsg(3, {msg_name(16)={sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("209.85.227.147")}, msg_iov(1)=[{"\10\0\276S]P\0\1\307]\300J\0\0\0\0\216\337\7\0\0\0\0\0\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 !\"#$%&'()*+,-./01234567", 64}], msg_controllen=0, msg_flags=0}, 0) = 64
recvmsg(3, {msg_name(16)={sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("209.85.227.147")}, msg_iov(1)=[{"E\0\0T\0\0@\0\363\1\270n\321U\343\223\n\f\20E\0\0\306S]P\0\1\307]\300J\0\0\0\0\216\337\7\0\0\0\0\0\20\21\22\23\24\25\26\27\30\31\32\33\34\35\36\37 !\"#$%&'()*+,-./01234567\0\0\0\0\0\245\326\370\372*\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0\0\0\0\20\245\326\370\372*\0\0\0\0\0\0\0\0\0\0"..., 192}], msg_controllen=32, {cmsg_len=32, cmsg_level=SOL_SOCKET, cmsg_type=0x1d /* SCM_??? */, ...}, msg_flags=0}, 0) = 84
socket(PF_FILE, SOCK_STREAM, 0)         = 4
connect(4, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = 0
64 bytes from wy-in-f147.google.com (209.85.227.147): icmp_seq=1 ttl=243 time=38.5 ms

--- www.l.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 38.559/38.559/38.559/0.000 ms

Relacionados

Imprimir Imprimir

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>