Estou tentando entender as redes IPV6. Eu tenho um IPV4 estático do meu provedor e, quando estou criando aplicativos, uso o que suponho ser um endereço "codificado". Como abaixo:
//The * are replaced with my static IPV4 address
network_connect_raw(client, "**.**.**.***", 8000);
Os endereços IPV6 são sempre dinâmicos? Ou para mudar para uma rede IPV6, seria necessário obter um endereço IPV6 estático para codificar no meu aplicativo? De qualquer maneira, eu precisaria de algum método para conectar-me de forma consistente e confiável ao meu servidor ...
Eu sei um pouco sobre DNS. Você codifica uma "rota" para o DNS que retorna com o endereço atual do servidor IPV6 que pode ser dinâmico?
Aqui estão os endereços IPV6 do DNS do Google:
Os endereços IPv6 do DNS público do Google são os seguintes:
2001: 4860: 4860 :: 8888
2001: 4860: 4860 :: 8844
Estou pensando que precisaria obter um nome de domínio ... e, em seguida, "codificar" um nome DNS IPV6 no meu aplicativo; que enviaria meu nome de domínio para ser traduzido para IPV6. Isso está correto?
www.google.com
) e endereços numéricos. Ou seja, faça uma pesquisa de DNS primeiro. Seu sistema operacional, seja o que for, tem bibliotecas para isso.Respostas:
Sim. "Codificação" significa colocar as informações diretamente no seu código, em vez de usar alguns meios indiretos (como DNS ou arquivo de configuração simples). Este é um termo geral e não limitado a IP ou mesmo a redes.
Se suas chamadas connect () se referirem diretamente a um endereço IP - sim, você está codificando o endereço. Se o endereço mudar, você terá que recompilar o programa.
Não. O IPv4 e o IPv6 seguem as mesmas regras gerais:
Se o seu provedor de serviços de Internet fornece endereços estáticos ou dinâmicos depende inteiramente do contrato que você assina com eles (incluindo o plano escolhido etc.)
Para conexões residenciais e de negócios menores, os endereços são alocados pelo ISP de acordo com as políticas do ISP. Você pode obter um endereço IPv4 público ou uma dúzia, pode obter um IPv6 / 64 ou a / 48, essas alocações podem ser estáticas ou podem mudar todos os dias - tudo depende do contrato que você assinou com o ISP.
Como você atribui endereços aos seus servidores e outros computadores na sua LAN depende inteiramente de você. Se você deseja que o endereço de um dispositivo permaneça estático, você pode fazer isso.
É verdade que a atribuição dinâmica via SLAAC no IPv6 é um pouco mais comum que o DHCP no IPv4. No entanto, 'dinâmico' não significa que o endereço será alterado. De fato, com o IPv6 SLAAC, o mesmo dispositivo geralmente continuará escolhendo o mesmo endereço para sempre.
Por fim, nada impede que você configure manualmente um endereço fixo para o dispositivo. Fazer isso é perfeitamente normal no IPv6.
Você não deve codificar endereços específicos em seu aplicativo em primeiro lugar.
Coloque-os em algum lugar fora do aplicativo. Os dois métodos mais comuns são:
usando DNS - isto é, configurando um nome de domínio para apontar para o servidor;
fornecendo um mecanismo de configuração - como um arquivo .ini ou o Registro ou algo completamente diferente.
Sim. Você ainda está codificando alguma coisa (o nome do domínio), mas pelo menos é muito menos provável que o nome do domínio mude - enquanto o endereço IP de um servidor pode ter muitos motivos para ser alterado. (Por exemplo, o servidor pode ser movido para outro local ou toda a rede pode ser reestruturada ou alternada para um ISP diferente.)
Embora eu diria que não existe algo como "nomes IPv6 DNS". Um nome de domínio pode se referir aos endereços IPv4 e IPv6 ao mesmo tempo e pode até ter vários endereços do mesmo tipo.
Um programa bem escrito tentará todos os endereços que encontrar (por exemplo, com a ajuda da função getaddrinfo ()). Isso permite que ele funcione em redes somente IPv4 e somente IPv6, bem como em redes mistas.
fonte
A questão da disponibilidade do IPv6 estático é melhor abordada ao seu ISP. Nem todos os ISPs os suportam, enquanto para outros uma atribuição IPv6 estática vem automaticamente com uma atribuição IPv4 estática.
Observo que, se disponível, o IPv6 estático é apenas uma delegação de prefixo. Se você tiver um roteador compatível com IPv6, poderá aceitar essa delegação de prefixo e subsequentemente atribuir ou permitir que você atribua endereços IPv6 estáticos aos dispositivos conectados à sua rede.
Se, por "codificação codificada", você quis dizer usar um nome abreviado em vez de digitar a cadeia longa do IPv6, poderá defini-la como um alias por meio do arquivo hosts. Veja o StackOverflow postar o
IPv6 no arquivo hosts do Windows .
fonte
hosts
arquivo