So I've been reading about CIDR.
If I am not mistaken it is possible to assign the same two IP addresses to two machines provided they have different prefix lengths (different subnets).
Depende de como você define um 'endereço IP' e como define 'a Internet'.
Primeiro vamos assumir o IP v4 (desde algumas décadas também existe o IP v6).
Em seguida, deixe um endereço IP com um valor de 32 bits, geralmente dividido em 4 partes e escrito como decimais pontilhados. Então o IP 00000001000000100000001100000100 seria escrito como 1.2.3.4
Na Internet (a rede pública conectando muitas e muitas intranets), isso deve ser único. É como um número de telefone e cada telefone tem seu próprio número. Parte disso é usada para roteamento e parte dela para identificar a rede, mas a combinação é única.
Agora existem duas exceções:
- Redes não conectadas à internet. Nenhum conflito com as redes na Internet é possível. Atribuir o que você quiser. (Embora você tenha problemas, você decide se conectar à Internet). Para evitar problemas com isso, reservamos algumas redes (consulte a RFC 1918), que nunca devem ser roteadas para a Internet real.
- Um kludge chamado NAT. Isso basicamente traduz um endereço externo para um ou mais endereços internos. Combine isso com não rotear os IPs internos para a Internet e você pode contornar alguns problemas se você não tiver IPs atribuídos suficientes para todos os seus computadores. Note que este é um hack feio e quebra vários protocolos (como o FTP). Realmente só deve ser usado em emergências.
I was wondering if such assignments are(/were) ever implemented in the "public" internet (so public IP range).
Não. Cada endereço é único e é tomado cuidado ao lidar com intervalos com IPs. Os conflitos são cuidadosamente evitados.
Editar, quero adicionar mais duas coisas. Vamos começar com uma foto.
Nesta foto eu tenho duas redes diferentes com diferentes prefixos de tamanho.
Em algum lugar entre um computador (o 'algum computador à direita) e o destino são muitos roteadores. Deixei a maioria das nuvens pequenas, mas desenhei explicitamente uma.
Agora diga que este computador tem um pacote com destino 1.2.3.7
.
O que o roteador deve fazer? Ambos os destinos são válidos. Não consegue chegar a um deles? Enviar os dados para os dois destinos (desnecessariamente usando a largura de banda e, possivelmente, vazando informações)?
Em segundo lugar, e se um computador na nuvem superior esquerda quiser enviar algo para um computador na nuvem inferior esquerda? Possivelmente com computadores numerados (IP) idênticos em ambas as redes.
Ambos mostram porque os endereços são projetados para serem exclusivos. Você pode configurar as coisas erroneamente, mas espera muitos problemas e possivelmente alguns mantenedores de redes raivosas.