.\" -*- coding: UTF-8 -*- '\" t .\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" %%%LICENSE_START(VERBATIM_ONE_PARA) .\" Permission is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" %%%LICENSE_END .\" .\" $Id: raw.7,v 1.6 1999/06/05 10:32:08 freitag Exp $ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH raw 7 "15 dezembro 2022" "Linux man\-pages 6.03" .SH NOME raw \- 'sockets' IPv4 diretos .SH SINOPSE .nf \fB#include \fP \fB#include \fP \fBraw_socket = socket(AF_INET, SOCK_RAW, int \fP\fIprotocolo\fP\fB);\fP .fi .SH DESCRIÇÃO Os 'sockets' diretos (não processados) permitem a implementação de novos protocolos sob o IPv4. Um 'socket' direto recebe ou envia o datagrama bruto, sem incluir cabeçalhos de ligação. .PP A camada IPv4 gera um cabeçalho IP ao enviar um pacote a menos que se ative a opção \fBIP_HDRINCL\fP do 'socket'. Quando ela está habilitada, o pacote deve conter um cabeçalho IP. Um pacote IP que seja recebido terá sempre o cabeçalho IP. .PP In order to create a raw socket, a process must have the \fBCAP_NET_RAW\fP capability in the user namespace that governs its network namespace. .PP All packets or errors matching the \fIprotocol\fP number specified for the raw socket are passed to this socket. For a list of the allowed protocols, see the IANA list of assigned protocol numbers at .UR http://www.iana.org/assignments/protocol\-numbers/ .UE and \fBgetprotobyname\fP(3). .PP A protocol of \fBIPPROTO_RAW\fP implies enabled \fBIP_HDRINCL\fP and is able to send any IP protocol that is specified in the passed header. Receiving of all IP protocols via \fBIPPROTO_RAW\fP is not possible using raw sockets. .RS .TS tab(:) allbox; c s l l. Cabeçalhos IP são midificados quando enviados pelo \fBIP_HDRINCL\fP Soma de verificação do IP:Sempre preenchido Endereço de origem:Preenchido quando zero Packet ID:Preenchido quando zero Tamanho total:Sempre preenchido .TE .RE .PP Se for especificado \fBIP_HDRINCL\fP e o cabeçalho IP tiver um endereço de destino diferente de zero, este endereço é usado para rotear o pacote. Quando for especificado \fBMSG_DONTROUTE\fP o endereço de destino deve apontar para uma interface local, caso contrário é feita uma consulta à tabela de roteamento, mas as rotas com gateways são ignoradas. .PP Se não for especificado \fBIP_HDRINCL\fP as opções do cabeçalho IP podem ser ajustadas nos 'sockets' diretos com \fBsetsockopt\fP(2); ver \fBip\fP(7) para mais informações. .PP Starting with Linux 2.2, all IP header fields and options can be set using IP socket options. This means raw sockets are usually needed only for new protocols or protocols with no user interface (like ICMP). .PP Um pacote recebido é passado para quaisquer 'sockets' diretos que tenham sido atrelados ao seu protocolo antes de ser passado para outros manipuladores deste protocolo (ex. módulos de protocolo do kernel). .SS "Formato de endereço" .\" commit f59fc7f30b710d45aadf715460b3e60dbe9d3418 For sending and receiving datagrams (\fBsendto\fP(2), \fBrecvfrom\fP(2), and similar), raw sockets use the standard \fIsockaddr_in\fP address structure defined in \fBip\fP(7). The \fIsin_port\fP field could be used to specify the IP protocol number, but it is ignored for sending in Linux 2.2 and later, and should be always set to 0 (see BUGS). For incoming packets, \fIsin_port\fP is set to zero. .SS "Socket options" .\" Or SOL_RAW on Linux As opções de 'sockets' diretos podem ser ajustadas com \fBsetsockopt\fP(2) ou lidas com \fBgetsockopt\fP(2) passando\-se o sinalizador designador de família \fBIPPROTO_RAW\fP. .TP \fBICMP_FILTER\fP Habilita um filtro especial para 'sockets' diretos ligados ao protocolo \fBIPPROTO_ICMP\fP. Cada bit deste campo designa um tipo de mensagem ICMP a ser excluída. O padrão é não filtrar nenhuma mensagem ICMP. .PP Além disso, todas as opções de 'socket' \fBIPPROTO_IP\fP \fBip\fP(7) válidas para \&'sockets' de datagrama são suportadas. .SS "Error handling" Erros originários da rede só são passados para o usuário quando o 'socket' está conectado ou o sinalizador \fBIP_RECVERR\fP está habilitado. Os 'sockets' conectados recebem apenas \fBEMSGSIZE\fP e \fBEPROTO\fP para manter a compatibilidade. Com \fBIP_RECVERR\fP todos os erros de rede são enviados para a fila de erros. .SH ERROS .TP \fBEACCES\fP O usuário tentou transmitir para um endereço de broadcast sem que o 'socket' tivesse um sinalizador de broadcast. .TP \fBEFAULT\fP Foi fornecido um endereço de memória inválido. .TP \fBEINVAL\fP Argumento inválido. .TP \fBEMSGSIZE\fP O pacote é grande demais. Ou a pesquisa de MTU do caminho está habilitada (com o sinalizador \fBIP_MTU_DISCOVER\fP) ou o tamanho do pacote excede o máximo de 64\ kB permitido pelo IPv4. .TP \fBEOPNOTSUPP\fP Um sinalizador inválido foi passado para uma chamada de 'socket' (como \fBMSG_OOB\fP). .TP \fBEPERM\fP O usuário não tem permissão para abrir 'sockets' diretos. Apenas processos com user ID efetivo de 0 ou o atributo \fBCAP_NET_RAW\fP podem fazer isto. .TP \fBEPROTO\fP Um mensagem ICMP chegou reportando um erro de parâmetros. .SH VERSÕES \fBIP_RECVERR\fP e \fBICMP_FILTER\fP surgiram no linux 2.2. São extensões linux e não devem ser usadas em programas portáveis. .PP Linux 2.0 enabled some bug\-to\-bug compatibility with BSD in the raw socket code when the \fBSO_BSDCOMPAT\fP socket option was set; since Linux 2.2, this option no longer has that effect. .SH NOTAS By default, raw sockets do path MTU (Maximum Transmission Unit) discovery. This means the kernel will keep track of the MTU to a specific target IP address and return \fBEMSGSIZE\fP when a raw packet write exceeds it. When this happens, the application should decrease the packet size. Path MTU discovery can be also turned off using the \fBIP_MTU_DISCOVER\fP socket option or the \fI/proc/sys/net/ipv4/ip_no_pmtu_disc\fP file, see \fBip\fP(7) for details. When turned off, raw sockets will fragment outgoing packets that exceed the interface MTU. However, disabling it is not recommended for performance and reliability reasons. .PP A raw socket can be bound to a specific local address using the \fBbind\fP(2) call. If it isn't bound, all packets with the specified IP protocol are received. In addition, a raw socket can be bound to a specific network device using \fBSO_BINDTODEVICE\fP; see \fBsocket\fP(7). .PP Um 'socket' \fBIPPROTO_RAW\fP é transmissor apenas. Se você realmente quiser receber todos os pacotes IP use um 'socket' \fBpacket\fP(7) com o protocolo \fBETH_P_IP\fP. Observe que 'sockets packet' não remontam fragmentos IP, ao contrário dos 'sockets' diretos. .PP Se você quiser receber todos os pacotes ICMP de um 'socket' de datagrama, é muitas vezes melhor usar \fBIP_RECVERR\fP neste 'socket'. Ver \fBip\fP(7). .PP Os 'sockets' diretos podem ler todos os protocolos IP no linux, mesmo protocolos como ICMP ou TCP, que têm um módulo de protocolo no kernel. Neste caso, os pacotes são passados tanto para o módulo do kernel e para o(s) \&'socket(s)' diretos. Não se deve contar com isso em programas portáveis, porque muitas implementações de 'sockets' em BSD têm limitações aqui. .PP O linux nunca modifica cabeçalhos enviados pelo usuário, exceto para preencher alguns campos zerados conforme descrito em \fBIP_HDRINCL\fP. Muitas implementações de 'sockets' diretos não se comportam assim. .PP Raw sockets are generally rather unportable and should be avoided in programs intended to be portable. .PP Os 'sockets' diretos enviados lêem o protocolo de \fIsin_port\fP; esta capacidade foi perdida no linux 2.2. A solução é usar \fBIP_HDRINCL\fP. .SH BUGS Extensões transparentes de proxy não estão incluídas. .PP Quando a opção \fBIP_HDRINCL\fP está habilitada os datagramas não serão fragmentados, e ficam limitados à interface MTU. .PP .\" .SH AUTHORS .\" This man page was written by Andi Kleen. O ajuste do protocolo IP para envio no campo \fIsin_port\fP foi perdido no linux 2.2. O protocolo que foi atrelado a este 'socket' ou que foi especificado na chamada inicial à \fBsocket\fP(2) é usado sempre. .SH "VEJA TAMBÉM" \fBrecvmsg\fP(2), \fBsendmsg\fP(2), \fBcapabilities\fP(7), \fBip\fP(7), \fBsocket\fP(7) .PP \fBRFC\ 1191\fP for path MTU discovery. \fBRFC\ 791\fP and the \fI\fP header file for the IP protocol. .PP .SH TRADUÇÃO A tradução para português brasileiro desta página man foi criada por Paulo César Mendes e André Luiz Fassone . .PP Esta tradução é uma documentação livre; leia a .UR https://www.gnu.org/licenses/gpl-3.0.html Licença Pública Geral GNU Versão 3 .UE ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita. .PP Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para .MT debian-l10n-portuguese@lists.debian.org a lista de discussão de tradutores .ME .