Este texto deve substituir as páginas 51 e 52 da apostila até “introdução ao Ipv6”. Máscara de sub-rede Antes de iniciar o assunto, alguns esclarecimentos importantes. O que é uma sub rede? É uma rede dividida em redes menores, sendo que estas funcion am como se fossem independentes. Tecnicamente relacionado ao protocolo TCP/IP, pode -se dizer, que é uma maneira de se dividir um endereço de rede IP simples em segmentos locais de sub -redes diferentes interconectando-as. É importante entender que este pr ocesso só ocorre localmente, não interessa o mundo de fora das máquinas e as redes físicas cobertas pela rede IP, sub -rede é uma configuração local e invisível para o resto do mundo. Mas, por que fazer isto? Esta resposta passa pela implementação, organiz ação e administração de redes. Isto se deve as seguintes possibilidades: Ao implementar uma rede, as topologias e tecnologias empregadas podem ser incompatíveis; Problemas com distâncias entre redes, onde as placas de rede não tem alcance; Filtragem de tráfego permitindo que uma determinada rede possa acessar assuntos e dados não permitidos por outros; Isolamento de tráfego, diminuindo o tráfego de dados da rede, tornando -a mais eficiente e com maior performance. Também permite isolamento de problemas, pois como o tráfego não circula por toda a rede, possíveis dados indesejados não afetarão toda a rede; A administração fica mais restrita, podendo até ser dividida; A gerência de futuras implementações pode ser mais localizada sem a necessidade de afetar toda a rede, com um estudo mais localizado de potenciais problemas; Possibilidade de criação de sites mais personalizados e menores; Tecnicamente, para o TCP/IP, serve para “extrair” a identificação de rede de um endereço IP através de uma operação simples de AND binário. As possibilidades são inúmeras, não significando que todas são vantajosas. Imaginando uma rede da Classe A, será visto uma rede com milhares de máquinas conectadas. O tráfego seria enorme, sites gigantescos, administrar seria quase que imp ossível, os custos altos e diversos desdobramentos. Logo, as grandes empresas deduziram, que o ideal seria a divisão das redes em segmentos locais. Estas sub -redes não teriam impacto tão grande, tornando a administração mais fácil, ágil e personalizada. O tráfego será melhor distribuído, com menos gargalos, equipamentos e custos menores, como também diferentes tecnologias de rede. Entretanto, totalmente interconectadas. Com o uso do endereçamento IP não basta simplesmente dividir, outras providências são necessárias. Então, no exemplo citado, a Classe A foi dividida localmente em sub-redes, deve-se fazer uso de uma máscara de sub -rede que identificará cada sub-rede, Máscara de sub-rede, conhecida também como máscara de rede, identifica a maneira com a qual a porção Host ID do endereçamento IP é manipulada para criação de sub redes. A norma diz que a máscara de sub -rede é um número de 32 bits associados a um endereço IP, para informar quais são os bits de endereço IP utilizados para identificar rede (o u sub-rede) e consequentemente quais são para identificar host, onde os bits para identificar uma rede ou sub-rede são colocados como “1” e para host como “0”. Em linhas gerais, é a máscara e suas implicações que indica como os endereços IP são interpreta dos localmente em um segmento de rede IP. Máscara de sub-rede Classe A: 255.0.0.0; Máscara de sub-rede Classe B: 255.255.0.0; Máscara de sub-rede Classe C: 255.255.255.0; As máscaras apresentadas são chamadas de classes cheias (Classfull), ou seja, indica que a rede não foi subdividida. Exemplo, para classe B de endereço IP, temos a seguinte configuração: 150. 50 . 0 .0 Net ID | Host ID Sua máscara normal seria: 11111111 . 11111111 . 00000000 . 00000000 | Net ID Host ID 255 . 255 . 0 . 0 Para lembrar a conversão binária de oito bits: 1 1 1 1 1 1 1 1 0 2 x1= 1 1 2 x1= 2 2 2 x1= 4 3 2 x1= 8 4 2 x 1 = 16 5 2 x 1 = 32 6 2 x 1 = 64 7 2 x 1 = 128 255 Então o código binário abaixo convertido em decimal deve utilizar a seguinte convenção: 1 0 1 0 1 0 1 1 0 2 x1= 1 1 2 x1= 2 2 2 x0= 0 3 2 x1= 8 4 2 x0= 0 5 2 x 1 = 32 6 2 x0= 0 7 2 x 1 = 128 171 1 0 1 0 1 0 1 1 = 171 decimal Com isto em mente pode -se concluir que nenhum octeto (8 bits ou 1 Byte) terá valor em decimal maior que 255, logo um endereço 200.129.300.0 não existe pois o octeto com valor 300 (maior que 255) não será nunca alcançado. Lembrando ainda que, os endereços são divididos em 5 classes, conforme figura abaixo: Como as duas últimas classes não são utilizadas efetivament e, temos a seguinte divisão: Número de hosts é o mesmo que máquinas, ou seja, endereços possíveis de serem utilizados dentro de uma rede. A expressão máquinas pode confundir um pouco, pois uma câmera, geladeira, cafeteira, robô, computado r, recebem um endereço IP e alguns pode não considerar uma máquina. Contudo, no mercado a expressão é utilizada. As faixas de endereços IP por classes são as seguintes: Classe A B C D E Menor Endereço 1.0.0.0 128 . 0 . 0 . 0 192 . 0 . 0 . 0 224 . 0 . 0 . 0 240 . 0 . 0 . 0 Maior Endereço 126 . 255 . 255 . 255 191 . 255 . 255 . 255 223 . 255 . 255 . 255 239 . 255 . 255 . 255 247 . 255 . 255 . 255 Numa verificação mais minuciosa, nota -se que falta uma fixa de endereço, 127.0.0.0, conhecida també m como “LOOPBACK”. Esta faixa da classe A é reservada para testes, comunicação interprocessos em uma mesma máquina. Quando uma máquina endereça o loopback como destino, o TCP/IP devolve os dados para própria máquina e não gera tráfego de rede. Na prática permite testes de sistemas, sem ter a necessidade de utilização de uma segunda máquina e uma rede. Uma regra importante a ser fixada, é que sempre em uma rede o primeiro endereço se refere ao endereço da própria rede e o último o endereço de broadcast. Fazendo analogia com o seu endereço doméstico, o primeiro endereço se refere ao nome da rua; Mora na RUA TAL. Já o endereço de broadcast seria a rua asfaltada fisicamente, na qual tem -se acesso a todos os moradores (hosts) da própria. Todos os outros end ereços são os moradores ou hosts (máquinas) instaladas na rede. No caso de sub -rede, a regra fica valendo para cada sub -rede, que terá a identificação e o broadcast da própria sub -rede Um exemplo de endereço é apresentado abaixo: Classe Endereço de REDE Endereço BRADCAST A 10 . 0 . 0 . 0 10 . 255 . 255 . 255 B 129 . 200 . 0 . 0 129 . 200 . 255 . 255 C 200 . 201 . 202 . 0 200 . 201 . 202 . 255 Máscara cheia 255 . 0 . 0 . 0 255 . 255 . 0 . 0 255 . 255 . 255 . 0 Qual a função do roteador? Tem como fun ção GERAL encaminhar um pacote ou datagrama ao seu destino. No caso do uso do TCP/IP isto é feito utilizando a máscara de rede e o endereço do destino. Para identificar qual rede devo encaminhar e chegar ao destino indicado na mensagem do pacote, o rotea do faz um AND lógico entre o endereço de destino e a máscara de sub-rede. O AND lógico funciona da seguinte forma: Bit 1 0 0 1 1 Bit 2 0 1 0 1 Resultado =0 =0 =0 =1 Após isto, o roteador verifica sua tabela de roteamento e encaminha a mensagem a porta de comunicação (placa de rede) que está conectada a rede de destino. Agora que tudo foi lembrado e definido, é hora de ver como fica a parte da implementação. Então, têm-se as seguintes informações sobre a rede: Rede Classe C; End de rede: 200 . 201 . 202 . 0 End de Bradcast: 200 . 201 . 202 . 255 Máscara: 255 . 255 . 255 . 0 Faixa de End. de hosts (máquinas): 200 . 201 . 202 . 1 até 200 . 201 . 202 . 254 Imagine que a rede acima foi sub -dividida em duas, com segue: O raciocínio passa a ser fei to em relação a necessidade do número de redes. Se preciso de duas redes, preciso saber quantos bits são necessários para identificar duas redes. Se for feito o cálculo 21 = 2, verifica-se que com apenas um bit posso identificar duas sub -redes. Na expressão 21 = 2 tem-se: 2 número de estados de um bit (0 ou 1); 1 número de bits utilizados; 2 número de sub-rede a serem representadas. Agora que é conhecido o número de bits necessários, pode -se redefinir a nova máscara de rede. A nova máscara será conform e o desenho abaixo: 255 . 255 . 255 . 128 O último octeto emprestará um bit para parte referente ao “número de rede”, transformando o octeto que seria 00000000 em 10000000 (binário). Convertendo par a decimal passa a ser lido como 128. Então as duas sub -redes terão as seguintes identificações: Rede PRINCIPAL Classe C; End de rede: 200 . 201 . 202 . 0 End de Bradcast: 200 . 201 . 202 . 255 Máscara: 255 . 255 . 255 . 0 (considerando que não possue div isões) Faixa de End. de hosts (máquinas): 200 . 201 . 202 . 1 até 200 . 201 . 202 . 254 que serão dividos em endereços para sub -redes. Endereços da REDE1 End de rede: 200 . 201 . 202 . 0 End de Bradcast: 200 . 201 . 202 . 127 Máscara: 255 . 255 . 255 . 128 Faixa de End. de hosts (máquinas): 200 . 201 . 202 . 1 até 200 . 201 . 202 . 126 Endereços da REDE2 End de rede: 200 . 201 . 202 . 128 End de Bradcast: 200 . 201 . 202 . 255 Máscara: 255 . 255 . 255 . 128 Faixa de End. de hosts (máquinas): 200 . 201 . 202 . 129 até 200 . 201 . 202 . 254 Todas as redes possuirão a mesma máscara de rede, sendo que a quantidade de endereços possíveis equivale ao cálculo 27 − 2 = 126 possibilidades em cada rede. Lembrando a regra já citada, dois endereços são utilizados para identificar a rede, no caso sub -rede, e o seu broadcast, por isto o “ -2” (menos dois). Também não esqueça que o endereço da rede PRINCIPAL e o seu broadcast AINDA estão sendo utilizados. Mas como estes endereços tem o mesmo papel que os da sub -rede, estes vão identificar também a sub -rede sem perda de endereços, por este motivo o endereço da rede PRINCIPAL é o mesmo da REDE1 e o broadcast da REDE2 é o mesmo da PRINCIPAL. Uma observação importante, o endereço de broadcast pode ser utilizado para outros fins dependendo do equipamento e marca instalado. Porém, a regra é a RESERVA do endereço para broadcast. Imagine que a rede ao invés de duas foi sub -dividida em quatro, com segue: O raciocínio é igual, necessidade do número de redes. Se preciso de quatro redes, preciso saber quantos bits são necessários para identificar duas redes. Se for feito o cálculo 22 = 4, verifica-se que com apenas um bit poss o identificar duas sub-redes. Na expressão 22 = 4 tem-se: 2 número de estados de um bit (0 ou 1); 2 número de bits utilizados; 4 número de sub-rede a serem representadas. Agora que é conhecido o número de bits necessários, pode -se redefinir a nova máscara de rede. A nova máscara será conforme o desenho abaixo: 255 . 255 . 255 . 192 O último octeto emprestará dois bits para parte referente ao “número de rede”, transformando o octeto que seria 00000000 em 11000000 (binário). Convertendo para decimal passa a ser lido como 192. Então as quatro sub -redes terão as seguintes identificações: Rede PRINCIPAL Classe C; End de rede: 200 . 201 . 202 . 0 End de Bradcast: 200 . 201 . 202 . 255 Máscara: 255 . 255 . 255 . 0 (considerando que não possue divisões) Faixa de End. de hosts (máquinas): 200 . 201 . 202 . 1 até 200 . 201 . 202 . 254 que serão dividos em endereços para sub -redes. Endereços da REDE1 End de rede: 200 . 201 . 202 . 0 End de Bradcast: 200 . 201 . 202 . 63 Máscara: 255 . 255 . 255 . 192 Faixa de End. de hosts (máquinas): 200 . 201 . 202 . 2 até 20 0 . 201 . 202 . 62 Endereços da REDE2 End de rede: 200 . 201 . 202 . 64 End de Bradcast: 200 . 201 . 202 . 127 Máscara: 255 . 255 . 255 . 192 Faixa de End. de hosts (máquinas): 200 . 201 . 202 . 65 até 200 . 201 . 202 . 126 Endereços da REDE3 End de rede: 200 . 201 . 202 . 128 End de Bradcast: 200 . 201 . 202 . 191 Máscara: 255 . 255 . 255 . 192 Faixa de End. de hosts (máquinas): 200 . 201 . 202 . 129 até 200 . 201 . 202 . 190 Endereços da REDE4 End de rede: 200 . 201 . 202 . 192 End de Bradcast: 200 . 201 . 202 . 255 Máscara: 255 . 255 . 255 . 192 Faixa de End. de hosts (máquinas): 200 . 201 . 202 . 193 até 200 . 201 . 202 . 254 Todas as redes possuirão a mesma máscara de rede, sendo que a quantidade de endereços possíveis equivale ao cálculo 26 − 2 = 62 possibilidades em cada rede. Lembrando a regra já citada, dois endereços são utilizados para identificar a rede, no caso sub -rede, e o seu broadcast, por isto o “ -2” (menos dois). Também não esqueça que o endereço da rede PRINCIPAL e o seu broadcast AINDA estão sendo utilizados. Mas caso seja necessário dividir em 5 (cinco) sub -rede? O raciocínio continua o mesmo. Preciso de 5 sub-redes utilizo 3 bits. No cálculo 23 = 8 sub-redes possíveis. Faça uso de cinco e sobram três. Cada sub -rede terá 25 − 2 = 32 endereços de hosts possíveis. O que acontece no roteador? Na teoria, se for imaginado um endereço de destino e uma máscara de sub -rede abaixo o resultado será: Endereço IP: 200 . 200 . 100 . 21 Máscara de rede: AND 255 . 255 . 255 . 0 ===================== 200 . 200 . 100 . 0 Endereço de rede Em binário ficaria assim: Endereço IP: 11001000.11001000.01100100.00010101 AND Máscara de rede: 11111111.11111111.11111111.00000 000 ===================================================== 11001000.11001000.01100100.00000000 Fazendo testes com os exemplos citados acima, referindo -se a rede com duas subredes. Endereço IP: 200 . 201 . 202 . 21 Máscara de rede: AND 255 . 255 . 255 . 128 ===================== 200 . 201 . 202 . 0 Endereço de rede Em binário ficaria assim: Endereço IP: 11001000.11001001.01100110.00010101 AND Máscara de rede: 11111111.11111111.11111111.10000000 ===================================================== 11001000.11001001.01100110.00000000 Outro endereço. Endereço IP: Máscara de rede: 200 . 201 . 202 . 129 AND 255 . 255 . 255 . 128 ===================== 200 . 201 . 202 . 128 Endereço de rede Em binário ficaria assim: Endereço IP: 11001000.11001001.01100110.10000001 AND Máscara de rede: 11111111.111111 11.11111111.10000000 ===================================================== 11001000.11001001.01100110.10000000 A tabela de roteamento deste roteador poderá estar configurado da seguinte maneira: End. Destino Interface 0.0.0.0 ITF1 200.201.202.0 ITF2 200.201.202.128 ITF3 Máscara 255.255.255.128 255.255.255.128 Fazendo outros testes com os exemplos citados acima, referindo -se a rede com quatro sub-redes. Endereço IP: 200 . 201 . 202 . 21 Máscara de rede: AND 255 . 255 . 255 . 192 ===================== 200 . 201 . 202 . 0 Endereço de rede Em binário ficaria assim: Endereço IP: 11001000.11001001.01100110.00000001 AND Máscara de rede: 11111111.11111111.11111111.11000000 ===================================================== 11001000.11001001.01100110.00000000 Outro endereço. Endereço IP: 200 . 201 . 202 . 65 Máscara de rede: AND 255 . 255 . 255 . 192 ===================== 200 . 201 . 202 . 64 Endereço de rede Em binário ficaria assim: Endereço IP: 11001000.11001001.01100110.01000001 AND Máscara de rede: 11111111.11111111 .11111111.11000000 ===================================================== 11001000.11001001.01100110.01000000 Outro endereço. Endereço IP: Máscara de rede: 200 . 201 . 202 . 130 AND 255 . 255 . 255 . 192 ===================== 200 . 201 . 202 . 128 Endereço de rede Em binário ficaria assim: Endereço IP: 11001000.11001001.01100110.10000010 AND Máscara de rede: 11111111.11111111.1111111 1.11000000 ===================================================== 11001000.11001001.01100110.10000000 Outro endereço. Endereço IP: Máscara de rede: 200 . 201 . 202 . 200 AND 255 . 255 . 255 . 192 ===================== 200 . 201 . 202 . 192 Endereço de rede Em binário ficaria assim: Endereço IP: 11001000.11001001.01100110.11001000 AND Máscara de rede: 11111111.11111111.11111111.1100000 0 ===================================================== 11001000.11001001.01100110.11000000 A tabela de roteamento deste roteador poderá estar configurado da seguinte maneira: End. Destino Interface 0.0.0.0 ITF1 200.201.202.0 ITF2 200.201.202.64 ITF3 200.201.202.128 ITF4 200.201.202.192 ITF5 Máscara 255.255.255.192 255.255.255.192 255.255.255.192 255.255.255.192 De forma resumida têm -se as seguintes características para máscara de sub -redes para as classes B e C: Classe B Máscara 255.255.128.0 255.255.192.0 255.255.224.0 255.255.240.0 255.255.248.0 255.255.252.0 255.255.254.0 255.255.255.0 255.255.255.128 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252 Nº Sub-rede 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 Nº Hosts 32764 16382 8190 4094 2046 1022 510 254 126 62 30 14 6 2 Na tabela acima, a última linha não pode ser mais sub -dividida, pois criaríamos um sub-rede com dois endereços. Pelo calculo ( 21 = 2) − 2 = 0, menos dois em função do endereço de sub-rede e de broadcast. Logo não tem nenhum endereço disponível. Classe C Máscara 255.255.255.128 255.255.255.192 255.255.255.224 255.255.255.240 255.255.255.248 255.255.255.252 Nº Sub-rede 2 4 8 16 32 64 Nº Hosts 126 62 30 14 6 2 O mesmo que ocorreu anteriormente vai se repetir, ou seja, na tabela acima a última linha não pode ser mais sub -dividida, pois criaríamos um sub -rede com dois endereços. Pelo calculo (21 = 2) − 2 = 0, menos dois em função do endereço de sub-rede e de broadcast. Logo não tem nenhum endereço disponível. Máscara para Sub-redes de tamanho variável de hosts Se tudo fosse uniforme seria ótimo, mas não é. Imagine uma operadora de telefonia que oferece acesso a Internet a diversos cliente com número variável de hosts. Para evitar desperdício pode-se fazer máscaras de sub-redes com tamanho variável de hosts ("variable lenght subnet masks" – VLSM). Veja o seguinte exemplo de 6 clientes diferentes solicitando acesso. As características de cada um são: Cliente A B C D E F Quantidade 65 24 4 6 12 8 Suponha que o endereço disponível pela empresa seja rede classe C, já utilizado anterior, 200.201.202.0. Inicia -se o raciocínio fazendo o cálculo para verificar se é possí vel disponibilizar o número de hosts envolvidos. Cálculo: 65+24+4+6+12+8=119 que é menor que os 256 endereços possíveis, menos 2. “PODE” ser suficiente. As faixas de sub -rede seriam disponibilizadas da seguinte maneira: Para sub-rede A serão necessários 65 endereços. Como os blocos funcionam em potências de 2, devem ser reservados 128 endereços. Para sub-rede B serão suficientes 32. Para sub-rede C deverá ser de 8, porque os 4 oferecidos pelo bloco imediatamente inferior correspondem, na verdade, a 2 ende reços utilizáveis. Lembra end. sub -rede e broadcast. Para sub-rede D idem — uma rede de 8. Para sub-rede E serão necessários 16 endereços. Para sub-rede F serão necessários 16 endereços. Porque os 8 oferecidos pelo bloco imediatamente inferior correspond em, na verdade, a 6 endereços utilizáveis. Lembra end. sub-rede e broadcast. Agora pode-se calcular e ter certeza que o número de hosts de uma única classe C é suficiente para a demanda solicitada. Calcula -se que 128+32+8+8+16+16=208 que é menor que 256. A divisão da faixa de endereço ficará assim: Sub-rede A B C D E F End. Sub-rede 200.201.202.0 200.201.202.128 200.201.202.160 200.201.202.167 200.201.202.176 200.201.202.192 máscara 255.255.255.128 255.255.255.224 255.255.255.248 255.255.255.248 255.255.255.192 255.255.255.192 faixa end. 0 a127 128 a 159 160 a 167 167 a 175 176 a 191 192 a 207 Nº end. 128 32 8 8 16 16 Podem ser disponibilizados ainda 256 -208=48, onde 208 é a faixa de 0 a 207 endereços e 48 são os endereços que estão sobrando da implementação citada. Notação CIDR O CIDR (Classless Inter-Domain Routing), foi introduzido em 1993 e sua notação é bem simples. Ao invés de colocar toda a máscara de rede, 4 octetos, simplesmente indica o número de bits utilizados na máscara de sub -rede e o resto é feito pelo sistema. Veja o exemplo a seguir: Máscara de rede: 11111111.11111111.11111111.11000000 8 bits + 8 bits + 8 bits + 2 bits = 26 Exemplo 200.201.202.21/26, onde 200.201.202.21 é o endereço do host e /26 é a máscara 255.255.255.192. Caso a máscara fosse 255.255.255.0 o CIDR seria /24. De forma resumida e definitiva duas coisas importantes devem ser lembradas: a máscara de sub-rede afeta somente a interpretação local de números IP’s locais. Onde locais significa o segmento particular da rede. Outra coisa é que a máscara não é um número IP, ela apenas é usada para modificar quantos números IP locais são interpretados localmente. Toda vez que você sub-divide uma rede e utiliza endereços IP’s com máscara da sub-rede, este grupo ou sub-rede perde dois endereços, o primeiro que é o endereço da rede e o último que é endereço de broadcast. Não esqueça ainda do endereço da interface do roteador, ou do equipamento que executa esta tarefa. NAT NAT (Network Address Translation ) também conhecido como mascaramento (masquerading). Este método consiste de reescrever os endereços IP não válidos de uma rede particular. Veja seguinte rede: Teoricamente os hosts da rede interna (10.0.0.0) não teria acesso a Internet, pois a rede está confinada e os endereços não são válidos e nunca poderia ser repassados para Internet e vice-versa. Se fosse utilizado o endereço único classe C, como um IP global do roteador, quando enviar a mensagem ela seguirá normalmente, mas quando a resposta voltar o sistema não saberá de qual host partiu a solicitação. Para resolver tal situação foi criado ao NAT que faz um mapeamento baseado no IP e na porta local do computador. Com estes o NAT cria um número de 16 bits, baseado na tabela hash, que é inserido no campo da porta de origem. Então o novo endereço é composto do IP global acrescido do número de 16 bits criado. A tabela hash (pronuncia -se rashing), também conhecida por tabela de espalhamento ou tabela de dispersão, é uma estrutura de dados especial, que associa chaves de pesquisa (hash) a valores. Seu objetivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado. O número gera do pela tabela de hash tem apenas 16 bits, o que faz com que esta técnica permita até 65535 conexões activas. Dependendo das dimensões da rede e do número de pedidos feitos pelos computadores desta rede, o limite de 65535 pode ser atingido 1. Uma vantagem no NAT é que apenas pedido originados da rede interna chegam ao destino. Caso um ataque, por exemplo, seja originado externamente dificilmente atingirá o host, pois o NAT/hash de 16 bits não foi gerado internamente e o mesmo será descartado. O NAT acaba funcionando como uma espécie de firewall. 1 Wikipédia 10/08/08