Ambiente de desenvolvimento - instruções de configuração de parâmetros de serviço de rede Linux (/ proc / sys / net / ipv4 / *)

Os parâmetros de tempo de execução correspondentes a este artigo estão localizados em: / proc / sys / net / ipv4 / *. O "controle" desses parâmetros pode aumentar muito suas habilidades na solução de problemas e ajustes de serviço de rede Linux. Este é o conhecimento necessário para o "mestre do sistema".

Existem duas maneiras de alterar temporariamente o valor de um parâmetro do sistema. Por exemplo, se você deseja ativar o roteamento de IP e a função de encaminhamento:

echo 1> / proc / sys / net / ipv4 / ip_forward

ou

sysctl -w net.ipv4.ip_forward = 1

Ambos os métodos acima podem ativar instantaneamente a função de roteamento e encaminhamento. No entanto, se o sistema for reiniciado ou o comando "service network restart" for executado, o valor definido será perdido. Se quiser manter a configuração permanentemente, você pode modificar:

/etc/sysctl.conf Altere net.ipv4.ip_forward = 0 para net.ipv4.ip_forward = 1 e execute sysctl -p.

O significado dos parâmetros comuns do comando do sistema sysctl:

-w Altera temporariamente o valor de um parâmetro especificado.
-a Exibe todos os parâmetros do sistema.
-p Carrega os parâmetros do sistema do arquivo especificado e carrega-os de /etc/sysctl.conf por padrão.
Configuração de parâmetro de serviço relacionado ao ICMP

Normalmente usamos pacotes icmp para detectar se outros protocolos (como TCP e UDP) no host de destino estão disponíveis. Por exemplo, o pacote icmp contendo informações de "destino inacessível" é o aplicativo icmp mais comum.

icmp_destunreach_rate

    INTEGER. Defina a taxa de resposta dos pacotes icmp cujo conteúdo é "Destino inacessível". O valor de configuração deve ser um número inteiro, em instantes.

    Por exemplo. Supondo que haja dois hosts, A e B, primeiro executamos a seguinte instrução ipchains no host A: "ipchains-A input -p icmp -j REJECT", onde REJECT e DENY são diferentes, DENY descartará pacotes elegíveis como se eles não tivessem sido recebidos É o mesmo que o pacote, e REJECT enviará de volta um icmp "Destino Inacessível" para o host solicitante enquanto elimina o pacote. Em seguida, execute ping no host A no host B. Neste momento, descobriremos que a velocidade de resposta do pacote icmp "Destino inacessível" é muito oportuna. Em seguida, executamos no host A: "echo" 1000 "> / proc / sys / net / ipv4 / icmp_destunreach_rate", ou seja, respondemos a um pacote icmp "Destino inacessível" a cada 10 segundos. Neste momento, ao executar ping no host A do host B, você descobrirá que a velocidade de resposta do pacote icmp "Destino inacessível" diminuiu significativamente, o que acontece ser uma resposta a cada 10 segundos.

icmp_echo_ignore_all

    BOLEANO. Defina se o sistema ignora todas as solicitações ICMP Echo. Se um valor diferente de zero for definido, o sistema irá ignorar todas as solicitações ICMP Echo. Na verdade, este é um caso extremo de icmp_echoreply_rate. 1: Ignorar, 0: Resposta.

    O comando Ping envia uma mensagem de solicitação de eco ICMP ao computador e monitora o retorno da mensagem de resposta para verificar a conexão com o computador remoto ou local.

    Configurá-lo como 1 pode evitar que você seja usado como um trampolim para ataques DoS.

icmp_echo_ignore_broadcasts

    BOLEANO. Defina se deve responder à transmissão de solicitação de eco icmp, o valor de configuração deve ser um valor booleano, 0 significa responder à transmissão de solicitação de eco icmp, 1 significa ignorar.

    Esta pode ser uma ferramenta muito útil para prevenir ataques de negação de serviço. Defina como 1 para ignorar essas mensagens de difusão de sub-rede.

    Nota: O sistema Windows não responde à transmissão de solicitação de eco icmp.

    Por exemplo: Em RedHat6.x e RedHat7, o valor padrão é 0, de modo que quando um usuário enviar um ping para o endereço de rede do segmento de rede (sub-rede) onde os dois servidores estão localizados, todos os servidores Linux responderão, o que também pode Deixe o usuário obter o endereço IP do servidor. Agora você pode executar "echo" 1 "> / proc / sys / net / ipv4 / icmp_echo_ignore_broadcasts" para desligar esta função, evitando assim a tempestade icmp e o congestionamento da rede.

icmp_echoreply_rate

    INTEGER. Defina a velocidade de resposta do sistema em resposta ao pacote icmp solicitado por icmp echo.

    Exemplo: suponha que haja dois hosts A e B. Primeiro, executamos ping no host A no host B e podemos ver que a resposta é normal e, em seguida, executamos "echo" 1000 "> / proc / sys / net / ipv4 / icmp_echoreply_rate no host A "Isso é para responder a um pacote de solicitação de eco ICMP a cada 10 segundos. Em seguida, execute ping no host A e você verá que a velocidade de resposta atingiu 10 segundos.

    O valor deste parâmetro pode ser ajustado razoavelmente para evitar tempestade de icmp.

icmp_ignore_bogus_error_responses

    BOLEANO. Depois de configurá-lo, você pode ignorar os erros ICMP gerados por hosts na rede que afirmam que o endereço de resposta é um endereço de broadcast.

icmp_paramprob_rate

    INTEGER. Quando o sistema recebe o cabeçalho IP ou TCP danificado do datagrama, ele enviará um pacote icmp contendo as informações de erro para a fonte. Este parâmetro é usado para definir a velocidade de envio de tais pacotes icmp para a origem. Obviamente, é raro que erros de cabeçalho IP ou TCP sejam comuns em circunstâncias normais.

icmp_timeexceed_rate

    INTEGER. Quando um datagrama é transmitido na rede, seu campo time to live continua diminuindo.Quando o tempo de vida é 0, o roteador que está processando o datagrama irá descartar o datagrama e enviar um campo “time to live” para o host de origem. para viver excedido "pacote icmp. Este parâmetro é usado para definir a velocidade de envio deste pacote icmp. Claro, isso geralmente é usado como um host Linux como um roteador.

    Levando à famosa "estrela do meio Solaris" durante o traceroute.

Configuração de parâmetro de serviço relacionado a IP

ip_autoconfig

    BOLEANO. Indica se o host (1) ou não (0) obtém sua configuração IP através de RARP, BOOTP, DHCP ou outros mecanismos.

ip_default_ttl

    INTEGER. O valor padrão é 64. A vida útil do pacote. Definir como 64 é seguro. Se a sua rede for grande, aumente este valor. Não faça isso por diversão - isso criará loops de roteamento prejudiciais. Na verdade, em muitos casos, você deve considerar se pode reduzir esse valor.

    TTL é um valor no pacote de protocolo IP, que informa à rede se o pacote de dados está na rede há muito tempo e deve ser descartado. Existem muitos motivos pelos quais o pacote não pode ser entregue ao destino dentro de um determinado período de tempo. A solução é descartar o pacote após um período de tempo e, em seguida, enviar uma mensagem ao remetente, que decide se o reenvia. O valor inicial de TTL é geralmente o valor padrão do sistema, que é um campo de 8 bits no cabeçalho do pacote. A ideia original do TTL é determinar um intervalo de tempo, após o qual o pacote será descartado. Como cada roteador deve reduzir o campo TTL em pelo menos um, o TTL geralmente indica o número máximo de roteadores pelos quais um pacote pode passar antes de ser descartado. Quando a contagem chega a 0, o roteador decide descartar o pacote e enviar uma mensagem ICMP ao remetente original.

ip_dynaddr

    0 1 2 Enumeração. Este parâmetro é geralmente usado no caso de uma conexão dial-up, que pode permitir que o sistema altere imediatamente o endereço de origem do pacote IP para o endereço IP e, ao mesmo tempo, interrompa a conversa TCP original e reemita um pacote de solicitação de sincronização com o novo endereço para iniciar uma nova conversa TCP . Ao usar o spoofing de IP, este parâmetro pode alterar imediatamente o endereço e fingir ser um novo endereço IP. O valor do parâmetro deste parâmetro pode ser: 1-habilitar esta função; 2-usar o modo redundante para habilitar esta função; 0-desabilitar esta função.

    Exemplo de aplicação: ao usar ipchains para configurar spoofing de IP para conduzir a LAN para compartilhar uma conexão ppp com a Internet, às vezes pode parecer que um site não pode ser conectado quando é aberto e pode ser conectado novamente após a atualização. Neste momento, você pode definir o valor deste parâmetro para 1. Portanto, esse tipo de problema pode ser resolvido alterando imediatamente o endereço falso para um novo endereço IP. O comando é: echo "1"> / proc / sys / net / ipv4 / ip_dynaddr.

ip_forward

    BOLEANO. O valor padrão é 0. Se o kernel encaminha pacotes de dados. Desativado por padrão (0). Habilitando (1) este parâmetro pode fazer o sistema atuar como um roteador. Observe que podemos implementar o encaminhamento de IP em um host com uma única placa de rede ou duas placas de rede.

    Exemplo: suponha que usamos um host Linux com placas de rede duplas para atuar como firewall. Neste momento, devemos executar o seguinte comando para habilitar a função de encaminhamento de IP: "echo" 1 "> / proc / sys / net / ipv4 / ip_forward".

ip_local_port_range

    INTEGER. O intervalo de portas usado para conexões externas. Por padrão: 1024 a 4999 (na verdade, muito pequeno).

ip_no_pmtu_disc

    BOLEANO. O valor padrão é 0. Defina-o se quiser desabilitar "MTU discovery ao longo do caminho".

    A "descoberta de MTU ao longo do caminho" é uma tecnologia que pode detectar o valor máximo possível de MTU (Unidade Máxima de Transmissão) no caminho de transmissão.

ipfrag_high_thresh

    INTEGER. O uso máximo de memória para agregação de fragmentos de IP. Depois de alocar tantos bytes de memória, uma vez que ela se esgote, o manipulador de fragmentos descartará o fragmento.

ipfrag_low_thresh

    INTEGER. O uso mínimo de memória para agregação de fragmentos de IP.

ipfrag_time

    INTEGER. O tempo de retenção (em segundos) de fragmentos de IP na memória.

ip_nonlocal_bind

    BOLEANO. O valor padrão é 0. Se você deseja que o aplicativo seja capaz de se vincular a um endereço que não pertence à placa de rede local, defina esta opção. Isso é muito útil quando sua máquina não possui uma conexão de linha dedicada (ou mesmo uma conexão dinâmica), porque mesmo se sua conexão for desconectada, seu serviço pode ser iniciado e vinculado a um endereço especificado.

Configuração de parâmetro de serviço relacionado a TCP

No protocolo TCP / IP, o protocolo TCP fornece um serviço de conexão confiável e usa um handshake de três vias para estabelecer uma conexão.
O primeiro handshake: quando a conexão é estabelecida, o cliente envia um pacote syn (syn = j) para o servidor e entra no estado SYN_SEND, aguardando a confirmação do servidor; o
segundo handshake: o servidor recebe o pacote syn e deve confirmar o SYN do cliente (ack = j + 1), e ao mesmo tempo enviar um pacote SYN (syn = k), ou seja, um pacote SYN + ACK, e o servidor entra no estado SYN_RECV;

O terceiro handshake: o cliente recebe o pacote SYN + ACK do servidor e envia um pacote de confirmação ACK (ack = k + 1) para o servidor. Depois que esse pacote é enviado, o cliente e o servidor entram no estado ESTABLISHED. Depois que o handshake triplo é concluído, o cliente e o servidor Comece a transferir dados.

tcp_abort_on_overflow

    BOLEANO. O valor padrão é 0. Quando o daemon está muito ocupado para aceitar novas conexões, é como se a outra parte enviasse uma mensagem de reinicialização (pacote RST). Isso significa que, quando a causa do estouro for uma explosão acidental, a conexão será restaurada. Somente ative esta opção quando tiver certeza de que o daemon não pode completar a solicitação de conexão.Esta opção afetará o uso do cliente.

    Para serviços como sendmail e apache que já estão totalmente carregados, abri-los pode encerrar rapidamente a conexão do cliente e dar ao programa de serviço a chance de armazenar em buffer as conexões existentes. Portanto, muitos firewalls recomendam abri-lo.

    RST (Redefinir a conexão): usado para redefinir o erro de conexão TCP causado por algum motivo e também usado para rejeitar dados e solicitações ilegais. Se o bit RST for recebido, geralmente ocorrem alguns erros.

tcp_fin_timeout

    INTEGER. O valor padrão é 60. Para a conexão de soquete desconectada na extremidade local, este parâmetro determina o tempo que ela permanece no estado FIN-WAIT-2. A extremidade oposta pode cometer um erro e nunca fechar a conexão, ou mesmo travar inesperadamente. O valor padrão é 60 segundos e o valor normal do kernel do Linux 2.2 é 180 segundos. Você pode pressionar esta configuração, mas lembre-se de que mesmo se sua máquina for um servidor WEB levemente carregado, isso pode ser causado por um grande número de soquetes mortos. O risco de estouro de memória. FIN-WAIT-2 é menos perigoso do que FIN-WAIT-1 porque pode consumir até 1,5K de memória, mas sua vida útil é mais longa. Veja tcp_max_orphans.

    Na verdade, ao fazer o NAT, reduzir o valor também é significativo. Você pode considerar reduzir o valor para 30.

    Nota: O término do TCP é alcançado por meio do handshake de quatro vias entre as duas partes. A parte que inicia o encerramento executa o desligamento ativo e a outra parte respondente executa o desligamento passivo.
    O iniciador altera o status para FIN_WAIT_1, fecha o processo de aplicação e envia um segmento FIN TCP; o
    receptor recebe o segmento FIN, retorna um ACK com um número de sequência de confirmação e envia um símbolo de fim de arquivo EOF para seu processo correspondente e altera o status ao mesmo tempo CLOSE_WAIT, o iniciador altera o status para FIN_WAIT_2 após receber o ACK; o
    receptor fecha o processo de inscrição, altera o status para LAST_ACK e envia um segmento TCP FIN para a outra parte; o
    iniciador altera o status para TIME_WAIT após receber o FIN e o envia Confirmação de ACK do FIN. Depois que o ACK é enviado com sucesso (dentro de 2MSL), o status TCP de ambas as partes torna-se FECHADO.

tcp_keepalive_time

    INTEGER. O valor padrão é 7200 segundos (2 horas). Quando o keepalive está ativado, a freqüência com que o TCP envia mensagens de keepalive.

    Devido aos ataques de rede atuais e outros fatores, os ataques que usam isso são muito frequentes. Se os dois lados estabelecerem uma conexão e não enviarem dados ou mensagens rst / fin, a duração será de 2 horas, o que aumentará o risco de ataques de conexão vazia. tcp_keepalive_time é para evitar essa situação. Geralmente, modifique este valor para 1800 segundos ao fazer o serviço nat.

tcp_keepalive_intvl

    INTEGER. O valor padrão é 75 segundos. Quando a detecção de keepalive não é confirmada, a frequência com que a mensagem de detecção é enviada. O valor padrão de 75 segundos é multiplicado por tcp_keepalive_probes para obter o tempo para eliminar as conexões que não responderam desde o início do probe. Ou seja, as conexões que não estão ativas serão interrompidas após cerca de 11 minutos.

    Para aplicações comuns, este valor é um pouco maior e pode ser alterado para um valor menor conforme necessário. Especialmente para servidores web, esse valor precisa ser reduzido. 15 segundos pode ser um valor mais apropriado.

tcp_keepalive_probes

    INTEGER. O valor padrão é 9. Quantos pacotes de teste de manutenção de atividade TCP são enviados antes de determinar que a conexão é inválida / desconectada. O valor padrão de 9 é multiplicado por tcp_keepalive_intvl para determinar por quanto tempo uma conexão pode não ter resposta após o envio de um keepalive (ibid.).

    Nota: Keep alive é enviado apenas quando a opção de soquete SO_KEEPALIVE está ativada. O parâmetro não precisa ser modificado por padrão. Claro, este valor pode ser encurtado apropriadamente de acordo com a situação. Pode ser mais apropriado configurá-lo para 5.

tcp_max_orphans

    INTEGER. O valor padrão é 8192. O número máximo de soquetes TCP que o sistema pode manipular e que não pertencem a nenhum processo. Se este número for excedido, as conexões que não pertencem a nenhum processo serão reiniciadas imediatamente e uma mensagem de aviso será impressa. A razão para definir esse limite é puramente para resistir a esses ataques DoS simples. Você não deve confiar muito neste parâmetro ou reduzir artificialmente o valor desse parâmetro. Você deve aumentar esse valor (se você aumentar a memória).

    Nota: Cada "soquete órfão" pode consumir até 64K de sua memória não trocável.

    Este valor de parâmetro é definido como 32768 na versão Redhat AS, mas quando muitos firewalls são modificados, o valor recomendado é 2.000.

tcp_orphan_retries

    INTEGER. O valor padrão é 7. Quantas tentativas devem ser realizadas antes que a extremidade local descarte a conexão TCP. O valor padrão é 7 vezes, o que equivale a 50 segundos-16 minutos, dependendo do RTO. Se o seu sistema for um servidor da Web muito carregado, pode ser necessário diminuir esse valor, pois esses soquetes podem consumir muitos recursos. Consulte também tcp_max_orphans.

    Ao fazer o NAT, a redução do valor também é significativa, você pode tentar reduzir o valor para 3 ou menos.

tcp_max_syn_backlog

    INTEGER. Para aquelas solicitações de conexão que ainda não receberam confirmação do cliente, o número máximo que precisa ser armazenado na fila. Para sistemas com mais de 128 MB de memória, o valor padrão é 1024; para sistemas com menos de 128 MB de memória, é 128. Se o servidor fica sobrecarregado com frequência, você pode tentar aumentar esse número.

    Aviso: Se você definir este valor como maior que 1024, é melhor modificar TCP_SYNQ_HSIZE em include / net / tcp.h para manter TCP_SYNQ_HSIZE * 16 <= tcp_max_syn_backlog e recompilar o kernel.

    O ataque SYN Flood usa o protocolo TCP para espalhar as falhas do handshake, forjando um endereço IP de origem falso para enviar um grande número de conexões TCP-SYN semi-abertas ao sistema de destino e, eventualmente, fazendo com que os recursos da fila de Sockets do sistema de destino se esgotem e não sejam capazes de aceitar novas conexões. Para lidar com este tipo de ataque, o processamento de fila de múltiplas conexões é comumente usado em sistemas Unix modernos para armazenar em buffer (ao invés de resolver) esse tipo de ataque: uma fila básica é usada para processar aplicativos normais totalmente conectados (Conectar () e Aceitar ()), e Use outra fila para armazenar conexões semiabertas separadamente. Quando este método de processamento de fila dupla é combinado com outras medidas de kernel do sistema (como Syn-Cookies / Caches), ele pode efetivamente aliviar ataques de inundação SYN em pequena escala (verifica-se que <1000p / s). Aumente o comprimento da fila SYN para acomodar Mais conexões de rede aguardando para serem conectadas, portanto, considere aumentar esse valor para Servidor.

tcp_max_tw_buckets

    INTEGER. O valor padrão é 180000. O número máximo de soquetes de espera de tempo que o sistema pode manipular ao mesmo tempo. Se esse número for excedido, o soquete de tempo de espera será limpo imediatamente e uma mensagem de aviso será exibida. A razão para definir esse limite é puramente para se defender contra ataques DoS simples. Não diminua esse limite artificialmente. No entanto, se as condições da rede exigirem mais do que o valor padrão, você pode aumentá-lo com mais memória.

    É melhor aumentar esse valor apropriadamente ao fazer o NAT.

tcp_retrans_collapse

    BOLEANO. O valor padrão é 1. A opção "Errado ou Errado" definida para compatibilidade com algumas impressoras ruins. Ou seja, ao enviar novamente, aumente o pacote de dados para evitar alguns bugs na pilha do protocolo TCP.

    Os servidores web gerais não precisam desse suporte, você pode desligá-lo.

tcp_retries1

    INTEGER. O valor padrão é 3. Quantas tentativas são necessárias antes de desistir de responder a uma solicitação de conexão TCP (ou seja, identificar um erro e enviar um relatório de erro à camada de rede). A RFC estipula que o menor valor é 3, que também é o valor padrão, que fica entre 3 segundos e 8 minutos dependendo do valor do RTO.

    Nota: Este valor também determina a conexão de sincronização de entrada.

tcp_retries2

    INTEGER. Quantas tentativas são necessárias antes de descartar a conexão TCP ativa (status de comunicação estabelecido). O valor padrão é 15, o que equivale a 13-30 minutos dependendo do valor do RTO (o RFC1122 estipula que deve ser maior que 100 segundos).

    Este valor pode ser reduzido apropriadamente de acordo com as configurações de rede atuais, como 5 na rede de serviço da web.

tcp_rfc1337

    BOLEANO. O valor padrão é 0. Essa opção pode iniciar uma correção para a "crise de assassinato de espera de tempo de tcp" descrita em RFC1337. Quando habilitado, o kernel descartará os pacotes RST enviados para o soquete TCP em estado de espera.

tcp_sack

    BOLEANO. O valor padrão é 1. Para habilitar o reconhecimento seletivo (Reconhecimento seletivo), ele pode ser usado para localizar pacotes de dados ausentes específicos - portanto, ajuda a restaurar rapidamente o estado. Essa configuração significa que isso pode melhorar o desempenho, respondendo seletivamente às mensagens recebidas fora de ordem (isso permite que o remetente envie apenas os segmentos ausentes).

    Para comunicação WAN, esta opção deve ser habilitada, mas aumentará o uso da CPU.

tcp_fack

    BOLEANO. O valor padrão é 1. Habilite as funções de prevenção de congestionamento FACK e retransmissão rápida.

    Nota: Quando tcp_sack é definido como 0, este valor é inválido mesmo se estiver definido como 1.

tcp_dsack

    BOLEANO. O valor padrão é 1. Permita que o TCP envie "dois" SACKs idênticos.

tcp_stdurg

    BOLEANO. O valor padrão é 0. Explicação dos requisitos de host para habilitar ponteiros urgentes de TCP. Como a maioria dos hosts usa interpretação BSD, se você abri-lo no Linux, pode afetar sua comunicação normal com outras máquinas.

tcp_syn_retries

    INTEGER. Para uma nova conexão, quantas solicitações de conexão SYN o kernel deve enviar antes de decidir desistir. Não deve ser maior que 255, o valor padrão é 5, o que corresponde a cerca de 180 segundos.

    Para uma rede com carga pesada e boa comunicação física, este valor é muito alto e pode ser modificado para 2. Este valor é apenas para conexões externas, para conexões de entrada, é determinado por tcp_retries1.

tcp_synack_retries

    INTEGER. O valor padrão é 5. Para o SYN de solicitação de conexão remota, o kernel enviará um datagrama SYN + ACK para confirmar o recebimento do último pacote de solicitação de conexão SYN. Esta é a segunda etapa do chamado mecanismo de handshake de três vias. Isso determina o número de SYN + ACKs enviados pelo kernel antes de desistir da conexão. Não deve ser maior que 255, o valor padrão é 5, o que corresponde a cerca de 180 segundos.

    Este valor pode ser determinado de acordo com as tcp_syn_retries acima.

tcp_timestamps

    BOLEANO. O valor padrão é 1. O carimbo de hora pode evitar o enrolamento do número de série. Pode evitar esses números de sequência forjados. Uma linha de banda larga 1G pode reinserir o número de sequência antigo com valor fora de linha (desde que tenha sido gerado da última vez). O carimbo de data / hora informará que se trata de um "pacote antigo".

    Esta configuração indica se deve-se habilitar o cálculo do RTT em um método mais preciso (RFC 1323) do que a retransmissão ao longo do tempo. Para obter um melhor desempenho, essa opção deve ser habilitada.

tcp_tw_recycle

    BOLEANO. O valor padrão é 0. Abra a coleção de sockets TIME-WAIT rápido. A menos que você seja aconselhado ou exigido por especialistas técnicos, não modifique este valor à vontade.

    Ao fazer o NAT, é recomendável ativá-lo.

tcp_tw_reuse

    BOLEANO. O valor padrão é 0. Esta configuração indica se o soquete no estado TIME-WAIT pode ser reutilizado para uma nova conexão TCP.

    Isso é muito útil para reiniciar rapidamente certos serviços e avisar que a porta foi usada após a inicialização, como serviços de aplicativos da web.

tcp_window_scaling

    BOLEANO. O valor padrão é 1. Esta configuração indica se o tamanho da janela deslizante da sessão tcp / ip é variável. O valor do parâmetro é um valor booleano, quando 1 significa que é variável e quando é 0 significa que não é alterável. A janela normalmente usada por tcp / ip pode atingir até 65535 bytes. Para redes de alta velocidade, o valor pode ser muito pequeno. Se esta função for ativada neste momento, o tamanho da janela deslizante tcp / ip pode ser aumentado em várias ordens de magnitude, melhorando assim a transmissão de dados Capacidades (RFC 1323).

    Para uma rede 100M comum, o desligamento reduzirá a sobrecarga, portanto, se não for uma rede de alta velocidade, você pode considerar configurá-la como 0.

    Assim que o kernel achar que não pode enviar um pacote, ele descartará o pacote e enviará uma notificação ICMP ao host que enviou o pacote.

tcp_syncookies

    BOLEANO. O valor padrão é 0. Ele só funciona quando CONFIG_SYNCOOKIES é selecionado quando o kernel é compilado. Quando a fila de espera de sincronização estourar, envie syncookies como a outra parte. O objetivo é evitar ataques de fluxo sincronizado.

    Observação: esta opção não deve ser usada para servidores de alta carga que não foram atacados. Se as mensagens do synflood aparecerem no log, mas a investigação descobrir que nenhum ataque do synflood foi recebido, esse é o motivo pelo qual a carga de conexão de usuários legítimos é muito alta, você deve ajustar Outros parâmetros para melhorar o desempenho do servidor. Referência: tcp_max_syn_backlog / tcp_synack_retries / tcp_abort_on_overflow.

    syncookie viola gravemente o protocolo TCP e não permite o uso de extensões TCP, o que pode causar sérios impactos no desempenho de alguns serviços (como o encaminhamento de SMTP). Esta implementação é a mesma do proxy tcp usado no BSD. Ela viola a implementação de handshake de três vias da conexão TCP no RFC, mas é realmente útil para a defesa contra ataques de fluxo de sincronismo.

tcp_ecn

    BOLEANO. O valor padrão é 0. Ative a função de notificação direta de congestionamento do TCP.

tcp_reordering

    INTEGER. O valor padrão é 3. O número máximo de datagramas reordenados em um fluxo TCP.

    Recomenda-se ajustar esse valor um pouco maior, como 5.

tcp_wmem

    Três enumerações INTEGER: mín. Padrão máx.

    min: A memória mínima reservada para enviar buffers para sockets TCP. O valor padrão é 4K (4096 bytes).
    default: A quantidade padrão de memória reservada para o envio de buffers para sockets TCP.Este valor afetará o valor net.core.wmem_default usado por outros protocolos e geralmente é menor que o valor net.core.wmem_default. O valor padrão é 16 K (16384 bytes).
    max: A memória máxima usada para o buffer de envio do soquete TCP. Este valor não afetará o valor de net.core.wmem_max, e o parâmetro de seleção "estático" SO_SNDBUF não é afetado por este valor. O valor padrão é 128K (131072 bytes). Para o servidor, aumentar o valor desse parâmetro é muito útil para o envio de dados. Por exemplo, em um ambiente de rede de serviço da Web (memória 8G), modifique-o para: "4096 16384 4194304".

tcp_rmem

    Três enumerações INTEGER: mín. Padrão máx.

    min: A quantidade de memória reservada para receber buffer para o soquete TCP. Mesmo quando a memória está apertada, o soquete tcp terá pelo menos esta quantidade de memória para receber o buffer. O valor padrão é 8K.
    default: A quantidade padrão de memória reservada para receber buffers para sockets TCP. Este valor afetará o valor net.core.wmem_default usado por outros protocolos. Este valor determina o tamanho da janela TCP quando tcp_adv_win_scale e tcp_app_win são iguais ao valor padrão de 0 É 65535. O valor padrão é 87380.
    max: A memória máxima usada para o buffer de recebimento do soquete TCP. Este valor não afetará o valor de net.core.wmem_max, e o parâmetro de seleção "estático" SO_SNDBUF não é afetado por este valor. O valor padrão é 128K. A configuração máxima é geralmente o dobro do padrão. Deve ser aumentado para aplicativos NAT. Por exemplo, em um ambiente de rede de serviço da Web (memória 8G), modifique-o para "4096 87380 4194304".

tcp_mem

    Três listas INTEGER: baixa pressão alta.

    baixo: quando o TCP usa um "número de páginas de memória" inferior a esse valor, o TCP não considera a liberação de memória. Idealmente, esse valor deve corresponder ao terceiro valor atribuído a tcp_wmem - de acordo com esse terceiro valor, o tamanho máximo da página multiplicado pelo número máximo de solicitações simultâneas dividido pelo tamanho da página: 131072 * 300/4096.
    pressão: Quando o TCP usa o "número de páginas de memória" excedendo este valor, o TCP tenta estabilizar o uso da memória e entra no modo de pressão. Quando o consumo de memória é menor que o valor baixo, ele sai do estado de pressão. Idealmente, esse valor deve ser o tamanho máximo do buffer total que o TCP pode usar: 204800 * 300/4096.
    alto: O "número de páginas de memória" permitido para todos os sockets tcp enfileirar e armazenar datagramas em buffer. Se esse valor for excedido, a conexão TCP será rejeitada, por isso você não deve torná-la muito conservadora. Neste caso, o valor de aumentar este valor é grande, pode tratar muitas conexões, 2,5 vezes o esperado, ou permitir que as conexões existentes transfiram 2,5 vezes os dados. Geralmente, esses valores são calculados com base na quantidade de memória do sistema quando o sistema é iniciado. Por exemplo, em um ambiente de rede de serviço da Web (memória 8G), modifique-o para "196608 262144 393216".

tcp_app_win

    INTEGER. O valor padrão é 31. Mantenha o número máximo (window / 2 ^ tcp_app_win, mss) de janelas para aplicar o buffer. Quando é 0, significa que nenhum buffer é necessário.

tcp_adv_win_scale

    INTEGER. O valor padrão é 2. Calcule o buffer overhead bytes / 2 ^ tcp_adv_win_scale (se tcp_adv_win_scale> 0) ou bytes-bytes / 2 ^ (- tcp_adv_win_scale) (se tcp_adv_win_scale <= 0).

tcp_low_latency

    BOLEANO. O valor padrão é 0. Permitir que a pilha TCP / IP se adapte a alta taxa de transferência e baixa latência; essa opção geralmente está desativada, mas é útil ativá-la ao construir um cluster Beowulf.

tcp_westwood

    BOLEANO. O valor padrão é 0. Habilite o algoritmo de controle de congestionamento do lado do remetente, que pode manter a avaliação da taxa de transferência e tentar otimizar a utilização geral da largura de banda; esta opção deve ser habilitada para comunicação WAN.

tcp_bic

    BOLEANO. O valor padrão é 0. Habilite "Aumento de Congestionamento Binário" para redes rápidas de longa distância, para que você possa fazer melhor uso dos links que operam em velocidades de GB; esta opção deve ser habilitada para comunicações WAN.

Configuração de parâmetros de serviço relacionados ao IGMP

Ou seja, o Internet Group Management Protocol (Internet Group Management Protocol ou IGMP para abreviar) é um protocolo de comunicação usado para gerenciar os membros do grupo multicast do Internet Protocol. Os hosts IP e roteadores vizinhos usam IGMP para estabelecer membros do grupo multicast. Como o ICMP para conexões unicast, o IGMP também é parte integrante da especificação de multicast IP.

igmp_max_memberships

    INTEGER. O número máximo de soquetes igmp (multicast) no host para monitorar.

Configuração de parâmetro de serviço relacionado ao INET

inet_peer_gc_maxtime

    INTEGER. O valor padrão é 120. A coleta de lixo (Garbage Collector, GC) ignora a frequência do pool de memória de armazenamento sob baixa pressão de memória.

inet_peer_gc_mintime

    INTEGER. O valor padrão é 10, em instantes (X86 / Linux, cerca de 10ms). O intervalo de tempo mínimo entre cada Coletor de lixo. Quando a carga do servidor é pesada (alta pressão de memória), o ajuste desse intervalo é muito eficaz.

inet_peer_maxttl

    INTEGER. O valor padrão é 600, calculado em instantes. A vida útil máxima da entrada do Inet. Quando não há pressão de memória no pool (por exemplo, quando o número de entradas Inet no pool é pequeno), as entradas Inet não utilizadas irão expirar após um período de tempo.

inet_peer_minttl

    INTEGER. O valor padrão é 120, calculado em instantes. A vida útil mínima da entrada Inet. Esse tempo deve ser menor que o parâmetro net.ipv4.inet_peer_threshold.

inet_peer_threshold

    INTEGER. O valor padrão é 65644. Defina a capacidade de armazenamento do Inet. Quando esse limite for atingido, a entrada Inet será descartada. Use net.ipv4.inet_peer_gc_mintime para limitar o tempo limite.
 

Acho que você gosta

Origin blog.csdn.net/Ivan804638781/article/details/98846883
Recomendado
Clasificación