Mini-COMO FAZER Sub-Rede IP
Robert Hart, hartr@interweft.com.au
Traduzido e Revisado por Conectiva Informática,
:info@conectiva.com.br, no dia 30 de Março de 1999.
v1.0, 31 de março de 1997
Este documento descreve como e por que tornar uma rede IP em sub-rede,
usando número de rede simples Classe A, B ou C para funcionar
corretamente em várias redes interconectadas.
11.. DDiirreeiittooss AAuuttoorraaiiss
Este documento é distribuído sob os termos da Licença Pública GNU
(GPL).
Este documento é suportado diretamente pela InterWeft IT Consultants
(Melbourne, Austrália).
A versão mais recente deste documento está disponível no site
InterWeft WWW em InterWeft IT Consultants
proveniente de The Linux Documentation
Project .
22.. IInnttrroodduuççããoo
Com números de rede IP disponíveis tornando-se rapidamente espécies
arriscadas, o uso eficiente destes raros recursos é muito importante.
Este documento descreve como dividir um número de rede IP simples de
maneira que ele possa ser usado em várias redes diferentes.
Este documento concentra-se em números de rede IP classe C, mas os
princípios se aplicam também para as redes de classe A e B.
22..11.. OOuuttrraass ffoonntteess ddee iinnffoorrmmaaççõõeess
Existe um grande número de outras fontes de informação que são
relevantes tanto para informações detalhadas quanto para informações
de fundo em números IP. As recomendadas pelo autor são: -
· The Linux Network Administrators Guide
.
· The Linux System Administration Guide
.
· TCP/IP Network Administration by Craig Hunt, publicada por O'Reilly
and Associates .
33.. AAnnaattoommiiaa ddooss nnúúmmeerrooss IIPP
Antes de mergulhar nos deleites da sub-rede, precisamos estabelecer
alguns números IP básicos.
33..11.. NNúúmmeerrooss IIPP ppeerrtteenncceemm aa IInntteerrffaacceess -- NNããoo aa mmááqquuiinnaass!!
Antes de tudo, vamos deixar claro uma causa básica do mal entendido -
números IP não são assinados para máquinas servidores. Números IP são
assinados para interfaces de rede em máquinas.
Eh - o que é isto?
Apesar de que muitos (se não a grande maioria) dos computadores em uma
rede IP possuirem uma interface de rede simples (e terem um número IP
simples como conseqüência), esta não é a única maneira que as coisas
acontecem. Computadores e outros dispositivos podem ter várias
interfaces de redes - e cada interface ter seu próprio número IP.
Assim, um dispositivo com 6 interfaces ativas (tal como um roteador)
terá 6 números IP - um número para cada interface para cada rede a
qual esta é conectada. A razão disto fica clara quando olhamos para
uma rede IP!
Apesar disto, a maioria das pessoas refere-se a _e_n_d_e_r_e_ç_o_s _d_e
_s_e_r_v_i_d_o_r_e_s quando está se referindo a um número IP. Lembre-se que isto
é uma simples taquigrafia para o número IP _d_e_s_t_a _i_n_t_e_r_f_a_c_e _p_a_r_t_i_c_u_l_a_r
_n_e_s_t_e _s_e_r_v_i_d_o_r. Muitos (senão a maioria) dos dispositivos na Internet
têm uma interface simples e por conseguinte, um simples número IP.
33..22.. NNúúmmeerrooss IIPP ccoomm NNoottaaççããoo QQuuaatteerrnnáárriiaa
Na implementação atual (IPv4) de números IP, os números consistem em 4
bytes (8 bit) - dando um total de 32 bits de informação disponível.
Isto resulta em números que são especialmente grandes (mesmo quando
escritos em numeração decimal). Então para leitura (e razões
organizacionais) os números IP são usualmente escritos na notação
quaternária. O número IP
192.168.1.24
É um exemplo disto - 4 números (decimais) separados por (.) pontos.
Como cada um destes quatro números é a representação decimal de um
byte de 8 bits, cada um dos 4 números pode variar de 0 a 255 (isto
abrange 256 valores - lembre-se: zero é também um valor).
Adicionalmente, parte do número IP de um servidor identifica a rede na
qual o servidor reside, os 'bits' restantes do número IP identificam o
servidor (oops - a interface de rede). Exatamente quantos bits são
usados pela rede ID e, quantos são disponíveis para identificar
servidores (interfaces) nesta rede, determina-se 'classe' de rede.
33..33.. CCllaasssseess ddee RReeddee IIPP
Existem três classes de números IP:
· A classe A de números de rede IP usa os 8 bits mais a esquerda (o
quarto mais a esquerda) para identificar a rede, deixando 24 bits
(os três quartos restantes) para identificar as interfaces de
servidores nesta rede.
Endereços classe A sseemmpprree têm o bit mais a esquerda do byte mais a
esquerda zero (este é um valor decimal de 0 a 127 do primeiro
quarto). Então, existe um máximo de 128 números de rede classe A
disponíveis, com cada um deles contendo até 33,554,430 possíveis
interfaces.
Contudo, as redes 0.0.0.0 (conhecidas como rota padrão) e 127.0.0.0
(a rede de repasse) têm significados especiais e não estão
disponíveis para uso para identificar redes. Então, existem somente
126 números _d_i_s_p_o_n_í_v_e_i_s de rede classe A.
· A classe B de números de rede IP usa os 16 bits mais a esquerda
(os dois quartos mais a esquerda) para identificar a rede, deixando
16 bits (os dois últimos quartos) para identificar interfaces de
servidores. Endereços da classe B sempre têm os 2 bits mais a
esquerda do byte mais a esquerda determinado para 1 0. Isto deixa
14 bits para especificar o endereço de rede dando 32767 redes de
classe B disponíveis. A rede de classe B tem, desta forma, uma gama
de 128 a 191 para o primeiro dos quartos, com cada rede contendo
até 32,766 interfaces possíveis.
· Os números de rede IP da classe C usam os 24 bits mais a esquerda
(os três bytes mais a esquerda) para identificar a rede, deixando 8
bits ( o byte mais a direita) para identificar as interfaces de
máquina. Endereços da classe C sempre iniciam com os 3 bits mais a
esquerda determinados para 1 1 0 ou uma gama de 192 a 255 para o
quarto mais a esquerda. Assim sendo, existem 4,194,303 números de
rede classe C disponíveis, cada um contendo 254 interfaces (as
redes classe C com o primeiro byte maior que 223 são contudo
reservadas e indisponíveis para uso).
Em resumo:
classe de rede gama usável dos primeiros valores byte (decimal)
A 1 até 126
B 128 até 191
C 192 até 254
Existem também endereços especiais que são reservados para redes 'não
conectadas', isto é, redes que usam IP mas que não estão conectadas na
Internet. Estes endereços são:
· Uma Rede Classe A
10.0.0.0
· 16 Redes Classe B
172.16.0.0 - 172.31.0.0
· 256 Redes Classe C 192.168.0.0 - 192.168.255.0
Você notará que este documento utiliza estas seqüências do seu início
até o fim, para evitar confusão com redes 'reais' e máquinas.
33..44.. NNúúmmeerrooss ddee rreeddee,, eennddeerreeççooss ddee iinntteerrffaacceess ee eennddeerreeççooss ddee
ttrraannssmmiissssããoo
Os números IP podem ter três possíveis significados:
· O endereço de uma rede IP (um grupo de dispositivos IP
compartilhando um acesso comum para a transmissão de mídias - todos
estando no mesmo segmento Ethernet). Um número de rede sempre terá
os bits da interface (máquina) de um espaço de endereço
configurados para 0 (a não ser que a rede seja passada a sub-rede
- como veremos);
· O endereço de transmissão de uma rede IP (endereço usado para
'falar' simultaneamente para todos os dispositivos numa rede IP).
Endereços de Transmissão para uma rede, têm sempre os bits da
interface (máquina) do espaço de endereço configurados para 1 (a
não ser que a rede seja passada a sub-rede - de novo, como
veremos).
· O endereço de uma interface (tal como uma placa Ethernet ou
interface PPP em uma máquina, roteador, servidor de impressão,
etc.). Estes endereços podem ter qualquer valor nos bits da máquina
eexxcceettoo todos em zero ou em 1 - porque com todos os bits da máquina
em 0, o endereço é um endereço de rede e com todos em 1, o endereço
é um endereço de transmissão.
Em resumo e para esclarecer as coisas:
Para uma rede classe A...
(um espaço de endereço de rede seguido por três bytes de espaço de endereço de máquina)
10.0.0.0 é um número de rede porque todos os bits de máquina
do espaço de endereço são 0
10.0.1.0 é um endereço de máquina nesta rede
10.255.255.255.255 é o endereço de transmissão desta rede, porque todos
os bits de máquina do espaço de endereço são 1
Para uma rede classe B...
(dois bytes de espaço de endereço de rede seguido por dois bytes de espaço de endereço de máquina)
172.17.0.0 é um número de rede classe B
172.17.0.1 é um endereço de máquina nesta rede
172.17.255.255 é um endereço de rede de transmissão
Para rede Classe C...
(três bytes de espaço de endereço seguidos de um byte de espaço de endereço de rede)
192.168.3.0 é um número de rede Classe C
192.168.3.42 é um endereço de máquina nesta rede
192.168.3.255 é o endereço de rede de transmissão
Quase todos os números de rede IP restantes disponíveis para colocação
atualmente, são endereços Classe C.
33..55.. AA mmáássccaarraa ddee rreeddee
A máscara de rede é chamada, mais propriamente, de máscara de sub-
rede. Entretanto, ela é normalmente referida como máscara de rede.
É a máscara de rede e suas implicações em como os endereços IP são
interpretados _l_o_c_a_l_m_e_n_t_e em um segmento de rede IP que nos concerne
aqui, uma vez que isto determina qual (se alguma) sub-rede ocorre.
A máscara padronizada de (sub) rede são todos os bits de rede em um
endereço indicado para '1' e todos os bits de máquina indicados para
'0'. Isto significa que as máscaras de rede padrão para as três
classes de rede são:-
· M Máscara de rede Classe A: 255.0.0.0
· M Máscara de rede Classe B: 255.255.0.0
· M Máscara de rede Classe C: 255.255.255.0
Existem duas coisas importantes para lembrar sobre a máscara de rede:
· A máscara de rede afeta somente a interpretação llooccaall de llooccaall
números IP (onde local significa neste segmento particular da
rede);
· A máscara de rede nnããoo é um número IP - ela é usada para modificar
quantos números IP locais são interpretados localmente.
44.. OO qquuee ssããoo ssuubb--rreeddeess??
Uma sub-rede é uma maneira de se pegar um endereço de rede IP simples
e llooccaallmmeennttee dividí-lo de modo que este endereço de rede IP simples
possa realmente ser usado em diversas redes locais interconectadas.
Lembre-se de que um número de rede IP simples pode ser somente usado
numa rede simples.
A palavra importante aqui é llooccaallmmeennttee: não interessa o mundo de fora
das máquinas e as redes físicas cobertas pela rede IP "sub-netted",
nada, o que quer que seja foi mudado - isto ainda é somente uma rede
IP simples. Isto é importante - sub-rede é uma configuração llooccaall e é
invisível para o resto do mundo.
55.. PPoorr qquuee ssuubb--rreeddee??
As razões atrás de sub-rede datam do início da especificação IP - onde
somente poucos sites estavam funcionando nos números de rede Classe A,
o que permitia milhões de máquinas conectadas.
É evidente que um enorme tráfego e problemas de administração
surgiriam se todos os computadores com endereço IP, num grande site,
precisassem ser conectados na mesma rede: tentar lidar com tal monstro
poderia ser um pesadelo e a rede poderia (quase que certamente)
desmoronar sob o carregamento de seu próprio tráfego (saturado).
Numa sub-rede, o endereço de rede classe A pode ser dividido para
permitir sua distribuição através de algumas (se não muitas) redes
separadas. A administração de cada rede separada pode ser facilmente
delegada.
Isto permite pequenas redes manejáveis a serem estabelecidas - a
medida do possível, usando diferentes tecnologias de rede. Lembre-se,
você não pode misturar Ethernet, Token Ring, FDDI, ATM etc na mesma
rede física - entretanto, elas podem ser interconectadas!
Outras razões para sub-rede são:
· O aparência física do site pode criar restrições (comprimento dos
cabos) em termos de como a infra-estrutura física pode ser
conectada, requisitando redes múltiplas. Uma sub-rede permite que
isto seja feito em um ambiente IP usando um número de rede IP
simples.
Isto é, de fato, muito comum agora, feito pelo ISPs, que desejam
ter seus clientes conectados permanentemente com números de rede IP
estáticos locais.
· O tráfego de rede é suficientemente grande para estar causando
atrasos significativos. Dividindo a rede com uso de sub-redes, o
tráfego que é local para um segmento de rede pode ser mantido
localmente - reduzindo a sobrecarga de tráfego e acelerando a
ligação da rede sem requerer mais largura de banda da rede;
· Requerimentos de segurança podem determinar que classes diferentes
de usuários não compartilhem da mesma rede - como o tráfego de uma
rede pode ser sempre interceptado por um usuário habilitado. A sub-
rede fornece um caminho para proteger do departamento de
publicidade de farejadores, o tráfego de rede da R & D (ou
estudantes que estão farejando a rede de administração)!
· Ter equipamentos que usam tecnologias de rede incompatíveis e é
necessário interconectá-los (como mencionado acima).
66.. CCoommoo ttoorrnnaarr uumm nnúúmmeerroo ddee rreeddee IIPP nnuummaa ssuubb--rreeddee
Tendo decidido que é necessário tornar o seu número de rede IP em uma
sub-rede, como você vai fazer isto? O que se segue é uma visão dos
passos que serão então explicados em detalhes:
· Configure a ligação física (instalação e interconexão da rede - tal
como roteadores);
· Decida o tamanho grande/pequeno que cada sub-rede precisa ter em
termos de números de dispositivos que serão conectados a ela - isto
é, quantos números IP usáveis serão requeridos para cada segmento
individual.
· Calcule a máscara de rede apropriada e os endereços de rede;
· Dê a cada interface em cada rede o seu próprio endereço IP e a
máscara de rede apropriada;
· Configure as rotas nos roteadores e os portões apropriados, rotas
e/ou padrões de rotas nos dispositivos de rede;
· Teste o sistema, solucione os problemas e então relaxe!
Para este exemplo, supomos que você esteja tornando um número de rede
classe C simples 192.168.1.0 em uma sub-rede.
Isto provê um máximo de 254 interfaces conectadas (máquinas), mais o
número de rede obrigatório (192.168.1.0) e endereço de transmissão
(192.168.1.255).
66..11.. CCoonnffiigguurree aa lliiggaaççããoo ffííssiiccaa
Você precisará instalar as infra-estruturas de cabos corretas para
todos os dispositivos que você deseja inter-conectar, satisfazendo a
sua aparência física.
Você também precisará de um mecanismo para inter-conectar os vários
segmentos juntos (roteadores, conversores de mídia, etc.).
Uma discussão detalhada sobre isto é obviamente impossível aqui. Você
poderá precisar de ajuda, existem consultores de projeto/instalação
por aí que fornecem este tipo de serviço. Orientação gratuita também
está disponível num número do grupos de notícias Usenet (tal como
comp.os.linux.redeing).
66..22.. EEnnqquuaaddrraammeennttoo ddee ssuubb--rreeddee
Existe uma decisão entre o número de sub-redes que você cria e os
números IP 'desperdiçados'.
Cada rede IP individual tem dois endereços não usáveis como endereços
de (máquina) interface - o próprio número de rede IP e o endereço de
transmissão. Quando você se torna uma sub-rede, cada sub-rede requer
seu próprio e único número de rede IP e endereço de transmissão - e
estes têm que ser endereços válidos dentro da gama de endereços
fornecidos pela rede IP da qual você está sendo sub-rede.
Então, tornando uma rede IP em duas sub-redes separadas, existem
agora ddooiiss endereços de rede e ddooiiss endereços de transmissão -
aumentando os endereços de (máquina) interface 'não usáveis'; criando
4 sub-redes, criam-se ooiittoo não usáveis endereços de (máquina)
interface e assim por diante.
De fato, a menor sub-rede usável consiste em 4 números IP:
· Dois números de interface IP - um para a interface roteadora nesta
rede e um para a máquina simples desta rede.
· Um número de rede.
· Um endereço de transmissão.
Por que alguém quer criar uma rede tão pequena, é uma outra questão!
Com somente uma máquina simples na rede, qualquer comunicação de rede
deve ir para outra rede. No entanto, o exemplo serve para mostrar a
lei de diminuição de retornos que se aplica a sub-rede.
Em princípio, você pode dividir seu número de rede IP em 2^n (onde n é
um número a menos que o número de bits de máquinas do seu número de
rede IP) em sub-redes de tamanho igual (entretanto, você pode combinar
sub-redes).
Então, seja esperto em projetar seu projeto de rede - você quer o
mmeennoorr número de redes locais separadas o que é consistente com a
administração, o físico, o equipamento e a violação de segurança!
66..33.. CCaallccuullaannddoo aa mmáássccaarraa ddee ssuubb--rreeddee ee ooss nnúúmmeerrooss ddee rreeddee
A máscara de rede é o que executa toda a mágica llooccaall da divisão de
uma rede IP em sub-redes.
A máscara de rede para um número de rede IP transformado em sub-rede é
simplesmente um número quaternário que tém todos os 'bits de rede' de
um número de rede determinados para '1' e todos os bits de máquina
determinados para '0'.
Então, para as três classes de redes IP, as máscaras de rede
padronizadas são:
· Classe A (8 bits de rede) : 255.0.0.0
· Classe B (16 bits de rede): 255.255.0.0
· Classe C (24 bits de rede): 255.255.255.0
A maneira como as sub-redes operam é _e_m_p_r_e_s_t_a_r um ou mais dos bits de
máquina disponíveis e deixá-los fazer interfaces, llooccaallmmeennttee
interpretando estes bits emprestados como parte dos bits de rede.
Então, para dividir um número de rede em duas sub-redes, emprestaremos
um bit de máquina configurando o bit apropriado na máscara de rede do
primeiro bit de máquina (normal) para '1'.
Para um endereço Classe C, isto irá resultar numa máscara de rede de
11111111.11111111.11111111.10000000
ou 255.255.255.128
Para o nosso número de rede Classe C de 192.168.1.0, estas são algumas
das opções de sub-rede que se tem:
______________________________________________________________________
Número de Número de
sub-redes máq./rede Máscara de rede
2 126 255.255.255.128 (11111111.11111111.11111111.10000000)
4 62 255.255.255.192 (11111111.11111111.11111111.11000000)
8 30 255.255.255.224 (11111111.11111111.11111111.11100000)
16 14 255.255.255.240 (11111111.11111111.11111111.11110000)
32 6 255.255.255.248 (11111111.11111111.11111111.11111000)
64 2 255.255.255.252 (11111111.11111111.11111111.11111100)
______________________________________________________________________
A princípio, não há nenhuma razão para se seguir o caminho acima, onde
os bits de máscara de rede são adicionados do mais importante bit de
máquina para o menos importante bit de máquina. Contudo, se você não
fizer deste jeito, os números IP resultantes ficarão numa seqüência
_m_u_i_t_o ímpar! Isto torna extremamente difícil para nós, humanos,
decidir a qual sub-rede um número IP pertence, visto que nós não somos
tão bons em pensar de forma binária (por outro lado os computadores
são binários e usarão qualquer esquema que você diga para usarem com
igual imparcialidade).
Tendo decidido qual é a máscara de rede adequada, é necessário então
entender quais são os vários endereços de rede e de transmissão - e a
gama de números IP para cada uma destas redes. Mais uma vez,
considerando somente um número de rede IP Classe C e listando apenas o
_f_i_n_a_l (parte do endereço da máquina) nós temos:
______________________________________________________________________
No. de Faixa End.de Menor Maior No.de Total de
Máscara sub-redes da Rede B'cast IP IP Máq. Máquinas
-----------------------------------------------------------------------------
128 2 0 127 1 126 126
128 255 129 254 126 252
192 4 0 63 1 62 62
64 127 65 126 62
128 191 129 190 62
192 255 193 254 62 248
224 8 0 31 1 30 30
32 63 33 62 30
64 95 65 94 30
96 127 97 126 30
128 159 129 158 30
160 191 161 190 30
192 223 193 222 30
224 255 225 254 30 240
______________________________________________________________________
Como pode ser visto, há uma seqüência muito definida para estes
números, o que os torna fáceis de verificar. O 'downside' de uma sub-
rede também é vísível em termos de redução total de números de
endereços de máquinas disponíveis a medida que o número de sub-redes
aumenta.
Com estas informações, você está apto a atribuir a uma máquina, um
número de rede IP e uma máscara de rede.
77.. RRootteeaammeennttoo
Se você está usando um PC com Linux e duas interfaces de rede para
fazer o roteamento entre duas (ou mais) sub-redes, você precisa ter
habilitado no seu kernel a opção de Repasse de endereços IP.
Executando
______________________________________________________________________
cat /proc/ksyms | grep ip_forward
______________________________________________________________________
você deverá obter algo como:
______________________________________________________________________
00141364 ip_forward_Rf71ac834
______________________________________________________________________
Em caso contrário, será necessário habilitar o Repasse de endereços IP
no seu kernel, o que implica uma recompilação e instalação de um novo
kernel.
A propósito deste exemplo, vamos presumir que você tenha decidido
criar uma sub-rede com seu número de rede IP classe C sendo
192.168.1.0 e tendo 4 sub-redes (cada um dos 62 números IP usáveis
interface/máquina). Entretanto, duas destas sub-redes estão sendo
combinadas em uma grande rede simples, dando três redes físicas.
Elas são :
______________________________________________________________________
Rede Transmissão Máscara de rede No. de Máquinas
192.168.1.0 192.168.1.63 255.255.255.192 62
192.168.1.64 192.168.1.127 255.255.255.192 62
182.168.1.128 192.168.1.255 255.255.255.126 124 (veja nota)
______________________________________________________________________
Nota: a razão pela qual a última rede tem só 124 endereços de rede
usáveis (não 126 como seria esperado pela máscara de rede) é que ela é
realmente uma 'super-rede' de duas sub-redes. Máquinas nas outras duas
redes interpretarão 192.168.1.192 como o endereço de _r_e_d_e da sub-rede
'inexistente'. Similarmente elas interpretarão 192.168.1.191 como
endereço de transmissão da sub-rede 'inexistente'.
Assim, se você usa 192.168.1.191 ou 192 como endereços de máquina na
terceira rede, então as máquinas nas duas redes menores não estarão
capacitadas para se comunicar com as máquinas da terceira rede.
Isto ilustra um importante ponto com sub-redes - os endereços usáveis
são determinados pela MMEENNOORR sub-rede neste espaço de endereço.
77..11.. TTaabbeellaass ddee rrootteeaammeennttoo
Vamos presumir que um computador funcionando com Linux está agindo
como um roteador para esta rede. Ele terá três interfaces de rede para
as LANs locais e uma quarta interface possível para a Internet (que
poderá ser sua rota padrão).
Vamos presumir que o computador Linux usa o endereço IP disponível
mais baixo em cada sub-rede na sua interface para esta rede. Isto
configurará suas interfaces de rede como
______________________________________________________________________
Interface Endereço IP Máscara de rede
eth0 192.168.1.1 255.255.255.192
eth1 192.168.1.65 255.255.255.192
eth2 192.168.1.129 255.255.255.128
______________________________________________________________________
e a rotina estabelecida será:
______________________________________________________________________
Portão de
Destino Entrada Máscara Interface
192.168.1.0 0.0.0.0 255.255.255.192 eth0
192.168.1.64 0.0.0.0 255.255.255.192 eth1
192.168.1.128 0.0.0.0 255.255.255.128 eth2
______________________________________________________________________
Em cada sub-rede, as máquinas serão configuradas com seu próprio
número IP e máscara de rede (apropriados para a rede particular). Cada
máquina determinará o PC com Linux como seu portão/roteador,
especificando os endereços dos PCs com Linux para suas interfaces
nesta rede particular.
Robert Hart Melbourne, Austrália - Março de 1997.