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.