Prévia do material em texto
1 Redes TCP/IP EndereEndereççamento e amento e RoteamentoRoteamento IPIP O objetivo deste módulo é explicar como funciona a atribuição de endereços IP com classe e sem classe e como configurar logicamente tabelas de roteamento. Obs. Corrigido em 19/04/2008 2 Edgard Jamhour Topologia InternetTopologia Internet • Internet - WAN Rede Física Rede Física Rede Física Rede Física internet Gateway ou roteador O protocolo IP define uma arquitetura de rede formada pela interligação de redes físicas. Na topologia IP, a rede física é normalmente uma rede IP, formada por Hubs ou Switches. Como veremos mais adiante no curso, atualmente, esse conceito é um pouco mais complexo devido a introdução do endereçamento privado. Mas neste capítulo, iremos considerar que todos os endereços IP são únicos (públicos). Os roteadores são utilizados para interligar as redes físicas entre si. Eles oferecem múltiplos caminhos para interconectar as redes físicas. O caminho é escolhido de acordo com informações previamente configuradas nos roteadores, denominadas “tabelas de roteamento”. As tabelas de roteamento indicam para cada roteador como ele deve encaminhar um pacote a fim de que este chegue a uma certa rede física de destino. Na Internet, as tabelas de roteamento são preenchidas automaticamente, através de protocolos de roteamento padronizados, como o BGP (Border Gateway Protocol) e o OSPF (Open Shortest Path First). 3 Edgard Jamhour NotaNotaçção Decimal Pontuadaão Decimal Pontuada 10000000 00001010 00000010 00011110 2726252423222120 2726252423222120 2726252423222120 2726252423222120 27=128 23+21=10 21=2 24+23+22+21=30 128.10.2.30 notação decimal pontuada notação binária O protocolo IPv4 (Internet Protocol version 4), atualmente utilizado na Internet, define endereços de 32 bits. Os endereços de 32 bits correspondem a quatro octetos (bytes). Na notação decimal pontuada, cada um desses octetos é representado por um número decimal, calculado como se cada octeto fosse independente dos demais. A figura ilustra a representação do endereço IP 128.10.2.30. Um endereço IP identifica um computador, mas também permite identificar a qual rede o computador pertence. De fato, a parte mais significativa do endereço IP corresponde ao identificador de rede (ou prefixo), e a parte menos significativa ao identificador de host. A quantidade exata de bits que corresponde ao identificador de rede é variável. Atualmente, existem duas estratégias para determinar o tamanho desse identificador: a)Endereços IP com classe • O identificador de rede (prefixo) é determinado pelo valor do endereço IP b)Endereços IP sem classe • O identificador de rede (prefixo) independe do valor do IP e é determinado por um outro número, denominado máscara de sub-rede. 4 Edgard Jamhour EndereEndereçços IPos IP • Endereço IP: Indentificador de Rede + Indentificador de HOST Id rede (prefixo) Endereço IP de 32 bits Rede fisica internet Rede física Rede Física Rede física hosts com o mesmo identificador de rede. hosts com identificadores de rede distintos. host Id de host Numa rede IP, a forma de atribuição dos endereços está diretamente relacionada a topologia da rede. Independente da estratégia utilizada para determinar o tamanho do identificador de rede, a forma padrão de atribuir endereços IP a uma rede deve obedecer as seguintes regras: 1) Computadores e interfaces de equipamentos de rede numa mesma rede física (LAN) devem ter o mesmo identificador de rede. 2) Redes físicas distintas devem possuir identificadores de rede distintos. É importante observar que na nomenclatura da arquitetura TCP/IP o termo sub-rede é comumente usado como sinônimo de LAN ou rede física. É possível fazer uma rede funcionar sem respeitar as regras acima. Contudo, essa prática seria muito imprópria, pois levaria a um aumento de complexidade desnecessário nas tabelas de roteamento de computadores e roteadores. 5 Edgard Jamhour reservado ---- 2.097.152 16.384 128 Número de Prefixos R R H R H H H H H 240.0.0.0 até 255.255.255.254 reservado(1111)Res. 224.0.0.0 até 239.255.255.255 268.435.456 (1110)D 192.0.0.0 até 223.255.255.255 256 (110) RC 128.0.0.0 191.255.255.255 65.536(10) RB 1.0.0.0 127.255.255.255 16.777.216(0) RA Faixa de EndereçosEndereços por Prefixo OctetosClasse Classes de EndereClasses de Endereççamento IPamento IP O método antigo usado para determinar o tamanho do identificador de rede era baseado na tabela mostrada pela figura. O método dividia o espaço de endereçamento IP em 4 classes, denominadas A,B,C e D. As classes A,B e C são de endereços unicast, isto é, elas são usadas para atribuir endereços para computadores individuais. Quando o endereço de destino de um pacote é do tipo unicast, apenas um computador em toda a rede deverá recebê-lo. A classe D é de endereços multicast, que é utilizada para atribuir endereços para grupos de computadores. Quando o endereço de destino de um pacote é do tipo multicast, o mesmo pode ser lido por múltiplos computadores ou dispositivos de rede que compartilham o mesmo endereço. Apenas as classes de A até C possuem o conceito de identificador de rede. Nesse caso, o tamanho do identificador é definido para cada classe. Na classe A o identificador tem 8 bits (1 byte). Na classe B, 16 bits e na classe C, 24 bits. Para determinar em qual classe um endereço pertence é necessário examinar os primeiros bits do endereço, conforme indicado na figura. Mais simples do que identificar os primeiros bits do endereço é localizar em que faixa o endereço se encontra. Por exemplo, um endereço em que o primeiro octeto está entre 1 e 127 é um classe A (exemplo, 10.32.1.2). Um endereço onde o primeiro octeto está entre 128 e 191 é um classe B (exemplo, 130.10.1.2), e assim por diante. 6 Edgard Jamhour EndereEndereçços IP com Classeos IP com Classe A B C 16 milhões 65 mil 255 ... 10.x.x.x ... 172.68.x.x ... 200.134.51.x O conceito de endereçamento com classes foi criado em uma época em que a rede Internet era muito pequena. O método de divisão adotado é muito rígido, e leva a um grande desperdício de endereços. Uma rede classe A representa uma rede física com 16 milhões de endereços. Considerando as tecnologias de rede atualmente utilizadas, esse número não faz muito sentido. No início da história da rede IP, contudo, acreditava-se que a Internet seria formada por um pequeno número de redes, e desejou-se limitar o tamanho das tabelas de roteamento nos roteadores que, nos anos 70, tinham capacidade de processamento e memória muito limitada. Na concepção original, a rede Internet poderia interconectar redes maiores, de diferentes tecnologias, que não necessariamente seguissem a filosofia das LANs. Inicialmente, a classe B foi a classe mais usada para atribuir endereços IP para as redes que se conectam a internet. Por volta de 1992, contudo, metade das classes B disponíveis já havia sido utilizada, e os prefixos das classes C passaram a ser utilizados. O problema dessa estratégia de alocação é que a quantidade de prefixos de classe B é limitada (16384). Além disso, ao atribuir uma classe B para uma universidade com 10 mil computadores, por exemplo, os 55 mil endereços restantes serão perdidos. O método também é muito rígido, pois não é possível criar redes com tamanhos intermediários entre as classes. 7 Edgard Jamhour roteador O roteador possui dois endereços IP, um para cada rede. 200.0.0.2 identificador de rede identificador do host 200.0.0.3 200.0.0.4 200.0.0.5 200.0.0.1 200.0.1.1 200.0.1.2 200.0.1.3 200.0.1.4 200.0.1.5 Exemplo de EndereExemplo de Endereççamentoamento sub-rede 200.0.0sub-rede 200.0.1 A figura mostra um exemplo de alocação de endereços classe C. No exemplo, duas redes LANs (ou sub-redes) foram conectadas: a sub-rede 200.0.0 e a sub-rede 200.0.1. Por que o prefixo 200.0.0 pertence a classe C, ele define um bloco de endereços que vai do 200.0.0.0 até o 200.0.0.255. O primeiro e o último endereço desses blocos são não podem ser usados com endereços de unicast (o primeiro é usado para identificar a rede e o último é um endereço de broadcast para todos os computadores da rede). Similarmente, a sub-rede 200.0.1 define o bloco de endereços 200.0.1.0 até 200.0.1.255. Observe que o roteador possui dois endereços IP, um para cada uma de suas interfaces. Cada interface do roteador pertence a sub-rede ao qual ele está conectado e deve, portanto, ter um endereço unicast do bloco que define a sub-rede. O endereço do roteador pode ser qualquer endereço do bloco. Uma boa prática, contudo, consiste em atribuir o primeiro endereço unicast válido do bloco para o roteador. Antes que um computador envie um pacote par outro, ele precisa decidir se o destinário está na mesma rede que ele ou não. Se não estiver, ele envia o pacote para o roteador da rede. Para tomar esta decisão, basta ao computador verificar se o endereço do destinatário está contido no bloco de endereços que define sua própria sub-rede. 8 Edgard Jamhour LimitaLimitaççõesões do IP com do IP com classeclasse ... 2000 computadores Universidade A ... 200 computadores Instituto B Os endereços IP com classe implicam em um grande desperdício de endereços. A classe mais utilizada até o início dos anos 90 era a classes B. Todavia, quando a quantidade de prefixos disponíveis nessa classe começou a decair drasticamente com o crescimento da Internet, os prefixos classe C começaram a ser utilizados. Para ilustrar como as classes implicam em desperdício de endereços, e porque o uso das classes C foi prejudicial, considere o cenário acima. Imagine que você precisa conectar duas redes de tamanhos distintos, uma com 2000 computadores e outra com 200, utilizando a tecnologia IP. O primeiro passo é escolher um identificador de rede para cada uma das sub-redes. Para a sub-rede com duzentos computadores, uma identificador pertencente a classe C é suficiente. A rede precisa de 200 endereços para os computadores e um endereço para Interface interna do roteador. Uma classe C possui 254 endereços unicast válidos. Os 53 endereços restantes estão perdidos, pois eles não podem ser alocados a nenhuma outra rede. Para a rede com 2000 computadores, o desperdício tende a ser muito maior. Duas soluções possíveis são utilizar uma classe B (nesse caso a perda de endereços seria na ordem de 63534). Ou oito prefixos de classes C, o que diminuiria a perda para 32 endereços, mas prejudicaria o desempenho da rede, como veremos a seguir. 9 Edgard Jamhour LimitaLimitaççõesões do IP com do IP com ClasseClasse 253 computadores Universidade A 253 computadores OITO CLASSES C 2024 endereços ... 2000 computadores Universidade A UMA CLASSE B 65536 endereços . . . . . . A figura ilustra as duas opções para escolher as classes do identificador de rede para a sub-rede com 2000 computadores (Universidade). A direita, a opção de escolher uma classe B é a mais simples. Utilizar uma classe B implica em que 65234 endereços seriam perdidos. Isto é, eles ficariam reservados para uso pela matriz em uma expansão futura. O lado esquerdo ilustra a opção de escolher oito classes C. O problema de adotar esta opção, é que a matriz seria realmente dividida em diversas sub-redes que precisariam ser interconectados por um ou mais roteadores. Ou seja, a escolha de classes menores implica em um incômodo para o administrador de rede, pois ele precisa adaptar a topologia de sua rede a escolha dos identificadores. Outro problema mais significativo é que o número de entradas na tabela de roteamento dos demais roteadores da Internet seria desnecessariamente maior. Enquanto basta uma entrada para representar a rede com o prefixo de classe B são necessárias oito entradas para representar a mesma rede com os prefixos de classe C. 10 Edgard Jamhour EndereEndereçços IP sem classeos IP sem classe • Classless Inter-Domain Routing (CIDR) – Introduzido em 1993, modificou a forma como o tamanho do prefixos de rede em um endereço IP é determinado. • O CIDR adota o conceito de máscara de subrede de tamanho variável, que permite definir prefixos de qualquer tamanho – VLSM (Variable Length Subnet Masking) IP (32 bits) Máscara de Subrede (32 bits) A maneira como o tamanho do prefixo de rede de um endereço IP é determinado foi alterado em 1993. A fim de flexibilizar a atribuição de endereços IP na Internet foi introduzido o conceito de CIDR (Classless Inter-Domain Routing). Essa nova estratégia permite definir prefixos de qualquer tamanho, pela introdução do conceito de máscara de sub-rede. A máscara de sub-rede é um número que acompanha um endereço IP e indica qual parte do endereço deve ser interpretado como um prefixo de rede. Em sua forma mais geral, uma máscara de sub-rede é um número de 32 bits. Na forma mais compacta, a máscara de sub-rede é apenas um número que indica quantos bits mais significativos do endereço IP devem ser usados como prefixo de rede. Essas formas de representação serão discutidas mais adiante neste capítulo. O conceito de máscara de sub-rede também é referenciado na literatura como VLSM (Variable Length Subnet Masking). Este termo é utilizado para distinguir do conceito de máscaras padronizadas para as classes A, B e C, que seriam representadas da seguinte forma: Classe A: (prefixo de 8 bits) - máscara 255.0.0.0 ou /8 Classe B: (prefixo de 16 bits) - máscara 255.255.0.0 ou /16 Classe C: (prefixo de 24 bits) - máscara 255.255.255.0 ou /24 11 Edgard Jamhour MMááscara de scara de SubredeSubrede • A Máscara de Subrede – 32 bits em notação decimal pontuada. • bits 1 indicam o endereço da subrede • bits 0 o endereço do host. • Máscaras Default: – classe A: 255.0.0.0 ou /8 ou • 11111111.00000000. 00000000. 00000000. – classe B: 255.255.0.0 ou /16 ou • 11111111. 11111111. 00000000. 00000000. – classe C: 255.255.255.0 ou /24 ou • 11111111. 11111111. 11111111. 00000000. Em sua forma mais geral, a máscara de sub-rede é um número de 32 bits, representado em notação decimal pontuada, de forma semelhante ao IP. Como seu próprio nome diz, este número funciona como uma máscara para o IP, no sentido em que se fizemos um “E” lógico bit-a-bit entre um endereço IP e sua máscara, obteremos como resultado o prefixo de rede do endereço IP. Para obter esse efeito, a máscara de subrede adota o seguinte princípio: se um bit da máscara é 1, então o bit correspondente no endereço IP pertence ao prefixo de rede. Se um bit da máscara de subrede é 0, então o bit correspondente pertence ao identificador de host. A forma mais recomendada para utilizar a máscara de subrede é fazer com que os bits mais significativos da máscara sejam iguais a 1. Nesse formato, uma máscara de subrede pode ser representado de forma compacta, utilizando o formato “/” seguido o tamanho do prefixo. Esse princípio é ilustrado utilizando as máscaras default, na figura acima. 12 Edgard Jamhour SubRedesSubRedes 200.0.0.0 (256 IPs) 200.0.0.255 200.0.0.0/24 200.0.0.0 (128 IPs) 200.0.0.127 200.0.0.128 (128 IPs) 200.0.0.255 200.0.0.0 (64 IPs) 200.0.0.63 200.0.0.64 (64 IPs) 200.0.0.127 200.0.0.0/26 /24 = 255.255.255.0 /25 = 255.255.255.128 /26 = 255.255.255.192 /27 =255.255.255.224 200.0.0.0 (32 IPs) 200.0.0.31 200.0.0.32 (32 IPs) 200.0.0.63200.0.0.64/26 200.0.0.0/25 200.0.0.128/25 200.0.0.0/27 200.0.0.32/27 Na nomenclatura do IP, uma subredecorresponde a um bloco de endereços. Esses endereços devem ser atribuídos, supostamente, a computadores conectados mesma LAN. O “nome da subrede” corresponde ao primeiro endereço do bloco, acompanhado pela máscara de subrede. Por exemplo, a subrede de classe C 200.0.0.0/24 define um bloco de 256 endereços que vai de 200.0.0.0 até 200.0.0.255. O primeiro e últimos endereços de um bloco não podem ser usados como “unicast”. O primeiro endereço é usado para identificar a rede, e o último significa um broadcast para o bloco. As máscaras de tamanho variável permitem definir redes de qualquer tamanho. Uma maneira de ilustrar esse conceito, é mostrar como a subrede de classe C 200.0.0.0/24 pode ser transformado em vários blocos de endereços independentes. O processo de divisão de um bloco de endereços em subredes menores é bastante simples. Cada vez que aumentamos o tamanho da máscara em 1 bit, criamos duas subredes com a metade do tamanho do bloco de endereços original. Por exemplo, a máscara /25 permite dividir a subrede 200.0.0.0/24 nas subredes 200.0.0.0/25 e 200.0.0.128/25, cada uma delas com 128 endereços. Observe que o último endereço de cada bloco continua sendo sempre um broadcast para a subrede. 13 Edgard Jamhour SuperRedesSuperRedes 200.0.0.0 (1024 IPs) 200.0.4.255 200.0.0.0 (512 IPs) 200.0.1.255 200.0.0.0/23 /24 = 255.255.255.0 /23 = 255.255.254.0 /22 = 255.255.252.0 200.0.0.0 (256 IPs) 200.0.0.255 200.0.1.0 (256 IPs) 200.0.1.255 200.0.0.0/22 200.0.0.0/24 200.0.1.0/24 200.0.2.0 (512 IPs) 200.0.3.255 200.0.2.0/23 200.0.2.0 (256 IPs) 200.0.2.255 200.0.3.0 (256 IPs) 200.0.3.255 200.0.2.0/24 200.0.3.0/24 As máscaras de tamanho variável permitem também agrupar subredes para formar superedes. O termo super-rede é as vezes utilizado para designar o bloco de endereços formado pela agregação de subredes de tamanho menor. Uma condição para criação das super-redes é que os blocos de endereços que serão agrupados devem ser contíguos. Por exemplo, considere 4 subredes pertencentes a classe C: 200.0.0.0/24, 200.0.1.0/24, 200.0.2.0/24 e 200.0.3.0/24. Observe que esses quatro blocos são contíguos pois o último endereço de um bloco é seguido imediatamente pelo primeiro endereço do bloco seguinte. O processo de agrupamento de subredes é igualmente simples. Cada vez que diminuímos o tamanho da máscara de subrede em 1 bit, criamos um super-rede que tem o dobro do tamanho da rede original. Na prática, o conceito de super-redes é bastante útil para diminuir o número de entradas nas tabelas de roteamento dos roteadores na Internet. Considere, por exemplo, o cenário anterior no qual havíamos atribuídos 8 prefixos de classe C para uma Universidade com 2024 computadores. Utilizando o conceito de super-rede, toda a Universidade pode ser representado por um único prefixo de tamanho /21. 14 Edgard Jamhour MMááscaras em Notascaras em Notaçção Decimal Pontuadaão Decimal Pontuada • Por default, a máscara de uma rede classe C é – 255.255.255.0. – 11111111. 11111111. 11111111. 00000000. • Para dividir a rede em 2 subredes, utiliza-se a máscara: – 255.255.255.128 – 11111111. 11111111. 11111111. 10000000. • Para dividir a rede em 4 subredes, utiliza-se a máscara: – 255.255.255.192 – 11111111. 11111111. 11111111. 11000000. • Para dividir a rede em 8 subredes, utiliza-se a máscara: – 255.255.255.224 – 11111111. 11111111. 11111111. 11100000. • Para dividir a rede em 16 subredes, utiliza-se a máscara: – 255.255.255.240 – 11111111. 11111111. 11111111. 11110000. As máscaras de subrede podem ser representadas em notação decimal pontuada, conforme mostra a figura acima. A máscara /25 corresponde a uma seqüência de 25 bits com valor 1, seguidos por 7 bits de valor 0. Os octetos da máscara que são formados apenas por números 1 recebem a representação decimal 255. Como o último octeto da máscara possui apenas um bit com valor 1, determina-se a representação decimal deste octeto calculando-se: 27 = 128. A máscara /25 em notação decimal pontuada torna-se 255.255.255.128. Para a máscara /26, temos dois bits iguais a 1, sendo que a representação decimal do último octeto é 27 + 26= 128 + 64 = 192. O mesmo princípio aplica-se para máscaras menores. Por exemplo, um máscara /17 possui os dois primeiros octetos completos e apenas um bit igual a um no penúltimo octeto da máscara. Seu valor é portanto: 255.255.128.0. Uma máscara /18 é representado por 255.255.192.0. Similarmente, um /9 é representado por 255.128.0.0 e um /10 por 255.192.0.0. Pode-se definir máscaras ainda menores. Como veremos adiante, uma máscara importante é a /0, a qual corresponde a representação decimal 0.0.0.0. 15 Edgard Jamhour r2 50 computadores ... subrede 2 100 computadores ... subrede1 ExemploExemplo de de AtribuiAtribuiççãoão de de EndereEndereççosos r3 ... 50 computadores subrede 3 r1200.1.1.0/24 Para ilustrar como a estratégia CIDR beneficia ambos, a rede do usuário e os roteadores da Internet, considere o problema de atribuição de endereços IP para o cenário ilustrado na figura. Uma empresa deseja conectar-se a Internet, e para isso obteve junto as autoridades de registro de endereços da Internet o prefixo de rede 200.1.1.0/24. Apesar de ter recebido um único prefixo, a empresa precisa interligar três sub-redes, uma com 100 computadores e duas com 50 computadores. O prefixo 200.1.1.0/24 corresponde a um bloco de 256 endereços, sendo, a princípio possível conectar a todos os computares. Consideremos inicialmente, uma subdivisão desse bloco com um máscara /25. Teremos dois prefixos com 128 endereços: 200.1.1.0/25 e 200.1.1.128/25. O primeiro desses blocos é suficiente para atender a subrede1, com 100 computadores. Para as duas subredes distantes, dividiremos novamente o prefixo 200.1.1.128 em dois blocos com 64 endereços: 200.1.1.128/26 e 200.1.1.192/26 16 Edgard Jamhour r2 ... ... ExemploExemplo de de AtribuiAtribuiççãoão de de EndereEndereççosos r3 ... subrede 3 200.1.1.128/26 r1 200.1.1.0/24 200.1.1.129 200.1.1.130 200.1.1.179 subrede 2 200.1.1.192/26 200.1.1.193 200.1.1.194 200.1.1.243 subrede 1 200.1.1.0/25 200.1.1.2 200.1.1.101200.1.1.1 A figura mostra como ficaria a distribuição dos endereços IPs após a divisão em blocos. A divisão definiu 3 prefixos de rede: subrede 1: 200.1.1.0/25 (128 endereços) -Define a faixa de endereços unicast de 200.1.1.1 até 200.1.1.126 subrede 3: 200.1.1.128/26 (64 endereços) -Define a faixa de endereços unicast de 200.1.1.129 até 200.1.1.190 subrede 2: 200.1.1.192/26 (64 endereços) -Define a faixa de endereços unicast de 200.1.1.193 até 200.1.1.254 Em todas as subredes, a interface do roteador conectado a subrede recebe o primeiro endereço unicast do bloco. Os demais computadores recebem os demais endereços do bloco. É importante observar que os roteadores da Internet não precisam saber dessa divisão feita pela empresa. Os roteadores da Internet continuam a ver todas as três subredes como uma única rede com prefixo 200.1.1.0/24, cujo único ponto de acesso é o roteador r1. 17 Edgard Jamhour EndereEndereçços IP especiaisos IP especiais • Não podem ser atribuídos a nenhuma estação: – Primeiro endereço do bloco de subrede • Identificador da subrede – Último endereço do bloco de subrede • Broadcast para a subrede – 127.0.0.0/8: • Bloco de endereços de loopback – 0.0.0.0: • Identificador da Internet • Endereço de Inicialização (DHCP) – 255.255.255.255: • Broadcast para todas as redes Além da classe D, que deve ser utilizada apenas para endereços de multicast, existem outros endereços IP que não podem ser utilizados no modo unicast, isto é, como endereço de computadoresindividuais. Conforme vimos, independente do tamanho do prefixo de rede, o primeiro e o último endereços de um bloco de endereços são sempre reservados. O primeiro endereço, juntamente com a máscara de subrede, é utilizado para identificar a subrede. O último endereços de um bloco sempre representa um broadcast para o bloco. A IANA (Internet Assigned Number Authority), responsável pela regulamentação de como os endereços IP são utilizados, definiu também que todo o bloco de endereços 127.0.0.0/8 (isto é de 127.0.0.0 até 127.255.255.255) correspondem a endereços de loopback, isto é, eles endereçam processo internos ao computador e não podem ser utilizados para encaminhar pacotes pela rede. Experimente pingar qualquer endereço dessa faixa no seu computador, e você verá que todos irão responder, pois eles representam o seu próprio computador. O endereço 0.0.0.0, além de representar a rede Internet, é usado pelos computadores para informar que eles não tem um endereço IP válido (por exemplo, durante o processo de inicialização via DHCP). Um pacote com o endereço de destino 255.255.255.255 representa broadcast para todas as subredes, independentemente do seu prefixo. 18 Edgard Jamhour LoopbackLoopback = Transmissão Local= Transmissão Local • Os pacotes IP com endereço de loopback não são enviados para camadas inferiores da pilha TCP/IP. – Eles são tratados localmente pela própria estação • Recomendação do IETF: 127.0.0.0/8 é reservado para loopback Transporte Rede Enlace Física processo A processo B porta A porta B 127.0.0.1 Os endereços de loopback representam sempre uma comunicação no interior do sistema operacional do computador. Esses endereços indicam que o pacote não deve ser encapsulado pela camada de enlace, mas ser encaminhado diretamente para o outro processo, conforme ilustrado pela figura. Em teoria, se você fizer um ping para o seu próprio computador usando seu endereço unicast, o pacote deveria descer até a camada de enlace, para depois retornar para as camadas superiores. Os endereços de loopback eliminam esse problema, pois introduzem endereços com um comportamento especial. Na prática, os sistemas operacionais implementam um redirecionamento do pacotes enviados para o endereço de unicast do computador para o loopback, para evitar o desperdício de colocar um pacote na rede, que será lido pelo próprio computador. 19 Edgard Jamhour Mapeamento de EndereMapeamento de Endereççosos • Um computador com uma única interface de rede é dito “single- homed” – Interface de rede = NIC - Network Interface Card. • Um computador com múltiplas interface de rede é dito “multi-homed” – Um roteador pode ser considerado como um computador especializado, do tipo multi-homed. • Na arquitetura TCP/IP, cada uma das interfaces de rede possui 2 endereços: – um endereço físico (MAC) e um endereço IP. MAC (00-60-08-16-85-B3) IP (200.0.0.1) NICNIC Endereços de 48 bits (6 bytes) O endereço IP não identifica, de fato, um computador, mas sim sua interface de rede. Um computador com múltiplas interfaces de rede (dito multi-homed) terá múltiplos endereços IP, um para cada Interface. Em inglês, as interfaces de rede são referenciadas como NIC (Network Interface Card). Atualmente, é cada vez mais raro ver “placas de rede”, pois atualmente elas são implementadas “on-board”, isto é, juntamente com a placa mãe do computador. Observe que um computador com uma interface Ethernet e outra Wi-Fi possuirá dois endereços IP, se ambas as interfaces estiverem ativas ao mesmo tempo. Cada uma das interfaces de rede do computador possui dois endereços: o endereço IP e o endereço físico (denominado MAC address, de acordo com a nomenclatura proposta pelo padrão IEEE 802). O IEEE 802 propõe uma subdivisão da camada de enlace do modelo OSI em duas subcamadas: MAC (Medium Access Control) e LLC (Logic Link Control). A camada MAC é dependente da tecnologia e o LLC não (isto é, o LLC é comum a todas as tecnologias). O endereço físico é considerado parte da sub-camada MAC, daí a denominação. 20 Edgard Jamhour EndereEndereçço MACo MAC • O padrão IEEE 802 define 2 formas de endereçamento MAC – endereços administrados localmente • Quem instala a placa de rede. – endereços universais • Pelo fabricante. 1 2 3 4 5 6 Código do Frabricante Número de Série Os endereços MAC (6 bytes) são bem maiores que os endereços IP (4 bytes). Apesar do tamanho, os endereços MAC não tem relação com a topologia da rede, como os endereços IP. Na verdade, sua relação é com o fabricante da interface de rede. As interfaces de rede, presentes no computador já vem com um endereço MAC pré-definido, formado pelo código do fabricante seguido de um número de série. Muitos drivers de interface de rede permitem alterar o endereço MAC. Se o usuário não quiser correr o risco de entrar em conflito com o endereço MAC de algum outro computador de sua rede, ele deve tomar o cuidado de utilizar a faixa de endereços dita: administrada localmente. Os casos onde a administração local dos endereços é necessária ou vantajosa é absolutamente rara. Nenhuma aplicação de usuário utiliza o endereço MAC para endereçar outro computador. A forma de endereçar os computadores, na arquitetura TCP/IP é sempre feita utilizando-se o endereço IP. Cabe ao próprio sistema operacional do transmissor descobrir o endereço MAC do destinatário antes de fazer o encapsulamento de um pacote dentro de um quadro. 21 Edgard Jamhour Filtragem de EndereFiltragem de Endereççosos MAC FFÍÍSICASICA REDEREDE IP MACD = PLACA DE REDE LOCAL MACD = BROADCAST (FF.FF.FF.FF.FF.FF) MACD MACO DADOS CRC INTERRUPÇÃO IPDIPO O tratamento dos endereços MAC e IP não estão apenas em camadas distintas do modelo OSI, eles são tratados por processadores distintas. A interface de rede do computador possui se próprio processador para interpretar os quadros de forma independente da CPU principal do computador. Isto é necessário, pois a interface de rede está sendo constantemente bombardeada por quadros, que muitas vezes não devem ser interpretados pelo computador. A placa de rede só irá incomodar a CPU principal do computador em três situações específicas. A primeira é se o endereço MAC de destino do quadro coincidir com o endereços MAC da interface de rede. O segundo é se o endereço MAC de destino for um broadcast, isto é, o endereço MAC especial FF.FF.FF.FF.FF.FF (todos os bits iguais a 1). O terceiro é se o endereço MAC de destino for um MAC de multicast, de um grupo ao qual a interface de rede também pertença. O tópico de multi-cast será discutido mais adiante no curso. Nessas situações, a interface de rede gera uma interrupção, e envia o pacote para a camada de rede, para que ele seja processado. 22 Edgard Jamhour RelaRelaçção entre IP e MACão entre IP e MAC Estação A NICendereço físico MACA endereço IPA Estação B endereço IPB endereço físico MACB MACB MACA IPA IPB Dados datagrama quadro NIC Quando A e B estiverem na mesma rede física, a relação entre os endereços MAC e IP é de um para um. Isto é, um quadro enviado de uma estação A para uma estação B irá conter os endereços MAC e IP de B e A. Como veremos adiante, se eles estiverem em redes físicas diferentes, isto é, separados por um roteador, o endereço MAC do roteador irá aparecer, eventualmente, no lugar dos endereços MAC de B e A. Em todos esses casos, o computador A não conhece previamente o endereço MAC de B. Para manter a independência da arquitetura TCP/IP em relação a tecnologia da camada de enlace, a identificação do endereços de destino é feita sempre em termos de endereço IP. Quando o pedido de envio de um pacote destinado ao endereço IPB chega na camada de rede do computador A, um mecanismoextra é utilizado a fim de descobrir o endereço MAC de B. Este mecanismo é baseado em um protocolo de camada 3, denominado ARP: Address Resolution Pprotocol. 23 Edgard Jamhour AddressAddress ResolutionResolution ProtocolProtocol -- ARPARP • O ARP é um protocolo que efetua a descoberta do endereço MAC de um computador a partir do endereços IP. – As mensagens são passadas para a camada de rede especificando o destinatário através do endereço IP. – O protocolo ARP precisa determinar o endereço MAC do destinatário para a camada de enlace de dados. TipoTipo MAC de Destino MAC de Origem Dado ECCECC IP ORIGEMIP ORIGEM IP DESTINOIP DESTINO DadoDadoRedeRede Enlace de DadosEnlace de Dados LLCLLC ++MACMAC O protocolo ARP (Address Resolution Protocol) é utilizado para resolução de endereços MAC para IP. O protocolo foi originalmente desenvolvido para operar apenas com o Ethernet, mas foi posteriormente expandido para operar com outras tecnologias de camada 2. Este protocolo é baseado em duas mensagens. A estação transmissora envia uma mensagem denominada ARP Request informando o endereço IP do destinatário e solicitando seu endereço MAC. A estação que tiver o endereço IP responde com um mensagem de ARP Reply informando seu endereço MAC. É importante observar que todo este processo ocorre efetivamente antes que o primeiro pacote enviado pelas camadas superiores seja efetivamente transmitido. Isto é, o pedido de envio de um pacote IP fica congelado até que o protocolo ARP termine o processo de descoberta. Esse processo é bastante custoso, e como veremos adiante, seu custo é minimizado com o uso de um mecanismo de cache de endereços MAC. 24 Edgard Jamhour ARPARP A B C ARPARP REQUESTREQUEST ARPARP REPLYREPLY qual o MAC do IP 200.0.0.2 ? o MAC do IP 200.0.0.2 é C ? 200.0.0.3 200.0.0.4 200.0.0.2 A mensagem ARP request é uma mensagem enviada em broadcast, isto é, seu endereço MAC de destino é FF.FF.FF.FF.FF. Todos os computadores que estiverem em uma mesma rede física recebem todas as mensagens de ARP Request enviadas. Isso ocorre mesmo que os computadores estejam ligados em um Switch. Os computadores que recebem a mensagem ARP mas não possuem o endereço IP solicitado ignoram a mensagem. Somente o computador com o IP solicitado envia o ARP Reply em unicast. O protocolo ARP possui os seguintes campos principais: Tipo de Hardware: especifica a tecnologia da camada de Enlace. Atualmente várias opções são suportadas, como Ethernet, ATM, FrameRelay e HDLC. Tipo de Protocolo: especifica a tecnologia da camada de Rede. No caso a arquitetura TCP/IP, o protocolo IPv4. Tamanho do Endereço de Hardware: 6 bytes no caso do MAC Tamanho do Endereço de Protocolo: 4 bytes para o IPv4 Tipo de Mensage: Arp Request e Arp Reply, entre outras. Endereço de Hardware do Transmissor: MAC do transmissor Endereço de Protocolo do Transmissor: IP do transmissor Endereço de Hardware do Alvo: MAC que precisa ser descoberto Endereço de Protocolo do Alvo: IP do computador de destino 25 Edgard Jamhour ARPARP • O protocolo ARP compara o endereço IP de todos os datagramas enviados na ARP Cache. – Se ele for encontrado, o endereço MAC é copiado da cache. – Se não, um pacote ARP Request é enviado em broadcast para subrede. • Se o destinatário final for um endereço IP externo, o ARP resolve o endereço para o roteador ao invés do destinatário final. ARP Cache endereço IP endereço MAC tipo 200.0.0.1 00-60-08-16-85-B3 dinâmico 200.0.0.3 00-60-08-16-85-ca dinâmico O envio de mensagens em broadcast é altamente prejudicial ao desempenho da rede. Na presença desse tipo de mensagem, os switches se comportam de forma idêntica aos Hubs, ou seja, uma mensage ARP recebida em uma porta é transmitida para todas as demais. Uma rede com muitos computadores pode apresentar um alto nível de mensagens em broadcast. Essas mensagens provocam o congestionamento da rede, e levam ao natural decréscimo no desempenho da rede. Além disso as mensagens em broadcast não são filtradas pelas interfaces de rede dos computadores, e seu conteúdo precisa ser interpretado pela CPU do computador, roubando tempo de processamento das aplicações dos usuários. Para reduzir a quantidade de mensagens ARP geradas, uma processo de cache é utilizado. Todo endereço MAC descoberto é armazenado na cache ARP, com um certo tempo de vida (geralmente 5 minutos). Antes de enviar uma mensagem ARP, o sistema operacional consulta a cache, e só envia a mensagem caso não encontre o endereço IP do destinatário nessa tabela. 26 Edgard Jamhour O ARP sO ARP sóó funciona na rede localfunciona na rede local ARP request o roteador não propaga broadcast Por default, as mensagens em broadcast não atravessam roteadores. Apesar de ser possível configurar roteadores para encaminharem mensagens em broadcast, isto não é feito (certamente não pelos roteadores da Internet). Dessa forma, as mensagens ARP não atravessam roteadores, e um computador não é capaz de determinar o endereço MAC de um computador que esteja localizado em uma outra rede física. Na verdade, ele não precisa. Quando um computador constrói um quadro, ele só irá tentar localizar o endereço MAC do destinatário caso ele possua o mesmo prefixo de rede que ele. Se ele possuir um outro prefixo de rede, o quadro deverá ser encaminhado para um roteador. Dessa forma, uma mensagem ARP ainda é enviada, mas não para localizar o MAC do computador de destino, mas para localizar o MAC do roteador. 27 Edgard Jamhour DetecDetecçção de Endereão de Endereçços IP Duplicadosos IP Duplicados A B C ARPARP REQUESTREQUEST ARPARP REPLYREPLY qual o MAC do IP 200.0.0.2 ? o MAC do IP 200.0.0.2 é C ? 200.0.0.2 200.0.0.4 200.0.0.2 O ARP é utilizado para identificar se existem IP’s duplicados. Quando o endereço IP de uma maquina é configurado, ela envia uma mensagem ARP perguntando o MAC desse IP. Se alguém responder, então o endereço já existe. O computador que teve seu endereço duplicado também consegue determinar que houve duplicação de endereço, pois seu endereço IPv4 irá aparecer no campo “endereço de protocolo do transmissor” na mensagem ARP request recebida. O mecanismo não funciona, evidentemente, para detectar endereços IPs duplicados em outras redes físicas, uma vez que as mensagens ARP Request não podem atravessar os roteadores. Na verdade, o processo de usar endereços IP duplicados na Internet é, atualmente, um mecanismo bastante usado, conhecido como endereçamento privado. Esta forma de endereçamento será estudada mais adiante no curso. 28 Edgard Jamhour RoteamentoRoteamento REDE internet comunicação intra- rede. comunicação inter- redes REDE REDE REDE Ao analisar o funcionamento do protocolo ARP, fica claro que o modo de funcionamento do encaminhamento de pacotes no interior de uma rede física difere da forma como eles são encaminhados entre redes físicas distintas. O processo de comunicação intra-rede, isto é, entre dois computadores com o mesmo prefixo de rede, situados na mesma rede local, não envolve roteadores. O processo de comunicação inter-rede, por outro lado, é totalmente intermediado pelos roteadores. Quem decide se um pacote irá ou não passar por roteadores é o próprio computador transmissor. Ele faz isso analisando endereço do destinatário e comparando com o seu próprio prefixo. Se o prefixo do destinatário for igual ao seu a comunicação é intra-rede, se for diferente, é inter-rede. 29 Edgard Jamhour RoteamentoRoteamento • Comunicação intra-rede – Os endereço FÍSICO de destino é o endereço MAC do computador de destino. • Comunicação inter-redes – O endereço FÍSICO de destino é o endereço MAC do roteador ligado a mesma rede física que a estação transmissora. IP ORIGEM IPDESTINO DADOSMAC ORIGEM MAC DESTINO IP ORIGEM IP DESTINO DADOSMAC ORIGEM MAC ROTEADOR INTRA-REDE INTER-REDES A maneira como o computador constrói um quadro depende da comunicação ser intra- rede ou inter-rede. Se a comunicação é intra-rede, o computador determina o endereço MAC do destinatário utilizando o protocolo ARP, e constrói um quadro com o endereço físico de destino endereçando diretamente o destinatário. Se a comunicação é inter-rede, o computador determina o endereço MAC do roteador da sua rede, também utilizando o protocolo ARP, e constrói um quadro com o endereço físico do roteador, ao invés do endereço físico do destinatário. Em ambos os casos, o endereço IP de destino é sempre o do computador para quem o pacote deve ser enviado. Outro aspecto importante, é que o IP do roteador nunca aparece nos pacotes. 30 Edgard Jamhour ComunicaComunicaççãoão InterInter--RedesRedes • O endereço IP de origem e de destino se mantém os mesmos durante todos os saltos de um pacote através de vários roteadores. • O endereço MAC é modificado para endereçar os elementos participantes de cada salto. emissoremissor receptorreceptor 200.0.0.2/24 210.1.2.3/24Router 1 Router 2 MAC1 MAC2 MAC3 MAC4 MAC5 MAC6 Durante o processo de encaminhamento de um pacote, numa transmissão inter-redes, os endereços MAC de origem e destino são alterados de maneira a refletir o enlace por onde o quadro está sendo encaminhado. A tecnologia Ethernet nem sempre é utilizado nos enlaces ponto a ponto dos roteadores, mas nesse exemplo, vamos supor que todos os enlaces são Ethernet. No exemplo da figura, o emissor encaminha o primeiro quadro para o endereço MAC do roteador 1 (MAC2). Quando o roteador 1 encaminha o quadro para o roteador 2, os endereços físicos de origem e destino são respectivamente MAC3 e MAC4 . Quando o roteador 2 entrega o quadro para o receptor, os endereços físicos de origem e destino são, respectivamente, MAC5 e MAC6. Observe que o emissor não precisa conhecer o endereço MAC do destinatário, e que o receptor, ao receber o quadro, não sabe qual o endereço MAC do transmissor. Numa comunicação inter-redes, são os endereços IPs os responsáveis por pelo endereçamento fim-a-fim. Os endereços físicos são responsáveis pelos endereçamentos no interior dos enlaces. 31 Edgard Jamhour ComunicaComunicaççãoão InterInter--RedesRedes IPA IPD IPB IPC A B D B A C IPIPAA IPIPDD D C IPIPAA IPIPDD A figura o processo de encapsulamento de um pacote, quando este atravessa um roteador. Antes de enviar o pacote, se o endereço MAC já não estiver em sua cache ARP, o computador A enviar uma mensagem ARP Request em broadcast a fim de determinar o endereço MAC do roteador. Após descobrir o endereço, o computador criará um quadro onde o endereço de destino é o endereço MAC da interface do roteador que está do seu lado da rede. Quando o roteador receber o quadro, ele extrai o pacote e se preparar para construir um novo quadro. Ao analisar o endereço de destino do pacote, o roteador determinar que precisar descobrir o endereço MAC do computador IPD. Para isso, ele envia uma mensagem ARP request em broadcast por sua interface C, a fim de determinar o MAC de IPD. Após descobrir o endereço MAC ele criar um novo quadro, que tem o seu próprio MAC como origem e o endereço MAC do computador IPD no destino. 32 Edgard Jamhour ExemploExemplo emissor roteador roteadorrede 10.0.0.0 rede 20.0.0.0 receptor rede 30.0.0.0 IP: 10.0.0.2 endereço físico: A IP: 10.0.0.3 endereço físico: B IP: 20.0.0.2 endereço físico: C IP: 20.0.0.3 endereço físico: D IP: 30.0.0.3 endereço físico: E IP: 30.0.0.2 endereço físico: F quadro primeiro salto: IP origem: 10.0.0.2 IP destino: 30.0.0.2 endereço físico de origem: A endereço físico de destino: B segundo salto: IP origem: 10.0.0.2 IP destino: 30.0.0.2 endereço físico de origem: C endereço físico de destino: D terceiro salto: IP origem: 10.0.0.2 IP destino: 30.0.0.2 endereço físico de origem: E endereço físico de destino: F quadro quadro A figura ilustra o processo de construção de quadros durante a transmissão de um pacote do computador com IP 10.0.0.2 para o computador com IP 30.0.0.2. O que se deve ter em mente neste processo é que os endereços físicos da camada de enlace (os endereços MAC) não tem significado global. De fato, nunca ser verá um quadro que aponte para um endereço MAC que pertença a uma outra rede. O termo protocolo de enlace á bastante apropriado neste cenário, pois os quadros são utilizados apenas para transportar um pacote no interior de um enlace. A fim de atravessar um roteador, um novo quadro deve ser criado para percorrer o próximo enlace, e assim, sucessivamente, até o pacote chegar no seu destino final. 33 Edgard Jamhour Tabela de Tabela de RoteamentoRoteamento • FORMATO GERAL • REDE DESTINO: 200.1.2.0 255.255.255.0 • GATEWAY ou NEXT-HOP: 200.1.2.1 • INTERFACE: eth0 ou 200.1.2.5 • CUSTO: 1 200.1.2.0 200.1.2.255 ENDEREÇO DE BASE PROPRIEDADE: O resultado de um E-BINARIO de qualquer endereço da rede com a máscara resulta sempre no endereço de base. 200.1.2.0/24 Durante o processo de transmissão de um pacote por uma rede WAN, tanto os computadores quanto os roteadores precisam determinar se um pacote pode ser entregue diretamente, ou se deve ser encaminhado para outro roteador. Também é preciso conhecer o endereço IP dos roteadores neste processo. O processo de encaminhamento de pacotes IP é denominado roteamento. Todas as informações necessárias para um computador ou roteador executar a operação de roteamento estão contidas em uma tabela, denominada “tabela de roteamento”. Uma tabela de roteamento contém múltiplas entradas, cada uma delas correspondendo as redes que um computador ou roteador tem acesso. Cada uma dessas estradas é composta por quatro campos: Rede de destino: identifica um destino acessível pelo computador ou roteador Gateway: identifica para qual (interface de) roteador o pacote deve ser encaminhado para chegar a rede de destino. Interface: indica por qual das interfaces do dispositivo o pacote deve ser enviado. A interface pode ser identificada por um endereço IP ou por um nome lógico, dependendo do sistema operacional do dispositivo. Custo: permite criar classificar múltiplos caminhos para um mesmo destino. 34 Edgard Jamhour Rede de DestinoRede de Destino • Formada por um endereço de base e uma máscara de subrede. Exemplos: – 200.134.51.0 (MASCARA 255.255.255.0): • Rota para os computadores: – 200.134.51.0 a 200.134.51.255 – 200.134.0.0 (MASCARA 255.255.0.0): • Rota para os computadores: – 200.134.0.0 a 200.134.255.255. – 200.134.51.6 (MASCARA 255.255.255.255): • Rota para o computador: – 200.134.51.6. – 0.0.0.0 (MASCARA 0.0.0.0) • Rota para todos os computadores – 0.0.0.0 até 255.255.255.255 Uma rede de destino pode ter múltiplos tamanhos. Ela pode ser tão grande quanto a Internet (0.0.0.0/0), ou tão pequena quanto um simples computador (200.134.51.6/32). Uma rede de destino é sempre descrita por um endereço de base (o primeiro endereço de um bloco de endereços) e um máscara de subrede, que determinar o tamanho do bloco. Por exemplo, a rede 200.134.51.0/24 (isto é, com máscara 255.255.255.0) define um bloco de endereços que vai de 200.134.51.0 até 200.134.51.255. Quando um computador ou roteador precisa encaminhar um pacote, ele procura uma entrada na tabela de roteamento cujo campo rede de destino represente um bloco que contém o endereço de destino do pacote. Se a operação “E” lógico bit-a-bit entre o endereço de destino e a máscara da rede de destino resultarem no endereço de base da rede, então, o endereço pertence ao bloco. Se não, o computadorou roteador irá testar uma nova entrada na tabela. Por exemplo, se pegarmos o endereço 200.134.51.34 e fizermos um “E” lógico com 255.255.255.0 (isto é, zerarmos os últimos 8 bits) obteremos 200.134.51.0. 35 Edgard Jamhour Exemplo de Tabelas de Exemplo de Tabelas de RoteamentoRoteamento roteador 1 roteador 2 INTERNET REDE 200.134.51.0/24 REDE 200.17.98.0/24 200.17.98.1 200.134.51.1 10.0.0.1/30 10.0.0.2/30 200.134.51.25 A B Para ilustrar o conceito das tabelas de roteamento, considere o cenário mostrado pela figura. Todos os dispositivos presentes na figura, isto é, os computadores e os roteadores possuem tabelas de roteamento. A princípio, todas as tabelas de roteamento deverão possuir três entradas, uma para cada rede mostrada na figura. As redes são: 200.17.98.0/24, 200.134.51.0/24 e 0.0.0.0/0 O enlace entre os roteadores 1 e 2 também é uma rede, mas geralmente, não vale a pena representá-la na tabela de roteamento, uma vez que é possível acessar aos roteadores pelas outras interfaces. De fato, no caso de um enlace ponto-a-ponto, pode-se utilizar endereços não únicos, do tipo privado. Como vermos adiante no curso, a IANA define como endereços privados alguns prefixos de rede, que podem ser usados livremente sem necessidade de registro junto as autoridades. Os endereços privados não são roteáveis na Internet, isto é, os roteadores da Internet não possuem rotas para endereços privados. A máscara /30 é ideal para atribuir endereços a enlaces ponto-a-ponto, pois ela define um bloco com apenas 4 endereços (sendo apenas dois endereços de unicast). 36 Edgard Jamhour Tabela do computador BTabela do computador B roteador 1 200.134.51.25 B 200.134.51.1 1eth0 ou 200.134.51.25200.134.51.1200.17.98.0/24 1eth0 ou 200.134.51.25200.134.51.10.0.0.0/0 1eth0 ou 200.134.51.25não tem200.134.51.0/24 CustoInterfaceGatewayRede Destino eth0 200.134.51.0/24 A figura ilustra como seria a tabela de roteamento do computador B. A tabela possui três entradas, uma para cada rede acessível pelo computador. A primeira rota indica como o computador deve proceder para encaminhar pacotes para a sua própria rede. Neste caso, como o campo gateway não é necessário. Muitos sistemas operacionais representam a condição de encaminhamento para rede local de formas diferentes. O Windows Vista, por exemplo, indica “sem vínculo” nesse campo. O Linux, utilizar 0.0.0.0 para indicar que o gateway não é necessário. O campo interface nesse caso, é idêntico para todas as entradas da tabela uma vez que computador possui apenas uma interface de rede. Novamente, a forma de representação desse campo é bastante variável. O nome lógico “eth0” é comumente utilizado pelo Linux para designar a primeira (ou única) interface de rede do tipo Ethernet do computador. O sistema Windows Vista, por outro lado, utiliza o endereço IP da interface nesse campo. O custo neste caso é sempre 1, pois não existem caminhos alternativos para as redes listadas na tabela. Nesse caso, qualquer valor de custo seria válido. 37 Edgard Jamhour SeqSeqüüência de Anência de Anáálise da Rotalise da Rota • 1) DA ROTA MAIS ESPECÍFICA PARA A ROTA MAIS GENÉRICA – ROTA MAIS ESPECÍFICA: • ROTA COM MENOS ZEROS NA MÁSCARA • 2) DA ROTA COM MENOR CUSTO PARA ROTA DE MAIOR CUSTO • 3) ORDEM DAS ROTAS NA TABELA Se analisarmos a tabela de roteamento do computador B, encontraremos um problema de conflito, pois a rede Internet engloba as outras duas redes. Isto é, qualquer endereço de destino que seja testado pelo computador estará contido na rota para rede Internet, inclusive os endereços locais. Felizmente, esse problema não ocorre, pois existe uma convenção sobre ordem em que as entradas da tabela de roteamento devem ser testadas. Essa convenção é baseada em duas regras importantes e uma opcional. A primeira regra diz que uma rota mais específica deve ser sempre testada antes de uma rota menos específica. Por esse conceito, a rota para Internet é sempre a última a ser testada. Por exemplo, a rota para 200.134.51.0/24 deve ser testada sempre antes da rota 0.0.0.0/0, pois ela representa um bloco de endereços menor. A segunda regra diz que se houver empate em relação ao tamanho da máscara, o campo de custo deve ser utilizado. Nesse caso, uma rota de custo menor deve ser sempre testada primeiro. A terceira regra é simplesmente uma forma de desempate para as duas primeiras regras, e pode ser implementada de diferentes formas de acordo como o desenvolvedor do sistema operacional. 38 Edgard Jamhour Tabela do Roteador 1Tabela do Roteador 1 0200.17.98.1não tem200.17.98.0/24 110.0.0.110.0.0.20.0.0.0/0 0200.134.51.1não tem200.134.51.0/24 CustoInterfaceGatewayRede Destino roteador 1 roteador 2 REDE 200.134.51.0/24 REDE 200.17.98.0/24 200.17.98.1 200.134.51.1 10.0.0.1/30 10.0.0.2/30 REDE 0.0.0.0/0 A figura ilustra como seria a tabela de roteamento do roteador 1. As duas primeiras rotas são ditas rotas locais, pois o roteador possui uma de suas interfaces diretamente conectada a uma dessas redes. Novamente, nesses casos, nenhum gateway é necessário. Em muitos sistemas, as rotas locais são indicadas com custo 0, pois sabe-se que não pode existir uma rota alternativa com custo mais baixo. Para que o roteador 1 possa encaminhar um pacote para Internet, ele precisa enviá-lo para o roteador 2. Isto é indicado pela terceira regra da tabela. 39 Edgard Jamhour Tabela do Roteador 2Tabela do Roteador 2 110.0.0.210.0.0.1200.17.98.0/24 110.0.0.510.0.0.60.0.0.0/0 110.0.0.210.0.0.1200.134.51.0/24 CustoInterface10.0.0Rede Destino roteador 1 roteador 2 REDE 200.134.51.0/24 REDE 200.17.98.0/24 200.17.98.1 200.134.51.1 10.0.0.1/30 10.0.0.2/30 INTERNET 10.0.0.5/30 10.0.0.6/30 A figura ilustra como seria a tabela de roteamento do roteador 2. Observe como foram definidos os endereços IP dos enlaces que conectam o roteador 2 com o roteador 1 e com o roteador do provedor de acesso a Internet. O endereços dos roteadores conectados a um mesmo enlace precisam necessariamente possuir o mesmo prefixo de rede. O enlace do roteador 2 com o roteador 1 corresponde a pequena rede 10.0.0.0/30. A máscara /30 possui apenas 2 bits para identificar os hosts e corresponde, portanto, a um bloco de apenas 22=4 endereços: 10.0.0.0 a 10.0.0.3. Como o primeiro e últimos endereços do bloco não podem ser usados, os roteadores receberam os endereços 10.0.0.1 e 10.0.0.2. A máscara /30 recebe a representação 255.255.255.252 em notação decimal pontuada. De maneira similar, o enlace entre o roteador 2 e o roteador do provedor da Internet corresponde a rede 10.0.0.4/30, que compreende os endereços 10.0.0.4 a 10.0.0.7. 40 Edgard Jamhour Rota Default e Gateway DefaultRota Default e Gateway Default roteador 1 200.134.51.25 B 200.134.51.1 1eth0 ou 200.134.51.25200.134.51.1200.17.98.0/24 1eth0 ou 200.134.51.25200.134.51.10.0.0.0/0 1eth0 ou 200.134.51.25não tem200.134.51.0/24 CustoInterfaceGatewayRede Destino eth0 200.134.51.0/24 O roteador 1 é o gateway default para a rede 200.134.51.1 pois ele é o caminho para todas as demais redes Em muitos sistemas operacionais, é comum que o usuário tenha que fornecer um endereço IP denominado gateway ou roteador padrão. Na prática, o termo gateway padrão é usado para designar o roteador que dá acesso a Internet. Normalmente, este roteador é o único roteador que precisa ser conhecido pelo computador. A tabela de roteamento do computador é gerada automaticamente a partir de três informações básicas: O IP do computador, a máscara de subrede e o gateway padrão. Por exemplo, a primeira entrada da tabela de roteamento do computador B corresponde a rota para sua rede local. Ela é definidafazendo-se um “E” lógico entre o IP 200.134.51.25 e a máscara de subrede /24, resultado no identificador de rede do computador 200.134.51.0/24. A terceira entrada da tabela de roteamento é criado a partir da informação sobre o gateway padrão. Essa rota costuma ser referenciada como rota padrão (ou default) e é a rota para Internet. A segunda entrada na tabela de roteamento é desnecessária, pois pode-se considerar que a rede 200.17.98.0/24 faz parte da Internet, uma vez que ela é acessada pelo mesmo roteador. Essa rota pode ser eliminada. 41 Edgard Jamhour MMúúltiplas Rotas e Custosltiplas Rotas e Custos R1 R2 INTERNET REDE 200.134.51.0/24 REDE 200.17.98.0/24 10.0.0.1/30 10.0.0.2/30 R3 10 Mbps 100 Mbps 100 Mbps 10.0.0.5/30 10.0.0.6/30 2 (11)10.0.0.510.0.0.6200.134.51.0/24 2 (2)10.0.0.110.0.0.20.0.0.0/0 1 (10)10.0.0.510.0.0.60.0.0.0/0 0200.17.98.1Não tem200.17.98.0/24 1 (1)10.0.0.110.0.0.2200.134.51.0/24 CustoInterfaceGatewayRede Destino As tabelas de roteamento permitem representar mais de uma rota para um mesmo destino. Quando o sistema operacional encontra duas entradas para o mesmo destino, ele sempre selecionará a rota de menor custo. Rotas que não sejam as de menor custo só são consideradas em caso de falha da rota principal, que ocorre, por exemplo, devido ao rompimento de um enlace ou falha no hardware ou software de um roteador. Existem basicamente duas estratégias para definir custos. É primeira é baseado na contagem do número de saltos (isto é, passagens por um roteador) que um pacote deverá percorrer até chegar a rede de destino. Esse estratégia, é apropriada apenas em ambientes onde as velocidades dos enlaces são muito similares. A segunda estratégia consiste em atribuir custos para os enlaces de maneira inversamente proporcional a sua velocidade. Geralmente, o custo do enlace é calculado dividindo-se a maior velocidade de enlace de toda a rede pela velocidade do enlace. Na figura, por exemplo, os enlaces de 100Mbps teriam custo 1 e o enlace de 10Mbps teriam custo 10. A tabela mostrada na figura corresponde ao roteador 1. Os valores de custo sem parênteses foram calculados em hops e os entre parênteses usando a velocidade dos enlaces. 42 Edgard Jamhour RoteamentoRoteamento com com SubredesSubredes roteador 1 roteador 2 REDE 200.1.2.128/25 REDE 200.1.2.0/25 200.1.2.1 200.1.2.129 10.0.0.1/30 10.0.0.2/30 200.1.2.130 A B 200.1.2.2 INTERNET 10.0.0.5/30 10.0.0.6/30 Nos exemplos anteriores foram considerados apenas redes com máscaras padrão, isto é, mascaras cujo tamanho é multiplo de 8 bits. Vamos agora considerar a construção de tabelas de roteamento com máscaras de tamanho variável. Nesse caso, suponha que roteador um conecta duas subredes formadas pela partição de um bloco de endereços de classe C: 200.1.2.0/24. A partição do bloco classe C gerou duas subredes de tamanho idêntico (128 endereços): 200.1.2.0/25 (com endereços entre 200.1.2.0 e 200.1.2.255) 200.1.2.128/25 (com endereços entre 200.1.2.128 e 200.1.2.255) É importante notar, nesse caso, que o roteador 2 não precisa levar em conta a divisão do bloco C em duas subredes. Como o caminho para chegar as duas sub-redes é idêntico, isto é, passar pela interface 10.0.0.1 do roteador 1, basta uma única rota para endereçar as duas redes. As tabelas de roteamento para este cenário estão ilustradas na seqüência deste capítulo. 43 Edgard Jamhour Tabelas de Tabelas de RoteamentoRoteamento 1200.1.2.2200.1.2.10.0.0.0/0 0200.1.2.2não tem200.1.2.0/25 CustoInterfaceGatewayRede Destino 0200.1.2.129não tem200.1.2.128/25 110.0.0.110.0.0.20.0.0.0/0 0200.1.2.1não tem200.1.2.0/25 CustoInterfaceGatewayRede Destino 110.0.0.510.0.0.60.0.0.0/0 110.0.0.210.0.0.1200.1.2.0/24 CustoInterfaceGatewayRede Destino Computador A Roteador 1 Roteador 2 A tabela correspondente ao computador A utiliza o conceito de rota padrão. Como a maioria dos computadores, o computador possui apenas duas rotas: uma rota para sua rede local e outra para Internet. O roteador 1 possui três rotas, duas locais e uma para Internet. O roteador 2 possui apenas duas rotas, uma rota para subrede 200.1.2.0/24 e outra para Internet. Observe que o roteador 2 não precisa conhecer a subdivisão feita sobre o bloco de endereços classe C. Tudo o que ele precisa saber é que se o endereço de destino estiver compreendido entre 200.1.2.1 e 200.1.2.254 ele deverá enviar o pacote para a interface 10.0.0.1 do roteador 1. Cabe ao roteador 1, nesse caso, decidir para qual das subredes (200.1.2.0/25 ou 200.1.2.128/25) o pacote deverá ser enviado. Esse processo de agregação de rotas é muito importante para o desempenho da Internet. Ele permite esconder dos roteadores da Internet as inúmeras subdivisões em redes feitas dentro de empresas e provedores de acesso a Interent. 44 Edgard Jamhour ConclusãoConclusão • Endereçamento baseado em classes • Endereçamento sem classes (CIDR e VLSM) • ARP (Address REsolution Protocol) • Tabelas de roteamento • Agregação de rotas Neste capítulo vimos como a interpretação dos endereços IP foi alterado pelo IANA nos anos 90. No modelo inicial, dito com classes, o tamanho do prefixo de rede era determinado pelos primeiros bits do próprio endereço IP, e apenas três tamanhos de rede estavam disponíveis. No modelo atual, dito sem classe (ou CIDR), o tamanho do prefixo de um endereço independe de seu valor, e é determinado por um outro número denominado máscara de subrede que deve acompanhar cada endereço IP. As máscaras de subrede podem definir qualquer tamanho de prefixo e, por isso, recebem a denominação de VLSM (Variable Length Subnet Mask). A integração entre o protocolo IP e a camada de enlace subajacente é feita com o auxílio do protocolo ARP (Address Resolution Protocol). Este protocolo é responsável por descobrir o endereço MAC do host de destino a partir do endereço IP. Por ser baseado em broadcast, o ARP é um dos grandes vilões do desempenho da rede e uma das motivações para introdução do conceito de VLANs que será estudado mais adiante no curso. Finalmente, vimos que todos os elementos envolvidos numa comunicação IP (computadores e roteadores) possuem tabelas de roteamento. Vimos também que o conceito de VLSM permite agregar rotas para diminuir o número de entradas nas tabelas dos roteadores da Internet.