quarta-feira, 9 de abril de 2008

Segmentação em Sub-redes

Uma matéria comum às questões do exame CCNA, refere-se aos cálculos de sub-rede. A maior parte das questões não obriga a realização de cálculos extensivos, mas envolvem prática com as regras de segmentações em sub-redes, saber discernir entre endereços de escopo privado e público, bem como ter alguma noção do sistema de numeração binário. Ainda, noções básicas sobre Teoria dos Números, principalmente no que diz respeito à divisibilidade, pode ser bastante útil (mas não imprescindível).

Na questão abaixo, apresenta-se um endereço IP válido e pede-se qual a sub-rede que envolve o endereço dado:

“What is the subnet address of the host with an IP address of 172.16.159.159/22?

A. 172.16.128.0

B. 172.16.156.0

C. 172.16.159.128

D. 172.16.159.0

E. 172.16.192.0

F. 172.16.0.0”

A princípio, percebemos que só serão válidos endereços de sub-rede nas assertivas acima que se refiram à classe B – por ser um endereço de rede /22, e sendo 22 maior que 16 (segundo octeto) e menor que 24 (que se referiria ao quarto octeto), decorre disso que foi expandido o espaço de 16 bits de rede originais da classe B, para 22 bits de rede. Ou seja, com 6 bits (22 – 16) mascarados no terceiro octeto destinados a identificação de sub-redes, e com 10 bits (32 – 22) restantes para referência a host, deduz-se facilmente que são permitidas 64 sub-redes nessa configuração, com 1022 (2 elevado a 10, menos 2) hosts possíveis em cada uma das sub-redes (elimina-se 2 do total de hosts, simplesmente porque um dos endereços é para identificar a própria sub-rede, e o outro endereço não contabilizado como host é o endereço de broadcast, também único para cada sub-rede).

Voltando ao que é necessário ao enunciado, precisamos saber qual sub-rede engloba o host referido. A máscara de rede é de classe B, mas com 2 bits mascarados para host no terceiro octeto, mais 8 desses bits no quarto e último octeto. Esses 2 bits do terceiro octeto são pertinentes para nossa solução, porque são exatamente eles que conferirão mobilidade para a quantidade de sub-redes, por conta do seguinte: 6 bits do terceiro octeto podem variar indistintamente, mas os outros 2 bits são fixos, ou invariáveis, no que se refere à numeração de sub-redes, porque esses 2 bits se referem a hosts, e não são contabilizados na seqüência de sub-redes disponíveis. Isso significa dizer que, sempre que formos atribuir uma sub-rede válida a essa máscara, devemos notar que os 6 bits denotam livremente uma sub-rede, mas os 2 bits do terceiro octeto não podem ser “invadidos” pelos bits de sub-rede (pois pertencem a hosts). Essa é a lógica na criação de sub-redes: alguns bits válidos da seção original de host são desperdiçados para que possam então ser criadas mais sub-redes, e facilitar a segmentação dos hosts, o que traz diversas vantagens, como a departamentalização da rede e o incremento em segurança, por exemplo. No nosso caso, com uma máscara de classe B, teríamos 16 bits para rede, e 16 bits para host: em alguns casos, 16 bits para os hosts pode ser demasiado, portanto alguns desses bits poderiam ser usados para segmentação de redes (no nosso caso, expandimos para mais 6 bits de sub-redes). Por exemplo, a seqüência a seguir compõe-se de sub-redes válidas para a máscara /22 (255.255.252.0): 172.16.148.0, 172.16.152.0, 172.16.156, e assim por diante, sempre de 4 em 4, por conta dos 2 bits de host que são invariáveis, exclusivamente no que diz respeito à numeração de sub-redes.

Já que o terceiro octeto dos endereços de sub-rede que fazem parte da rede 172.16.0.0 denota parte da sub-rede, com 6 bits, e parte do host, com 2 bits, a faixa de endereços disponíveis para sub-redes inicia-se em 0 no terceiro octeto, e vai saltando de 4 em 4 (por conta do total de combinações dos 2 bits reservados para hosts). A faixa de endereços válidos é então: 172.16.0.0, 172.16.4.0, 172.16.8.0, 172.16.12.0, ..., 172.16.252.0 (num total de 64 sub-redes). Dessas 64 sub-redes, apenas uma delas engloba o endereço 172.16.159.159. Para que a encontremos, teremos que encontrar o primeiro número inteiro menor do que 159, e que seja divisível por 4. Aplicando esse processo na prática, pegamos o número 159 (terceiro octeto, que nos interessa), e dividimos por 4 – daí, vemos que dessa divisão decorre um número fracionário (39,75), ou seja, retorna resto, portanto, não divisível por 4. Passamos então para o número imediatamente anterior (158), dividimos por 4, o que nos dá 39,5, que também não é o que queremos. Continuando nesse processo, percebemos que 156 divide 4 (sem resto). E é exatamente essa a resposta: 172.16.156.0, a sub-rede referente ao endereço de host 172.16.159.159 (/22). Resposta: letra “B”.

Mais um assunto típico de prova, mas que do ponto de vista do dia-a-dia do profissional de redes, implica na maior parte apenas curiosidade típica de “hackers”, que se interessem por saber a qual sub-rede pertença um dado host – um gerente de redes competente mantém sempre uma documento com as faixas de sub-redes configuradas. Mas, é lógico, automatizar mentalmente o cálculo de faixas de redes é sempre uma ajuda...