Como atribuir vários endereços IP e sub-redes para vinculação?

Como atribuir vários endereços IP e sub-redes para vinculação?

Eu tenho um servidor web doméstico, /29 endereços IPv4 (3 atualmente atribuíveis do bloco devido a ter uma sub-rede roteada com requisito de endereço de gateway) e dois endereços já atribuídos aos meus registros DNS. Além disso, tenho uma sub-rede IPv6/64 com dois endereços já atribuídos aos meus registros DNS.

Alterei meu arquivo sysconfig > network-scripts (gerenciado via Network Manager, não DHCP) para disponibilizar todos os endereços IPv4 para meu sistema, com a sub-rede IPv6 atribuída como secundária, conforme mostrado (o que acho correto, mas por favor informe eu se não for):

IPV6ADDR=2a10:b900:10e4:1::2/64
IPV6ADDR_SECONDARIES=2a10:b900:10e4:1::/64
IPV6_DEFAULTGW=2a10:b900:10e4:1::

O problema? - Preciso alterar meus arquivos da zona Bind para usar o endereço IP adicional disponível e toda a sub-rede IPv6. Acho que poderia adicionar o IPv4 como um registro A adicional (embora eu tenha tido problemas onde isso causou problemas de conectividade no passado), mas alguém aqui pode me dizer como eu adicionaria a sub-rede IPv6?

Responder1

Para resumir os comentários, não há resposta, porque a questão se baseia inteiramente em suposições erradas.

[…] com a sub-rede IPv6 atribuída como secundária, conforme mostrado

IPV6ADDR=2a10:b900:10e4:1::2/64
IPV6ADDR_SECONDARIES=2a10:b900:10e4:1::/64

Na verdade, isso não atribui a sub-rede inteira. Ele atribui um único endereço (o endereço IID com todos os zeros, 2a10:b900:10e4:1:0:0:0:0) e define a "máscara de sub-rede" como /64. O comportamento é idêntico ao de atribuir qualquer outro endereço; não há tratamento especial para…:0:0:0:0. O /64 em ambos os casos indica apenas quais endereços estão "on-link" (podem ser alcançados no nível MAC pela interface física).

uma conexão https:// não pode ser compartilhada (ou seja: você poderia ter 10 conexões através do mesmo endereço IP se fossem http://, mas essas mesmas conexões exigiriam 10 endereços IP se fossem https://

Não, não fariam isso, porque o protocolo de transporte subjacente, TCP, já possui um mecanismo de multiplexação – a combinação de porta local + porta remota. Supondo que você tenha

  1. um cliente,
  2. um servidor escutando em uma porta,

você pode, em teoria, ter até 65.535 (local_addr, remote_addr, local_port, remote_port)combinações exclusivas variando o local_port. Na prática, o número está em algum lugar entre ~32k ou ~48k, dependendo do intervalo de "portas efêmeras" que o sistema operacional configurou.

Este mecanismo é independente do protocolo da camada superior, e um servidor pode aceitar tantas conexões HTTPS na porta 443 quanto puder aceitar conexões HTTP na porta 80. Em ambos os casos, as pilhas de rede do cliente e do servidor identificarão exclusivamente cada pacote de cada conexão .


Sua história ainda faria algum sentido se fosse sobre "hosts virtuais" HTTP(S) em vez de "conexões", ou seja, compartilhamentonomes de domíniono mesmo endereço IP. Teria sido verdade há 10-20 anos que um servidor HTTPS (mais precisamente, um servidor SSL/TLS) só poderia servir um certificado em um único endereço IP:porta e, portanto, poderia servir apenas tantos domínios quanto o certificado único tivesse sido emitido para.

No entanto, agora todos os clientes modernos suportam TLS 1.1+ "Indicação de nome de servidor", que lhes permite solicitar um nome de domínio específico durante o handshake TLS, para que o servidor possa escolher o certificado TLS correto antes de iniciar o handshake da camada de aplicativo.

Concluindo, atribuir uma sub-rede ao servidor é desnecessário para começar.

Finalmente, a questão tecnicamente principal:

Estou, portanto, tentando criar uma solução onde o BIND possa mergulhar em um conjunto de endereços caso precise

O DNS não possui esse recurso – apenas registros AAAA podem apontar para endereços IPv6, e cada registro pode apontar apenas para um endereço. (Existem outros tipos, mas eles têm usos diferentes e a maioria dos softwares simplesmenteNão olhepara eles.)

Você teria que usar $GENERATEo recurso do BIND, que é uma macro que pode se expandir para vários registros, ou escrever um servidor DNS personalizado que geraria respostas com registros AAAA aleatórios sob demanda.

informação relacionada