Qual é o número máximo de IPs que podem ser atribuídos a um determinado computador?

13

Eu realmente preciso saber disso para um servidor linux, mas como também se aplica aos sistemas operacionais clientes, achei que a pergunta deveria ser feita aqui, em vez de falha do servidor.

Jeremy Boyd
fonte

Respostas:

16

De acordo com as respostas a este post na lista de discussão linux-net ,

  • Em um ponto, o kernel do Linux tinha um limite de 255 aliases por dispositivo de interface física.
  • A partir do kernel Linux versão 2.2, não há limite (prático), com a segunda resposta citando a experiência pessoal de ter aliasado mais de 5.000 endereços em uma única placa Ethernet.

Obviamente, vincular um grande número de aliases a um único dispositivo imporá requisitos de memória e poderá ter implicações de desempenho, portanto, é perfeitamente possível que seu hardware limite o número de aliases que você pode adicionar, mesmo que o próprio kernel não o faça.

Dave Sherohman
fonte
Não há necessidade de criar aliases para isso; ip addr addpode vincular os endereços a um único dispositivo.
Ignacio Vazquez-Abrams
3
Sim, e faz isso alternando endereços adicionais para o mesmo dispositivo. Se o alias é nomeado ( eth0:0) ou não, ainda é um alias. É verdade que os autores da ip(8)página de manual optam por não usar o termo "alias" porque ele trata todos os endereços como iguais, praticamente o resto do mundo concorda que atribuir vários endereços à mesma interface é chamado de "aliasing de IP".
Dave Sherohman
1
Em algum momento, tive a necessidade de atribuir muitos endereços IPv6 a um único host e, quando cheguei a cerca de 4000 endereços, a descoberta de vizinhos foi interrompida. O número exato de endereços que levou para quebrar vizinho descoberta variou um pouco entre os experimentos, mas foi sempre muito perto de 4000.
kasperd
6

Mais do que você poderia precisar. Use ip addr addpara adicionar endereços a uma interface.

Ignacio Vazquez-Abrams
fonte
3

O máximo seria 4.294.967.294 endereços IP (supondo que você esteja falando sobre IPV4, você tenha RAM suficiente e escolhemos um para o endereço de broadcast e outro para o endereço de rede).

Mike Scott
fonte
0

O kernel do linux possui um recurso chamado AnyIP, que permite que você responda por um bloco contíguo de endereços IPv4 ou IPv6 via interface de loopback do linux por um custo muito baixo em DRAM / CPU.

Por exemplo, suponha que eu queira que minha máquina Linux responda por qualquer endereço em 10.7.0.0/16:

  • No sistema linux, adicione uma rota local: ip -4 route add local 10.7.0.0/16 dev lo
  • Peça aos engenheiros da rede para anunciar uma rota para 10.7.0.0/16 apontando para o endereço eth0 da máquina com a qual você fez isso.

Parabéns, agora você responde por um grande número de endereços (mais de 65.000 neste exemplo) e seu consumo de RAM é praticamente nada deste exercício. Em termos de escalabilidade, essa solução é muito melhor do que adicionar alias de interface individual no eth0 para todos os IPs que você deseja responder.

Não há limite para quantos endereços você pode responder dessa forma.

Mike Pennington
fonte