1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845
|
.\" -*- nroff -*-
.\" Don't change the line above. it tells man that tbl is needed.
.\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>.
.\" 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.
.\" $Id: ip.7,v 1.1 2000/10/20 13:05:11 ricardo Exp $
.TH IP 7 "11 de maio de 1999" "Linux Man Page" "Manual do Programador Linux"
.SH NOME
ip \- Implementao do protocolo IPv4 em Linux
.SH SINOPSE
.B #include <sys/socket.h>
.br
.B #include <net/netinet.h>
.sp
.IB tcp_socket " = socket(PF_INET, SOCK_STREAM, 0);"
.br
.IB raw_socket " = socket(PF_INET, SOCK_RAW, " protocol ");"
.br
.IB udp_socket " = socket(PF_INET, SOCK_DGRAM, " protocol ");"
.SH DESCRIO
Linux implementa o Protocolo Internet (IP), verso 4,
descrito nas RFC791 e RFC1122.
.B ip
contm uma implementao de multicasting de nvel 2,
conforme a RFC1112. Ele tambm contm um roteador IP
que inclui um filtro de pacotes.
.\" XXX: algum verificou se 2.1 realmente compatvel com 1812?
.PP
A interface do programador compatvel com sockets BSD.
Para maiores informaes sobre sockets, veja
.BR socket (7).
.PP
Um socket IP criado ao se chamar a funo
.BR socket (2)
no formato
.BR "socket(PF_INET, socket_type, protocol)" .
Tipos vlidos de sockets so
.B SOCK_STREAM
para abrir um socket
.BR tcp (7)
,
.B SOCK_DGRAM
para abrir um socket
.BR udp (7)
, ou
.B SOCK_RAW
para abrir um socket
.BR raw (7)
para acessar o protocolo IP protocol diretamente.
.I protocol
o protocolo IP no header IP a ser recebido ou enviado. Os nicos valores
vlidos para
.I protocol
so
.B 0
e
.B IPPROTO_TCP
para sockets TCP, e
.B 0
e
.B IPPROTO_UDP
para sockets UDP. Para
.B SOCK_RAW
Voc deve especificar
um protocolo IP IANA vlido, definido nos
nmeros atribudos na
RFC1700.
.PP
.\" XXX ip corrente faz um autobind em listen, mas no estou certo se isso deveria ser
.\" documentado.
Quando um processo quer receber novos pacotes ou conexes de entrada, ele deveria
ligar um socket a um endereo local de interface, usando
.BR bind (2).
Somente um socket IP pode ser ligado a qualquer par (endereo, porta) local dado.
Quando
.B INADDR_ANY
especificado na chamada 'bind' , o socket ser ligado a
.I todas
as interfaces locais. Quando
.BR listen (2)
ou
.BR connect (2)
so chamados sobre um socket no ligado, o socket automaticalmente ligado a uma
porta livre aleatria, com o endereo local setado em
.BR INADDR_ANY .
Um endereo de socket TCP local que tenha sido ligado indisponvel por
algum tempo depois do fechamento, a menos que o flag
.B SO_REUSEADDR
tenha sido setado. Deve-se tomar cuidado quando se usa este flag, pois ele
torna o TCP menos reliable.
.SH FORMATO DE ENDEREO
Um endereo de socket IP definido como uma combinao de um endereo de interface
IP e um nmero de porta. O protocolo IP bsico no suporta nmero de portas, elas so
implementadas por protocolos de nvel mais alto, como
.BR udp (7)
e
.BR tcp (7).
Em sockets diretos,
.B sin_port
setado para o protocolo IP.
.PP
.RS
.nf
.ta 3n 17n 29n
struct sockaddr_in {
sa_family_t sin_family; /* famlia de endereo: AF_INET */
u_int16_t sin_port; /* porta na ordem de byte da rede */
struct in_addr sin_addr; /* endereo internet */
};
/* Endereo internet. */
struct in_addr {
u_int32_t s_addr; /* endereo na ordem de byte da rede */
};
.ta
.fi
.RE
.PP
.I sin_family
sempre selecionado para
.BR AF_INET .
Este requerido; em Linux 2.2, muitas funes de rede retornam
.B EINVAL
quando esta configurao est faltando.
.I sin_port
contm a porta em ordem de byte da rede. Os nmeros de porta abaixo de 1024 so chamados de
.IR "portas reservadas" .
Somente processos com id efetivo de usurio 0 ou a capabilidade
.B CAP_NET_BIND_SERVICE
podem fazer o
.BR bind (2)
nesses sockets. Note que o protocolo IPv4 direto, como tal, no possui nenhum conceito de
porta, elas somente so implementadas por protocolos superiores, como o
.BR tcp (7)
e o
.BR udp (7).
.PP
.I sin_addr
o endereo IP do host.
O membro
.I addr
de
.B struct in_addr
contm o endereo de interface do host na ordem de rede.
.B in_addr
s deveria ser acessada usando-se as funes de biblioteca
.BR inet_aton (3),
.BR inet_addr (3),
.BR inet_makeaddr (3)
, ou diretamente com o resolvedor de nomes (veja
.BR gethostbyname (3)).
Os endereos IPv4 so divididos em unicast, broadcast
e multicast. Endereos de unicast especificam uma interface nica de um host,
endereos de broadcast especificam todos os hosts de uma rede, e endereos de
multicast endeream todos os hosts em um grupo de multicast. Datagramas dirigidos a endereos de broadcast
s podem ser enviados ou recebidos quando um sinalizador de socket
.B SO_BROADCAST
est selecionado.
Na implementao corrente, sockets orientados a conexo somente tm permisso
para usar endereos de unicast.
.\" Leave a loophole for XTP @)
Note que o endereo e a porta so sempre armazenados na ordem da rede.
Em particular, isto significa que voc precisa chamar
.BR htons (3)
sobre o nmero que atribudo a uma porta. Todas as funes de manipulao de
endereo/porta na biblioteca padro funcionam na ordem da rede.
H vrios endereos especiais:
.B INADDR_LOOPBACK
(127.0.0.1)
sempre se refere ao host local via dispositivo de loopback;
.B INADDR_ANY
(0.0.0.0)
significa qualquer endereo para conexo;
.B INADDR_BROADCAST
(255.255.255.255)
significa qualquer host e tem o mesmo efeito, em uma conexo, que o
.B INADDR_ANY
por razes histricas.
.SH OPES DE SOCKETS
O IP suporta algumas opes de socket especficos de protocolo, que podem ser selecionado com
.BR setsockopt (2)
e lidas com
.BR getsockopt (2).
O nvel de opo de socket para IP
.B SOL_IP.
Um sinalizador inteiro para booleano zero quando falso, e em caso contrrio verdadeiro.
.TP
.B IP_OPTIONS
Seta ou obtm as opes de IP a serem enviadas com cada pacote deste socket.
Os argumentos so um ponteiro para um buffer de memria que
contm as opes, e o comprimento da opo.
A chamada
.BR setsockopt (2)
seta as opes de IP associadas com o socket.
O mximo tamanho de opo para IPv4 40 bytes. Consulte RFC791 para ver as
opes permitidas. Quando o pacote inicial de requisio de conexo para um socket
.B SOCK_STREAM
contm opes de IP, as opes de IP sero setadas automaticamente para as
opes do pacote inicial, com os headers de roteamento revertido.
Pacotes entrantes no tm permisso de mudar opes depois que a conexo
estabelecida.
O processamento de todas as opes entrantes de roteamento da fonte
desabilitada por default, e pode ser habilitada pelo uso do sysctl
.B accept_source_route
. Outras opes, como timestamps, ainda so manipuladas.
Para sockets de datagramas, as opes de IP s podem ser setadas pelo usurio local.
Chamando-se
.BR getsockopt (2)
com
.I IP_OPTIONS
pe-se as opes de IP correntes, usadas para envio, no buffer fornecido.
.TP
.B IP_PKTINFO
Passa uma mensagem ancilar
.I IP_PKTINFO
que contm uma estrutura
.B pktinfo
, que fornece algumas informaes sobre o pacote entrante. Isto s
funciona para sockets orientados a datagramas.
.IP
.RS
.ta 4n 19n 33n
.nf
struct in_pktinfo
{
unsigned int ipi_ifindex; /* ndice da interface */
struct in_addr ipi_spec_dst; /* endereo de destino do roteamento */
struct in_addr ipi_addr; /* endereo do Destino do Header */
};
.fi
.RE
.IP
.\" XXX elaborate on that.
.B ipi_ifindex
o nico ndice da interface onde o pacote foi recebido.
.\" XXX is that correct?
.B ipi_spec_dst
o endereo de destino da entrada da tabela de roteamento e
.B ipi_addr
o endereo de destino no cabealho do pacote.
Se
.I IP_PKTINFO
passado para
.BR sendmsg (2)
ento o pacote de sada ser enviado sobre a interface
especificada em
.B ipi_ifindex
, com o endereo de destino setado em
.B ipi_spec_dst.
.TP
.B IP_RECVTOS
Se habilitado, a mensagem ancilar
.I IP_TOS
passada com pacotes entrantes. Ele contm um byte que especifica o campo
"Tipo de Servio/Precedncia" do cabealho do pacote. Espera um flag
booleano inteiro.
.TP
.B IP_RECVTTL
Quando este flag setado, passa uma
mensagem de controle
.I IP_RECVTTL
com o campo "time to live" do pacote recebido como um byte.
No suportado para sockets
.B SOCK_STREAM
.
.TP
.B IP_RECVOPTS
Passa todas as opes de IP entrantes para o usurio em uma mensagem de controle
.I IP_OPTIONS.
O header de roteamento e outras opes j so preenchidas para o host
local.
No suportado para sockets
.I SOCK_STREAM
.
.TP
.B IP_RETOPTS
Idntico a
.I IP_RECVOPTS
, mas retorna opes diretas no processadas, com opes de timestamp e
registro de rota no preenchidos para este hop.
.TP
.B IP_TOS
Seleciona ou recebe o campo Tipo-de-Servio (Tipo-Of-Service - TOS), que enviado com todos os pacotes IP
originados deste socket. Ele usado para priorizar pacotes na rede.
TOS um byte. H alguns padres de flags TOS definidos:
.B IPTOS_LOWDELAY
para minimizar delays para trfego interativo,
.B IPTOS_THROUGHPUT
para otimizar o fluxo,
.B IPTOS_RELIABILITY
para otimizar a reliability,
.B IPTOS_MINCOST
deveria ser usado como "dado preenchedor" onde transmisses lentas no causam problemas.
No mximo um desses valores de TOS podem ser especificados. Outros bits so
invlidos e sero zerados.
Linux envia datagramas
.B IPTOS_LOWDELAY
primeiro por default,
mas o comportamento exato depende da disciplina de fila configurada.
.\" XXX elaborate on this
Alguns nveis de alta prioridade podem requerer um id efetivo de usurio 0 ou
a capabilidade
.B CAP_NET_ADMIN.
A prioridade tambm pode ser setada de maneira independente de protocolo, pela opo de socket (
.B SOL_SOCKET, SO_PRIORITY
) (veja
.BR socket (7)
).
.TP
.B IP_TTL
Seta ou recupera o campo "time to live" corrente, que enviado em todos os
pacotes originados neste socket.
.TP
.B IP_HDRINCL
Se habilitado,
o usurio fornece um header ip na frente dos dados. Somente
vlido para sockets
.B SOCK_RAW.
Veja
.BR raw (7)
para mais informao. Quando este flag habilitado, os valores setados por
.IR IP_OPTIONS ,
.I IP_TTL
e
.I IP_TOS
so ignorados.
.TP
.B IP_RECVERR
Habilita a passagem estendida e confivel de mensagens de erro.
Quando habilitado sobre um socket de datagrama,
todos os erros gerados sero enfileirados em uma fila de erros por-socket. Quando o usurio
recebe um erro de uma operao de socket, os erros
podem ser recebidos chamando-se
.BR recvmsg (2)
com o sinalizador
.B MSG_ERRQUEUE
selecionado. A estrutura
.B sock_extended_err
descrevendo o erro ser analisada em uma mensagem ancilar,
com o tipo
.I IP_RECVERR
e o nvel
.BR SOL_IP .
Isto til para manipulao confivel de erros ou sockets desconectados.
A parte dos dados recebidos a partir da fila de erros
contm o pacote de erro.
.IP
IP usa a estrutura
.B sock_extended_err
como segue:
.I ee_origin
setado em
.B SO_EE_ORIGIN_ICMP
para erros recebidos como um pacote ICMP, ou
.B SO_EE_ORIGIN_LOCAL
para erros gerados localmente.
.I ee_type
e
.I ee_code
so setados para os campos "tipo" e "cdigo" do header ICMP.
.I ee_info
contm o MTU descoberto para
.B EMSGSIZE
erros.
.I ee_data
no usado atualmente. Quando o erro originou-se na rede, todas as opes de IP
.RI ( IP_OPTIONS ", " IP_TTL ", "
etc.) habilitadas no socket e contidas no pacote de erro
so passadas como mensagens de controle. O "payload" do pacote que
causou o erro retornado como dado normal.
.IP
.\" XXX: is it a good idea to document that? It is a dubious feature.
Em sockets
.B SOCK_STREAM
,
.I IP_RECVERR
tem semnticas ligeiramente diferentes. Em vez de
gravar os erros para o prximo timeout, ele passa todos os erros entrantes
imediatamente para o
usurio. Isto pode ser til para conexes TCP muito curtas, que
precisam de uma manipulao de erros rpida. Use esta opo com cuidado: ela torna o TCP no confivel,
ao no permitir que ele se recupere propriamente de deslocamento de roteamento, e outras
condies e quebras normais da especificao do protocolo.
Note que TCP no tem fila de erro;
.B MSG_ERRQUEUE
ilegal em sockets
.B SOCK_STREAM
.
Portanto todos os erros so retornados pelo retorno de funo do socket ou
.B SO_ERROR
apenas.
.IP
Para sockets diretos,
.I IP_RECVERR
habilita a passagem para o aplicativo de todos os erros ICMP recebidos, caso contrrio os
erros sero relatados apenas nos sockets conectados.
.IP
Ele seta ou recupera um flag booleano inteiro.
.I IP_RECVERR
desligado, por padro.
.TP
.B IP_PMTU_DISCOVER
Seta ou recupera a configurao do Path MTU Discovery
para um socket. Quando habilitado, o Linux realiza o Path MTU Discovery
neste socket como definido na RFC1191.
O sinalizador de no fragmentao selecionado em todos os datagramas de sada.
O padro geral do sistema controlado pelo sysctl
.B ip_no_pmtu_disc
para sockets
.B SOCK_STREAM
, e desabilitado para todos os outros. Para sockets que no so
.B SOCK_STREAM
, responsabilidade do usurio empacotar os dados em blocos grandes,
de tamanho igual ao MTU e fazer a retransmisso, se necessrio.
O kernel rejeitar pacotes que sejam maiores que o MTU da rota conhecida, se
este flag setada (com
.B EMSGSIZE
).
.TS
tab(:);
c l
l l.
Flags do Path MTU Discovery:Significado
IP_PMTUDISC_WANT:Usa configuraes por-rota.
IP_PMTUDISC_DONT:Nunca executa Path MTU Discovery.
IP_PMTUDISC_DO:Sempre executa Path MTU Discovery.
.TE
Quando o PMTU discovery est habilitado, o kernel automaticamente
guarda as informaes do Path MTU por host de destino.
Quando ele conectado a um peer especfico com
.BR connect (2)
, o PMTU conhecido atualmente pode ser recuperado convenientemente usando-se a opo de socket
.B IP_MTU
(por exemplo, depois da ocorrncia de um erro
.B EMSGSIZE
). Isso pode mudar com o tempo.
Para sockets sem conexo com muitos destinos,
o novo also MTU para um dado destino tambm pode ser acessado usando-se a
fila de erros (veja
.BR IP_RECVERR ).
Um novo erro ser enfileirado em toda atualizao de MTU de entrada.
Enquanto o MTU Discovery est em progresso, os pacotes iniciais de sockets
de datagramas podem ser perdidos. Aplicativos usando UDP devem ser alertados sobre isso, e no
levar isso em conta pera a estratgia de retransmisso de pacotes.
Para bootstrap o processo de path MTU discovery em sockets no conectados, possvel iniciar
com um tamanho de datagrama grande (de at 64K-headers bytes de comprimento)
e deix-lo encolher pelas atualizaes do MTU da rota.
.\" XXX this is an ugly hack
Para conseguir uma estimativa inicial do PMTU, conecte um socket de
datagrama a um endereo de destino usando
.BR connect (2)
e recupere o MTU chamando
.BR getsockopt (2)
com a opo
.B IP_MTU
.
.TP
.B IP_MTU
Recupera o PMTU atual do socket corrente.
Somente vlido quando o socket est conectado. Retorna um inteiro. Somente vlido
como um
.BR getsockopt (2).
.\"
.TP
.B IP_ROUTER_ALERT
Passa todos os pacotes "a serem encaminhados" com a opo
"Alerta de Roteador IP"
selecionada
para este socket. Somente vlido para sockets diretos. Isto til, por enquanto, para daemons RSVP do espao do
usurio. Os pacotes mandados no so encaminhados pelo kernel,
responsabilidade do usurio envi-los novamente. A ligao do socket ignorada,
tais pacotes so apenas filtrados pelo protocolo.
Espera um sinalizador inteiro.
.\"
.TP
.B IP_MULTICAST_TTL
Seta ou l o valor de "time-to-live" de pacotes de multicast de
sada para este socket. muito importante para pacotes multicast que seja
setado o menor TTL possvel.
O padro 1, o que significa que pacotes multicast no saem da rede local
a menos que o programa do usurio o requeira explicitamente. O argumento
um inteiro.
.\"
.TP
.B IP_MULTICAST_LOOP
Seta ou l um argumento booleano inteiro se pacotes de multicast enviados
deveriam ser retornados por meio de "loop back" para os sockets locais.
.\"
.TP
.B IP_ADD_MEMBERSHIP
Integra a um grupo de multicast. O argumento uma estrutura
.B struct ip_mreqn
.
.PP
.RS
.nf
.ta 4n 19n 34n
struct ip_mreqn
{
struct in_addr imr_multiaddr; /* endereo IP de grupo de multicast */
struct in_addr imr_address; /* endereo IP da interface local */
int imr_ifindex; /* ndice da interface */
};
.fi
.RE
.IP
.I imr_multiaddr
contm o endereo do grupo de multicast com que a aplicao quer se ligar ou deixar.
Deve ser um endereo de multicast vlido.
.I imr_address
o endereo da interface local com o qual o sistema deveria se unir ao grupo de multicast;
se for igual a
.B INADDR_ANY
, uma interface apropriada escolhida pelo sistema.
.I imr_ifindex
um ndice da interface que vai agregar/abandonar o grupo
.I imr_multiaddr
, ou 0 para indicar qualquer interface.
.IP
Por questo de contabilidade, a antiga estrutura
.B ip_mreq
ainda suportada. Ela difere de
.B ip_mreqn
somente pela no incluso
do campo
.I imr_ifindex.
Somente vlido como um
.BR setsockopt (2).
.\"
.TP
.B IP_DROP_MEMBERSHIP
Abandona um grupo de multicast. O argumento uma estrutura
.B ip_mreqn
ou
.B ip_mreq
, similar a
.IR IP_ADD_MEMBERSHIP .
.\"
.TP
.B IP_MULTICAST_IF
Seta o dispositivo local para um socket multicast. O argumento uma estrutura
.B ip_mreqn
ou
.B ip_mreq
, similar a
.IR IP_ADD_MEMBERSHIP.
.IP
Quando passada uma opo invlida de socket,
.B ENOPROTOOPT
retornado.
.SH SYSCTLS
O protocolo IP
suporta que a interface sysctl configure algumas opes globais.
Os sysctls podem ser acessados pela leitura ou escrita dos arquivos
.B /proc/sys/net/ipv4/*
, ou usando a interface
.BR sysctl (2)
.
.\"
.TP
.B ip_default_ttl
Seta o valor default do "time-to-live" para pacotes de sada. Isso pode ser alterado para
cada socket, com a opo
.I IP_TTL
.
.\"
.TP
.B ip_forward
Habilita "IP forwarding" com um flag booleano. "IP forwarding" tambm pode
ser configurado em uma base por interface.
.\"
.TP
.B ip_dynaddr
Habilita endereo dinmico de socket e reescrita mascarada de entrada em mudana de endereo
de interface. Isto til para interface de dialup com endereos IP variveis.
0 significa sem reescrita, 1 ativa a reescrita, e 2 habilita o modo verbose.
.\"
.TP
.B ip_autoconfig
No documentado.
.\"
.TP
.B ip_local_port_range
Contm dois inteiros que definem a faixa padro de portas locais alocados
para sockets. A alocao comea com o primeiro nmero e termina no segundo.
Note que eles no deveriam conflitar com as portas usadas pelo mascaramento (apesar de que
o caso manipulado). Escolhas arbitrrias tambm podem causar problemas com alguns
filtros de pacotes de firewall que assumem informaes sobre as portas locais em uso.
O primeiro nmero deve ser pelo menos maior que 1024, o melhor que seja maior que 4096 para
evitar conflitos com portas mais conhecidas, e minimizar problemas com o firewall.
.\"
.TP
.B ip_no_pmtu_disc
Se habilitado, no realiza Path MTU Discovery para sockets TCP, por padro. Path
MTU discovery pode falhar se firewalls mal-configurados (que perdem todos os pacotes TCP)
ou interfaces mal-configuradas (por exemplo, um link ponto-a-ponto onde ambos os extremos
no concordam com o MTU) esto na rota. melhor corrigir os roteadores
problemticos na rota do que desligar o Path MTU Discovery globalmente, porque
a no execuo deste ltimo incorre em grandes custos para a rede.
.\"
.TP
.B ipfrag_high_thresh, ipfrag_low_thresh
Se a quantidade de fragmentos IP enfileirados atinge
.B ipfrag_high_thresh ,
a fila
"podada" para
.B ipfrag_low_thresh .
Contm um inteiro com o nmero de
bytes.
.TP
.B ip_always_defrag
[Novo com Kernel 2.2.13; em verses anteriores do kernel, a feature era
controlada em tempo de compilao pela opo
.B CONFIG_IP_ALWAYS_DEFRAG
]
Quando esse flag booleano habilitado (diferente de 0) fragmentos de entrada
(partes de pacotes IP
que surgiram quando algum host, entre a origem e o
destino, decidiram que os pacotes eram grandes demais e os cortaram em
pedaos) sero remontados (desfragmentados) antes de serem processados, mesmo
se eles sero encaminhados.
Somente habilite se estiver rodando um firewall que o link exclusivo
para sua rede, ou um proxy transparente; nunca acione isso para um
roteador normal ou um host. Caso contrrio, uma comunicao
fragmentada pode ser perturbada quando os fragmentos viajam sobre links
diferentes. A desfragmentao tambm consome muita memria e tempo da CPU.
Isto "automagicamente" acionado quando o mascaramento ou o proxy
transparente so configurados.
.TP
.B neigh/*
Veja
.BR arp (7).
.\" XXX Document the conf/*/* sysctls
.\" XXX Document the route/* sysctls
.\" XXX document them all
.SH IOCTLS
Todos os ioctls descritos em
.BR socket (7)
se aplicam a ip.
.PP
Os ioctls que configuram firewalling so documentados em
.BR ipfw (7)
do pacote
.B ipchains
.
.PP
Os ioctls que configuram parmetros genricos do dispositivo so descritos em
.BR netdevice (7).
.\" XXX Add a chapter about multicasting
.SH NOTAS
Tome cuidado com a opo
.B SO_BROADCAST
\- ela no privilegiada em Linux. fcil sobrecarregar a rede com
broadcasts descuidados. Para novos protocolos de aplicativos,
melhor usar um grupo de multicast em vez de broadcast. Broadcast
desencorajado.
.PP
Algumas outras implementaes de sockets BSD provm as opes de socket
.I IP_RCVDSTADDR
e
.I IP_RECVIF
para conseguir o endereo de destino e a interface dos datagramas recebidos.
O Linux tem o
.I IP_PKTINFO
, mais geral para a mesma tarefa.
.PP
.SH ERROS
.\" XXX document all errors. We should really fix the kernels to give more uniform
.\" error returns (ENOMEM vs ENOBUFS, EPERM vs EACCES etc.)
.TP
.B ENOTCONN
A operao s definida em sockets conectados socket, mas o socket no
conectado.
.TP
.B EINVAL
Um argumento invlido foi passado.
Para operaes de envio, isso pode ser causado pelo envio a uma rota
.I blackhole
.
.TP
.B EMSGSIZE
O datagrama maior que um MTU na rota e no pode ser fragmentado.
.TP
.B EACCES
O usurio tentou executar uma operao sem as permisses necessrias.
Isso inclui:
Envio de pacote a um endereo de broadcast sem ter o sinalizador
.B SO_BROADCAST
seleciona.
Envio de um pacote atravs da rota
.I prohibit
.
Modificao de configurao de firewall sem
.B CAP_NET_ADMIN
ou id de usurio efetivo 0.
Ligao em uma porta reservada sem
.B CAP_NET_BIND_SERVICE
ou id de usurio efetivo 0.
.TP
.B EADDRINUSE
Tentativa de ligar a um endereo j em uso.
.TP
.BR ENOMEM " and " ENOBUFS
No h memria disponvel suficiente.
.TP
.BR ENOPROTOOPT " and " EOPNOTSUPP
Uma opo de socket invlida foi passada.
.TP
.B EPERM
Usurio no tem permisso para configurar alta prioridade, mudar configurao,
ou enviar sinais para o processo ou grupo requerido.
.TP
.B EADDRNOTAVAIL
Uma interface no existente foi requerida, ou o endereo de origem requerido
no era local.
.TP
.B EAGAIN
A operao sobre um socket no-bloquevel teria sido bloqueada.
.TP
.B ESOCKTNOSUPPORT
O socket no est configurado, ou um tipo desconhecido de socket foi requerido.
.TP
.B EISCONN
.BR connect (2)
foi chamado em um socket j conectado.
.TP
.B EALREADY
Uma operao de conexo sobre um socket no-bloquevel j est em progresso.
.TP
.B ECONNABORTED
Uma conexo foi fechada durante um
.BR accept (2).
.TP
.B EPIPE
A conexo foi inesperadamente fechada ou derrubada pelo outra extremidade.
.TP
.B ENOENT
.B SIOCGSTAMP
foi chamado em um socket onde nenhum pacote chegou.
.TP
.B EHOSTUNREACH
Nenhuma entrada vlida da tabela de roteamento combina com o endereo de
destino. Este erro pode ser causado por uma mensagem ICMP de um roteador
remoto para a tabela de roteamento local.
.TP
.B ENODEV
Dispositivo de rede no disponvel ou no capaz de enviar IP.
.TP
.B ENOPKG
Um subsistema do kernel no foi configurado.
.TP
.B ENOBUFS, ENOMEM
No h memria livre suficiente.
Isso frequentemente quer dizer que a alocao de memria limitada pelos
limites do buffer de socket, e no pela memria do sistema, mas isso no 100% consistente.
.PP
Outros erros podem ser gerados pelos protocolos de overlay; veja
.BR tcp (7),
.BR raw (7),
.BR udp (7)
e
.BR socket (7).
.SH VERSES
.IR IP_PKTINFO ,
.IR IP_MTU ,
.IR IP_PMTU_DISCOVER ,
.IR IP_PKTINFO ,
.IR IP_RECVERR
e
.IR IP_ROUTER_ALERT
so novas opes no Linux 2.2.
.PP
.B struct ip_mreqn
novo no Linux 2.2. Linux 2.0 somente suporta
.BR ip_mreq .
.PP
Os sysctls foram introduzidos com o Linux 2.2.
.SH COMPATIBILIDADE
Por questes de compatibilidade com o Linux 2.0, a sintaxe obsoleta
.BI "socket(PF_INET, SOCK_RAW, "protocol ")"
ainda suportada para abrir um socket
.BR packet (7)
. Isot obsoleto e deveria ser substitudo por
.BI "socket(PF_PACKET, SOCK_RAW, "protocol ")"
. A diferena principal a
nova estrutura de endereo
.B sockaddr_ll
para informao genrica da camada de link, em vez do antigo
.B sockaddr_pkt.
.SH PROBLEMAS
H muitos valores de erro inconsistentes.
.PP
Os ioctls que configuram opes de interface especficos do IP e tabelas ARP
no esto descritos.
.SH AUTORES
Esta man page foi escrita por Andi Kleen.
.SH "VEJA TAMBM"
.BR sendmsg (2),
.BR recvmsg (2),
.BR socket (7),
.BR netlink (7),
.BR tcp (7),
.BR udp (7),
.BR raw (7),
.BR ipfw (7).
.PP
RFC791 para a especificao IP original.
.br
RFC1122 para os requisitos do host IPv4.
.br
RFC1812 para os requisitos do roteador IPv4.
\" LocalWords: XXX autobind INADDR REUSEADDR
.SH TRADUZIDO POR LDP-BR em 21/08/2000.
\&\fR\&\f(CWRubens de Jesus Nogueira <darkseid99@usa.net> (traduo)\fR
\&\fR\&\f(CWAndr L. Fassone Canova <lonelywolf@blv.com.br> (reviso)\fR
|