WirelessBR |
WirelessBr é um site brasileiro, independente, sem vínculos com empresas ou organizações, sem finalidade comercial, feito por voluntários, para divulgação de tecnologia em telecomunicações |
|
Série de artigos sobre VoIP (2) |
||
José de Ribamar Smolka Ramos |
Série
de artigos sobre
VoIP
Segundo artigo
- Parte 03
Camada internetwork
Estamos, finalmente, no reino do protocolo IP (internetworking protocol). Mas, antes de mais nada, alguns esclarecimentos.
Os pacotes IP são enviados entre interfaces físicas, e não entre sistemas. Desta forma, cada interface física de um sistema possui (pelo menos) um endereço IP (IP address) que a identifica univocamente em toda a rede.
O endereço IP sempre é tratado como sendo composto de duas partes lógicas: endereço da rede (network address) e endereço do host[9] (host address). Como as decisões de encaminhamento físico dos pacotes feitas pelo IP dependem diretamente da forma como estas duas partes do endereço são determinadas, vamos olhar isto mais de perto.
Endereços IP são números binários com 32 bits de tamanho. Normalmente (para consumo humano) ele é expresso no formato dotted decimal, onde cada um dos quatro bytes do endereço é representado pelo seu valor equivalente em decimal, separados por pontos. A figura 3 mostra alguns exemplos.
Figura 3 – Endereços IP (dotted decimal e binário)
Originalmente, a definição do network address e do host address
ficavam rigidamente determinados em classes:
Classe A – identificada por possuir o bit mais significativo do primeiro byte igual a zero. Neste caso, os bits do primeiro byte formavam o network address, e os bits do segundo, terceiro e quarto bytes formavam o host address. Poderiam existir 126 redes[10] classe A (1.0.0.0 a 126.0.0.0), cada uma podendo endereçar 16.777.214 hosts;
Classe B – identificada por possuir os dois bits mais significativos do primeiro byte iguais a 10. Neste caso, os bits do primeiro e do segundo bytes formavam o network address, e os bits do terceiro e quarto bytes formavam o host address. Poderiam existir 16.382 redes classe B (128.1.0.0 a 191.254.0.0), cada uma podendo endereçar 65.534 hosts;
Classe C – identificada por possuir os três bits mais significativos do primeiro byte iguais a 110. Neste caso, os bits do primeiro, do segundo e do terceiro bytes formavam o network address, e os bits do quarto byte formavam o host address. Poderiam existir 2.097.150 redes classe C (192.0.1.0 a 223.255.254.0), cada uma podendo endereçar 254 hosts;
Com raciocínios análogos foram definidas também as classes D (para transmissões multicast) e E (para uso experimental).
Logo foi percebido que cada organização que ganhasse o direito de uso de uma dessas redes (de qualquer classe, mas especialmente para os casos das classes A e B) quase sempre iria precisar separar a rede designada para ela em sub-redes (subnets) menores, por razões administrativas.
Para isso foi criado o mecanismo de subnetting, que, quando configurado em um host, faz com que ele interprete a separação de um endereço IP em network address e host address de forma diferente das classes padronizadas.
Em interface física (o endereço IP é da interface, lembra?) dos hosts que fazem subnetting é configurada uma subnet mask, no formato dotted decimal (para consumo humano), com tantos bits um (começando do bit mais significativo do primeiro byte, e sempre contíguos) quantos sejam os bits que se queira interpretar como network address.
Nestas interfaces, sempre que tiver que ser avaliado o network address de um endereço IP, ele é obtido através de uma operação lógica AND entre o endereço IP e a subnet mask. Por exemplo: um host tem uma das suas interfaces configurada com endereço IP 10.30.20.55 e subnet mask 255.255.255.0. Pela lógica das classes, o network address seria interpretado como sendo 10.0.0.0 (classe A). Mas, com subnetting, o network address passa a ser interpretado como 10.30.20.0 (como se fosse uma classe C artificial).
O crescimento da Internet na sua fase acadêmica já impôs um considerável stress neste método de administração do espaço de endereçamento IP. Com a explosão de crescimento da fase comercial, ficou totalmente inviável continuar alocando endereços IP desta forma, e o fantasma do esgotamento dos endereços IP apareceu pela primeira vez.
O IETF, então, adotou uma reengenharia na forma de identificar network addresses e host addresses, chamada CIDR (classless inter-domain routing). Na prática, o CIDR torna o mecanismo de subnetting obrigatório.
A notação CIDR é a seguinte: após o endereço IP no formato dotted decimal coloca-se uma barra e um número variando entre zero e 32, inclusive. O número após a barra identifica quantos bits do endereço IP (sempre começando do bit mais significativo do primeiro byte, contíguos – como na subnet mask) compõem o prefixo CIDR do endereço. O network address, é o resultado de uma operação AND entre o endereço IP e uma subnet mask equivalente ao prefixo CIDR.
Usando o mesmo exemplo anterior, se o endereço da interface for especificado, na notação CIDR, como 10.30.20.55/24, o network address será interpretado como 10.30.20.0, causando o mesmo efeito que o uso de uma subnet mask 255.255.255.0.
O uso de CIDR, mais a RFC 1918, que reservou algumas faixas de endereços para uso exclusivo em redes internas das organizações e estabeleceu o uso de NAT (network address translation) gateways para fazer a tradução de endereços IP dos pacotes que cruzam a fronteira entre redes privadas que usam TCP/IP e a Internet pública, permitiu (com bastante sucesso) que o problema do esgotamento dos endereços IP fosse adiado por algum tempo. Mas este esgotamento é apenas uma questão de tempo. Para contornar (quase) definitivamente este risco, foi feita a especificação da versão 6 do protocolo IP (a atual é a versão 4), conhecido como IPng (IP next generation) ou IPv6, que utiliza endereços com 128 bits de tamanho. Como o assunto da oportunidade e métodos para migração de IPv4 para IPv6 dá uma outra série de artigos, e como isto não é crítico para o que queremos falar sobre VoIP, não vou entrar mais fundo neste tema.
Agora que sabemos identificar qual a subnet e qual o host designados por um endereço IP, podemos entender como funciona o mecanismo de encaminhamento físico dos pacotes IP na rede, conhecido como roteamento IP.