Nível de Rede Redes de Computadores I 2007/2008 Sumário Interligação de Redes Cabeçalhos IPv4 Fragmentação e reagrupamento Endereçamento (IPv4) Encapsulamento na pilha TCP/IP Datagramas IP versão 4 (IPv4) Classfull e classless Subnetting e supernetting Atribuição dinâmica de endereços (DHCP) Resolução de endereços nível 2 (ARP) Mensagens de Controlo (ICMP) IP versão 6 (IPv6) 05-11-2007 Universidade do Minho 1 Interligação de Redes Nenhuma das tecnologias existentes de rede local (LAN) é adequada para satisfazer todos os requisitos de comunicações das aplicações. Nenhuma dessas tecnologias é totalmente escalável: Os endereços não têm estrutura, resultando em: dificuldade de distribuição e administração complexidade no encaminhamento dos PDU, mas… Não há mecanismos de encaminhamento nos protocolos Os PDU têm comprimentos limitados; Os métodos de acesso não suportam grandes distâncias 05-11-2007 Universidade do Minho 2 Interligação de Redes Introdução Questão: Será que para existir um serviço de rede único e global (universal) é necessário adoptar a mesma tecnologia de rede em todos os locais? Ou será possível oferecer serviços de conectividade universal mesmo adoptando diferentes tecnologias locais? É possível a conectividade global entre redes com protocolos locais distintos introduzindo uma camada protocolar superior independente daqueles: A camada protocolar de rede, também chamada de interligação de redes ou de internetworking. 05-11-2007 Universidade do Minho 3 Interligação de Redes Introdução A Interligação de Redes baseia-se na utilização de funcionalidades específicas de rede (realizadas tanto em hardware como em software) que proporcionam um serviço global de interligação de redes locais (LAN) heterogéneas: Software: protocolos de rede (internetworking) Hardware: routers (encaminhadores) A maior Rede de Redes que existe: Internet 05-11-2007 Universidade do Minho 4 Interligação de Redes Introdução 05-11-2007 Universidade do Minho 5 Interligação de Redes A pilha TCP/IP O protocolo do nível de rede mais utilizado é o protocolo de rede usado na Internet: o Internet Protocol (IP), da pilha protocolar TCP/IP A pilha TCP/IP apresenta como principais características: Aberta Portável independência do sistema operativo e plataforma quaisquer sistemas podem comunicar Estável e Robusta especificações publicadas e bem conhecidas abertura completa ao desenvolvimento de código normas testadas ao longo de três décadas e fixas mas ainda em desenvolvimento e aperfeiçoamento Suporte global incluída em todos os sistemas de computação 05-11-2007 Universidade do Minho 6 Interligação de Redes A pilha TCP/IP Aplicação Apresentação Sessão Transporte TELNET FTP SMTP DNS RIP RTP Transmission RTCP Control Protocol SNMP DHCP OSPF BGP User Datagram Protocol IGMP ICMP Internet Protocol Rede ARP Ligação Físico 05-11-2007 Ethernet Token Bus Universidade do Minho Token Ring FDDI 7 Interligação de Redes Encapsulamento TCP/IP PDU Aplicação Segmento TCP Datagrama IP CI Pacote LLC CL Trama MAC CM 05-11-2007 Dados CT Dados Segmento TCP Datagrama IP Pacote LLC CM Estação origem encapsulamento Estação destino desencapsulamento A hierarquia protocolar por camadas traduz-se no encapsulamento dos PDU: Na origem, o PDU da camada N+1 é inserido no campo de dados do PDU da camada N No destino, o PDU da camada N é recuperado do campo de dados do PDU da camada N-1 CRC CRC Aplicação TCP IP Ligação Físico Meio de transmissão Universidade do Minho 8 IP – Internet Protocol É um protocolo de interligação de rede, cujo paradigma protocolar é o melhor esforço (best effort): o protocolo esforça-se por entregar os datagramas ao destino mas não o garante (datagramas podem perder-se) Versões: IPv4 (em uso generalizado), IPv6 (em instalação) Principais funções: fornece a unidade elementar de transferência de dados: 05-11-2007 o PDU do IP é um datagrama IP inclui mecanismos para o seu encaminhamento fragmentação de datagramas: transita em qualquer LAN incorpora um esquema de endereçamento universal Universidade do Minho 9 IP – Internet Protocol Formato dos datagramas 32 bits 20 bytes Vers HLEN TOS Total Length Identification Time to Live Flags Protocol Fragment Offset Header Checksum Source IP address Destination IP address IP Options (pode ser nulo) Padding IP Datagram Data (até 65536 bytes) DA SA Type 0800 IP Header and Data CRC Ethernet Data Field 05-11-2007 Universidade do Minho 10 IP – Internet Protocol Formato dos datagramas Vers (4bit): versão do protocolo (valor 4 ou valor 6) HLEN (4bit): tamanho do cabeçalho em blocos de 32 bits; valor mínimo é 5; TOS (8bit): dá uma indicação em abstracto dos parâmetros de qualidade de serviço pretendidos (atraso baixo, débito elevado, etc) Total Length (16bit): tamanho total (cabeçalho+dados) em bytes; (máximo é 65535, mas normalmente não passa dos 1500 bytes) Identification (16bit): identificador único por datagrama e por cada conexão que ajuda a identificar todos os fragmentos que devem ser reagrupados Flags (3bit): Bit 0 = 0 (reservado); Bit 1 = DF (don’t fragment); Bit 2 = MF (more fragments); Fragment Offset (13bit): define a que parte do datagrama pertence este fragmento e mede-se em blocos de 64 bits (8 bytes) 05-11-2007 Universidade do Minho 11 IP – Internet Protocol Formato dos datagramas Time To Live (8bit): máximo tempo de vida do datagrama que é decrementado a cada salto; quando o valor é zero o datagrama é destruído; Protocol (8bit): usado para identificar qual o protocolo da camada acima a quem devem ser entregues os dados transportados Header Checksum (16bit): soma de verificação em complemento para 1 do cabeçalho (recalculado em cada salto por causa do TTL) IP Options (opcional e de tamanho variável): - Security - Loose Source Rounting - Strict Source Routing - Record Route - Stream ID - Internet Timestamp 05-11-2007 Universidade do Minho 12 IP – Internet Protocol Fragmentação e reagrupamento As ligações de rede têm diferentes MTU (max.transfer unit) – tamanho máximo da trama da camada de ligação Diferentes tipos de ligação implicam diferentes MTUs Um datagrama IP “demasiado grande” é dividido em vários fragmentos dentro da rede Um datagrama transforma-se em vários datagramas A junção é efectuada apenas no nó destino Existem no cabeçalho IP um conjunto de campos para identificar e ordenar fragmentos. 05-11-2007 fragmentaç fragmentação entrada: um grande datagrama saída: três pequenos datagrams reagrupamento Fonte: Computer Networking: A Top-Down Approach Featuring the Internet, J. Kurose, Addison-Wesley, 2001 Universidade do Minho 13 IP – Internet Protocol Fragmentação e reagrupamento length =4000 ID =x fragflag =0 offset =0 Um grande datagrama transforma-se em vários pequenos datagramas length =1500 ID =x fragflag =1 offset =0 length =1500 ID =x fragflag =1 offset =1480 length =1040 ID =x fragflag =0 offset =2960 05-11-2007 Universidade do Minho 14 IP – Internet Protocol Endereçamento VERS HLEN Total Length TOS Flags Identification Time to Live Fragment Offset Header Checksum Protocol Source IP address Destination IP address IP Options (may be null) Padding IP Datagram Data (up to 65,535 bytes) 05-11-2007 Universidade do Minho 15 IP – Internet Protocol Endereçamento Endereço IP: identificador de 32bits por interface do sistema terminal ou encaminhador Interface: ligação entre o sistema terminal ou o encaminhador e a ligação física Os encaminhadores têm tipicamente múltiplas interfaces Os sistemas terminais podem ter múltiplas interfaces Os endereços IP associam-se a interfaces (não a sistemas terminais ou encaminhadores) Interligações de rede com 3 redes IP 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 223.1.3.1 Fonte: Computer Networking: A Top-Down Approach Featuring the Internet, J. Kurose, Addison-Wesley, 2001 05-11-2007 Universidade do Minho 16 IP – Internet Protocol Endereçamento Endereço IP: Parte da Rede (bits mais significativos Parte do Sistema Terminal (bits menos significativos) O que é uma Rede ? (perspectiva dos endereços IP) interfaces de dispositivos com a mesma “Parte de Rede” mutuamente e fisicamente atingíveis sem intervenção de um encaminhador 223.1.1.1 = 11011111 00000001 00000001 00000001 223 05-11-2007 1 1 Universidade do Minho 1 17 IP – Internet Protocol Endereçamento Sistema com 6 redes interligadas 223.1.1.2 223.1.1.1 223.1.1.4 223.1.1.3 Fonte: Computer Networking: A Top-Down Approach Featuring the Internet, J. Kurose, Addison-Wesley, 2001 223.1.7.0 223.1.9.2 Endereçamento IP 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.0 223.1.2.6 223.1.2.1 223.1.3.27 223.1.2.2 223.1.3.1 05-11-2007 223.1.3.2 Universidade do Minho 18 IP – Internet Protocol Endereçamento 130.1.1.0 130.1.1.254 Este segmento (subrede) apenas tem duas estações (os dois routers) 130.1.2.50 130.1.2.0 130.1.2.82 Não são permitidas subredes não-contiguas 130.1.3.0 130.1.3.49 130.1.3.200 130.1.1.0 130.1.4.0 05-11-2007 Universidade do Minho 19 IP – Internet Protocol Endereçamento Múltiplas subredes no mesmo interface Tabela de encaminhamento do router para este interface Router A estação 205.1.20.1 remete ao router os datagramas destinados à estação 205.1.10.1 205.1.5.0 intf0 205.1.10.0 intf0 205.1.20.0 intf0 intf0 205.1.20.49 205.1.5.1 205.1.10.1 205.1.20.1 Estações 05-11-2007 Universidade do Minho 20 IP – Internet Protocol Endereçamento Endereçamento por classes (ou Classful ) esquema original, baseado na RFC 791 usa os primeiros bits como identificadores de classe Endereçamento sem classes (ou Classless) não considera os bits de classe utilizando uma máscara de 32 bits para determinar o endereço de rede permite encaminhamento mais eficiente por agregação de rotas, designado por CIDR (Classless Internet Domain Routing) tabelas de encaminhamento mais pequenas 05-11-2007 as rotas são agregadas por grupos de endereços adjacentes usado pelas tabelas de encaminhamento de ISPs Universidade do Minho 21 IP – Internet Protocol Endereçamento (Classfull) Identificador da classe Parte do Endereço de Rede Parte do Endereço de Estação Classe A 0 7 bits de endereço de rede 24 bits de endereço de estação Classe B 10 14 bits de endereço de rede 16 bits de endereço de estação Classe C 110 21 bits de endereço de rede 8 bits endereço de estação Classe D 1110 Endereços Multicast no intervalo 224.0.0.0 - 239.255.255.255 Classe E 11110 Classe E – Reservado para utilização futura 05-11-2007 Universidade do Minho 22 IP – Internet Protocol Endereçamento (Classfull) Endereços IPv4 por classes Classe A B C redes (1 byte) 126 (1-126) 16.384 (128-191) 2.097.152 (192-223) hosts/rede 16.277.214 65.354 254 reservado host a 0s ou 1s host a 0s ou 1s host a 0s ou 1s º 05-11-2007 Universidade do Minho D (224-239) 23 IP – Internet Protocol Endereçamento (Classfull) Máscara de endereço Máscara: padrão que conjugado com o endereço IP, devolve a parte do endereço de rede (ou sub-rede) No endereçamento por classes as máscaras são: Classe A: 11111111.00000000.00000000.00000000 notação decimal: 255.0.0.0 Classe B: 11111111.11111111.00000000.00000000 notação decimal: 255.255.0.0 notação CIDR: /8 notação CIDR: /16 Classe C: 11111111.11111111.11111111.00000000 notação decimal: 255.255.255.0 notação CIDR: /24 No endereçamento sem classes as máscaras têm qualquer outro valor 05-11-2007 Universidade do Minho 24 IP – Internet Protocol Endereçamento (Classfull) Restrições a Endereços IP Endereços reservados: os primeiros 4 bits não podem ser 1 127.x.x.x é o endereço reservado para loopback bits de host a 0s ou 1s são reservados (rede ou broadcast) bits de subnet a 0s ou 1s são reservados Endereços privados: atribuídos para internets privadas (sem conectividade global, não devem ser visíveis nem são encaminhados na internet exterior), RFC1918: 05-11-2007 bloco 192.168.0.0 - 192.168.255.255 bloco 172.16.0.0 - 172.31.255.255 bloco 10.0.0.0 - 10.255.255.255 (prefixo 192.168 /16) (prefixo 172.16 /12) (prefixo 10 /8) Universidade do Minho 25 IP – Internet Protocol Endereçamento (Classless) Endereçamento por classes (classfull): Uso ineficiente do espaço de endereçamento, exaustão de espaço Ex: uma classe B aloca 65K hosts mesmo que existam apenas 2K hosts! Enderecamento sem classes (classless): Parte de rede (do endereço) com comprimento arbitrário Formato: a.b.c.d/x, em que x é o nº de bits correspondente à parte de rede parte de host parte de rede 11001000 00010111 00010000 00000000 200.23.16.0/23 05-11-2007 Universidade do Minho 26 IP – Internet Protocol Endereçamento (Classless) Endereçamento sem classes Considere-se o endereço IP 130.1.5.1 é o endereço da estação 5.1 da rede 130.1.0.0 (classe B) Considere-se o endereço IP 130.1.5.1/24 é o endereço da estação 1 da sub-rede 130.1.5.0 (máscara com multiplo de 8 bits) Rede 130.1 Estação 5.1 interpretação original por classe 05-11-2007 Máscara de subrede 255.255.255.0 Rede Subrede Estação 130.1 5 1 interpretação sem classe (CIDR) Universidade do Minho 27 IP – Internet Protocol Endereçamento (Classless) Considere-se o endereço IP 130.1.9.1/21 é o endereço da estação 257 da sub-rede 130.1.8.0 Estação Subrede 10 0 0 0 0 1 0 00000001 130 00001001 1 00000001 9 1 (máscara com 21 bits) 11111111.11111111.11111000.00000000 Máscara de Subnet 255.255.248.0 05-11-2007 Universidade do Minho 28 IP – Internet Protocol Endereçamento (Subnetting) Sub-redes (Subnetting) permite melhor aproveitamento, organização e gestão do espaço de endereços introduz outro nível hierárquico para routing 130.1.1.0 internet exterior 130.1.2.0 internet local 130.1.0.0 130.1.3.0 130.1.254.0 05-11-2007 Universidade do Minho 29 Exercício Exercício Subnetting No exemplo anterior, em vez do endereço classe B 130.1.0.0, seria possível usar o endereço 192.168.192.0? Justifique convenientemente. A internet exterior B internet local 192.168.192.0 C D 05-11-2007 Universidade do Minho 30 Exercícios Considere o endereço IP 196.34.201.137. Se a usarmos a máscara de rede 255.255.255.192, quais são os endereços de rede e de difusão. Considere o endereço IP da Classe B 140.140.0.0 e determine a máscara de rede, que com base neste endereço, cria um conjunto de subredes tal que cada uma delas pode ser usada para endereçar 2046 computadores. Quantas subredes pode criar? Considere uma empresa à qual foi atribuído o endereço de rede 220.168.49.0. Proponha um esquema de endereçamento que permita definir uma subrede com 50 computadores, três subredes com 20 computadores cada e uma pequena subrede para testes com 10 computadores. Indique as máscaras de rede e a gama de endereços válidos para cada subrede. 05-11-2007 Universidade do Minho 31 IP – Internet Protocol Reescrita de endereços (NAT: Network Address Translation) Internet Rede local (ex: rede lá de casa) 10.0.0/24 10.0.0.1 10.0.0.4 10.0.0.2 138.76.29.7 10.0.0.3 Todos os datagramas que saiem Todos os datagramas nesta rede contêm, como habitualmente endereços de origem e/ou de destino na gama disponível 10.0.0/24 para a Internet são forçados a usar o mesmo endereço de origem: 138.76.29.7, e números de porta origem distintos 05-11-2007 Universidade do Minho 32 IP – Internet Protocol Reescrita de endereços (NAT: Network Address Translation) Motivação para a rede local usar apenas um endereço Internet conhecido com acesso global: 05-11-2007 Não é preciso gastar uma gama de endereços ao ISP: basta um! Podem-se mudar os endereços da rede a qualquer momento sem ter de avisar o mundo inteiro desse facto Pode-se mudar de ISP sem mudar de endereços na rede local Os equipamentos da rede local não são directamente endereçáveis do exterior (protecção de segurança acrescida!) Universidade do Minho 33 IP – Internet Protocol Reescrita de endereços (NAT: Network Address Translation) Implementação: router NAT Datagramas que saiem: substituir o par (Endereço IP Origem, Nº Porta) de todos os datagramas por (Endereço IP NAT, Novo Nº de Porta) . . . os sistemas no exterior vão naturalmente endereçar os datagramas de resposta para (Endereço IP NAT, Novo Nº de Porta) Guardar numa tabela NAT todas as trocas que foramfeitas de pares (Endereço IP Origem, Nº Porta) para (Endereço IP NAT, Novo Nº de Porta) Datagramas que chegam: substituir (Endereço IP, Porta) pelo endereço interno (Endereço IP Origem, Porta Origem) aramazenado na tabela NAT 05-11-2007 Universidade do Minho 34 IP – Internet Protocol Reescrita de endereços (NAT: Network Address Translation) 2: router NAT muda endereço origem do datagrama de 10.0.0.1, 3345 para 138.76.29.7, 5001, e actualiza tabela NAT translation table WAN side addr LAN side addr 1: Sistema 10.0.0.1 envia datagrama para 128.119.40, 80 138.76.29.7, 5001 10.0.0.1, 3345 …… …… S: 10.0.0.1, 3345 D: 128.119.40.186, 80 10.0.0.1 1 2 S: 138.76.29.7, 5001 D: 128.119.40.186, 80 10.0.0.4 10.0.0.2 138.76.29.7 S: 128.119.40.186, 80 D: 138.76.29.7, 5001 4 3 3: Chega resposta endereçada a: 138.76.29.7, 5001 05-11-2007 S: 128.119.40.186, 80 D: 10.0.0.1, 3345 10.0.0.3 4: router NAT muda endereço de destino de 138.76.29.7, 5001 para 10.0.0.1, 3345 Universidade do Minho 35 IP – Internet Protocol Reescrita de endereços (NAT: Network Address Translation) Porta é um campo da camada de transporte com 16-bit 60,000 conexões simultâneas com um único endereço! NAT é muito controverso: Viola independência entre camadas: routers só devem poder mexer nos cabeçalhos de nível 3! Viola o conceito fim-a-fim Estado intermédio por conexão As aplicações (P2P e outras) são obrigadas a ter o NAT em consideração… Não é a forma certa de resolver a escassez de endereços (IPv6) Como endereçar servidores internos? (e-mail, web, etc) 05-11-2007 Universidade do Minho 36 IP – Internet Protocol Endereçamento (Alocação dinâmica) Hosts (parte de host): hard-coded em ficheiro de sistema p/ admin DHCP: Dynamic Host Configuration Protocol: obter endereço dinamicamente: “plug-and-play” host faz broadcast msg “DHCP discover” servidor DHCP responde c/ msg “DHCP offer” host pede endereço IP: msg “DHCP request” servidor DHCP envia endereço: msg “DHCP ack” 05-11-2007 Universidade do Minho 37 IP – Internet Protocol Endereçamento (Alocação dinâmica) Servidor DHCP: 223.1.2.5 DHCP discover Cliente src : 0.0.0.0, 68 dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654 DHCP offer src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddr: 223.1.2.4 transaction ID: 654 Lifetime: 3600 secs DHCP request src: 0.0.0.0, 68 dest:: 255.255.255.255, 67 yiaddr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs time DHCP ACK src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddrr: 223.1.2.4 transaction ID: 655 Lifetime: 3600 secs 05-11-2007 Universidade do Minho 38 IP – Internet Protocol Endereçamento (Alocação dinâmica) O servidor DHCP deve estar na mesma rede que o cliente. Se não estiver, é necessário um agente DHCP-Relay (tipicamente um router) que sirva de intermediário… Um cliente pode receber ofertas de mais do que um servidor DHCP, mas só pode escolher uma delas; a mensagem DHCP Request é enviada de novo para o endereço de difusão para todos saberem qual foi a oferta escolhida e anularem as reservas que fizeram A mensagem de ACK é a única enviada por unicast, pois o mapeamento entre endereço IP e endereço MAC já foi efectivado; Uma curiosidade: O DHCP é a terceira geração de protocolos de configuração de sistemas; Pode ser visto como uma extensão ao BOOTP (protocolo de arranque para sistemas sem disco) que por sua vez deriva do protocolo RARP (Reverse Address Resolution Protocol) 05-11-2007 Universidade do Minho 39 IP – Internet Protocol Endereçamento (supernetting) Network (parte de rede): Alocado via espaço de endereçamento do ISP Bloco do ISP 11001000 00010111 00010000 00000000 200.23.16.0/20 Organização 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organização 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organização 2 ... 11001000 00010111 00010100 00000000 ….. …. 200.23.20.0/23 …. Organização 7 11001000 00010111 00011110 00000000 200.23.30.0/23 05-11-2007 Universidade do Minho 40 IP – Internet Protocol Endereçamento hierárquico – agregação de rotas Endereçamento Hierárquico permite anúncios eficientes de informação de encaminhamento: Organização 0 200.23.16.0/23 Organização 1 “Qualquer endereço começado por 200.23.18.0/23 200.23.16.0/20” Organização 2 200.23.20.0/23 Organização 7 . . . . . . ISP X Internet 200.23.30.0/23 ISPs-R-Us 05-11-2007 Universidade do Minho Começado por 199.31.0.0/16” 41 IP – Internet Protocol Endereçamento hierárquico – rotas mais específicas ISPs-R-Us tem uma rota mais específica para a Organização 1 Organização 0 200.23.16.0/23 “Qualquer endereço começado por 200.23.16.0/20” Organização 2 200.23.20.0/23 Organização 7 . . . . . . ISP X Internet 200.23.30.0/23 Começado por ISPs-R-Us 199.31.0.0/16 ou Organização 1 200.23.18.0/23 200.23.18.0/23 05-11-2007 Universidade do Minho 42 IP – Internet Protocol Encaminhamento – da origem ao destino (I) Tabela encaminhamento de A Dest. Net. next router #hops Datagrama IP: misc source dest fields IP addr IP addr data 223.1.1 223.1.2 223.1.3 O datagrama não é modificado, desde a origem até ao destino 223.1.1.4 223.1.1.4 1 2 2 A 223.1.1.1 223.1.1.2 223.1.1.4 223.1.2.1 223.1.2.9 B 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 E 223.1.3.2 Fonte: Computer Networking: A Top-Down Approach Featuring the Internet, J. Kurose, Addison-Wesley, 2001 05-11-2007 Universidade do Minho 43 IP – Internet Protocol Encaminhamento – da origem ao destino (II) Dest. Net. next router #hops misc data fields 223.1.1.1 223.1.1.3 223.1.1 223.1.2 223.1.3 Partindo de A, datagrama IP endereçado a B: Buscar endereço de rede de B B está na mesma rede de A datagrama directamente para B 1 2 2 223.1.1.4 223.1.1.4 A 223.1.1.1 223.1.2.1 B e A estão ligados directamente 223.1.1.2 223.1.1.4 223.1.2.9 B 223.1.1.3 223.1.3.27 223.1.2.2 E 223.1.3.2 223.1.3.1 Fonte: Computer Networking: A Top-Down Approach Featuring the Internet, J. Kurose, Addison-Wesley, 2001 05-11-2007 Universidade do Minho 44 IP – Internet Protocol Encaminhamento – da origem ao destino (III) misc data fields 223.1.1.1 223.1.2.2 Dest. Net. next router #hops 223.1.1 223.1.2 223.1.3 Partindo de A, destino E: Busca endereço de rede de E E está numa rede diferente 223.1.1.4 223.1.1.4 1 2 2 A 223.1.1.1 A, E sem ligação directa Tabela encaminhamento: próximo nó é 223.1.1.4 envia datagrama para router 223.1.1.4 datagrama chega a 223.1.1.4 …. 223.1.2.1 223.1.1.2 223.1.1.4 223.1.2.9 B 223.1.1.3 223.1.3.1 223.1.3.27 223.1.2.2 E 223.1.3.2 Fonte: Computer Networking: A Top-Down Approach Featuring the Internet, J. Kurose, Addison-Wesley, 2001 05-11-2007 Universidade do Minho 45 IP – Internet Protocol Encaminhamento – da origem ao destino (IV) misc data fields 223.1.1.1 223.1.2.2 Chega ao nó 223.1.4, com destino 223.1.2.2 Busca endereço de rede de E E está na mesma rede da interface 223.1.2.9 Dest. next network router #hops interface 223.1.1 223.1.2 223.1.3 A 223.1.1.1 223.1.1.4 223.1.2.9 223.1.3.27 223.1.2.1 Encaminhador e nó E ligados directamente envia datagrama para 223.1.2.2 ( via interface 223.1.2.9) 1 1 1 223.1.1.2 223.1.1.4 223.1.2.9 B 223.1.3.27 223.1.1.3 223.1.2.2 E 223.1.3.2 223.1.3.1 Fonte: Computer Networking: A Top-Down Approach Featuring the Internet, J. Kurose, Addison-Wesley, 2001 05-11-2007 Universidade do Minho 46 Exercício Construa a tabela de encaminhamento de cada um dos encaminhadores (A, B e C) da rede ilustrada. internet local 130.1.0.0 A internet exterior 05-11-2007 B Universidade do Minho C 47 Exercício Observe e interprete a tabela de encaminhamento do seu sistema. Usar o comando “netstat –n –r “ em qualquer sistema operativo. 05-11-2007 Universidade do Minho 48 TCP/IP ARP (Protocolo de Resolução de Endereços) ARP (Address Resolution Protocol) mapeia um endereço de rede no endereço MAC (48 bytes) que lhe corresponde. RFC 826: An Ethernet Address Resolution Protocol Operação: local à LAN não usa encapsulamento IP o EtherType ARP é: 0x0806 ARP-PDUs: ARP Request e ARP Reply 05-11-2007 Universidade do Minho 49 TCP/IP 2 bytes Tipo de hardware 2 Tipo de protocolo 1+1 Comp do endereço hardware Comp do endereço protocolar Operação 2 6 Endereço de Hardware da estação de origem (sender) 4 Endereço Protocolar da estação de origem (sender) 6 Endereço de Hardware da estação de destino (target) 4 Endereço Protocolar da estação de destino (target) DA SA CRC Data TF DA - Destination Address 05-11-2007 28 bytes ARP (Protocolo de Resolução de Endereços) SA - Source Address TF - Type Field Universidade do Minho 50 TCP/IP ARP (Protocolo de Resolução de Endereços) 1.Quem tem o endereço MAC da estação 129.1.1.4? 3.Aqui está o meu Endereço MAC 3.ARP Reply 1.ARP Request 129.1.1.1 4.ARP Reply Aceite B Eu não C Eu não 2.ARP Request Ignorado 2.ARP Request Ignorado 129.1.1.4 2.Sou eu [Naugle98] ARP Request é enviado em broadcast ARP Reply é enviado em unicast à estação requerente, que mantém temporariamente a resolução na cache de ARP 05-11-2007 Universidade do Minho 51 TCP/IP ICMP (Internet Control Message Protocol ) Protocolo usado por sistemas terminais e encaminhadores para trocarem informação do nível de rede reportar erros: nó, rede, porta ou protocolo inatingíveis, echo request/reply (utilizado pelo ping) TTL expired (usado pelo traceroute) Camada de rede “sobre” o IP: Mensagens ICMP encapsuladas em datagramas IP Mensagem ICMP: tipo, código, os primeiros 8 primeiros bytes do datagrama IP responsável pelo erro 05-11-2007 Type 0 3 3 3 3 3 3 4 Code 0 0 1 2 3 6 7 0 8 9 10 11 12 0 0 0 0 0 description echo reply (ping) dest. network unreachable dest host unreachable dest protocol unreachable dest port unreachable dest network unknown dest host unknown source quench (congestion control - not used) echo request (ping) route advertisement router discovery TTL expired bad IP header Universidade do Minho 52 TCP/IP ICMP (Internet Control Message Protocol ) Tipo (8) Código (8) Verificação de paridade (16) Número de sequência Enventuais dados ICMP DA SA TF 05-11-2007 IP Header Mensagem ICMP Universidade do Minho CRC 53 TCP/IP ICMP (Internet Control Message Protocol ) 192.1.1.1 192.1.1.2 Echo Reply 192.1.2.2 192.1.2.1 Echo Request PING 192.1.1.2 05-11-2007 Universidade do Minho 54 Exercício Alguns comandos: % ifconfig –a % arp –a % ping <host> % netstat –n –r Exercício exemplo: Começar por ver a tabela de ARP e a tabela de routing… Activar o Ethereal e pô-lo a capturar todos os pacotes… Fazer ping para um sistema da mesma rede ainda não contactado… Observar a troca de mensagens ARP e o resultado na tabela de ARP 05-11-2007 Universidade do Minho 55 Versões IP IP v 1-3 Definidas e substituídas IP v4 – Versão actual IP v5 – streams protocol (não usado, diferentes objectivos) IP v6 – Desenhado para substituir o IPv4 Durante o desenvolvimento designava-se por IPng (Next Generation) 05-11-2007 Universidade do Minho 56 IPv6 Motivação inicial: Espaço de endereços de 32 bits completamente alocado em 2008 Motivação Adicional: Formato do cabeçalho contribui para o aumento da velocidade de processamento e re-envio dos pacotes. Alterações no formato do cabeçalho para facilitar a implementação de QoS Um novo tipo de endereço: endereço “anycast”, que possibilita o envio de informação para um nó dentro de um grupo Formato do datagrama 05-11-2007 Cabeçalho com o tamanho fixo (40 bytes) Não é permitida a fragmentação de pacotes (excepto na origem) Universidade do Minho 57 Cabeçalho IPv4 20 bytes + opções : 13 campos, incluindo 3 flag bits Changed 0 bits 4 Ver 8 IHL 16 24 Service Type Identifier Time to Live Removed 31 Total Length Flags Protocol Fragment Offset Header Checksum 32 bit Source Address 32 bit Destination Address Options and Padding 05-11-2007 Universidade do Minho 58 Cabeçalho IPv6 40 bytes, 8 campos 0 4 Version 12 Class 16 24 31 Flow Label Payload Length Next Header Hop Limit 128 bit Source Address 128 bit Destination Address 05-11-2007 Universidade do Minho 59 Novos Campos do IPv6 Version 4 bits Priority/Class 8 bits Espírito semelhante ao do TOS no IPv4 Permite atribuir diferentes prioridades a cada datagrama Flow Label 24 bits Identifica um fluxo individual de tráfego que requer o mesmo tratamento da rede. Pode ser usado com o RSVP (protocolo de reserva de recursos a estudar mais tarde) 05-11-2007 Universidade do Minho 60 Campos que se mantêm Payload length Next Header Substitui o total length; tamanho da “carga” + cabeçalhos opcionais; Semelhante ao campo Protocol do IPv4 (usado para identificar o protocolo de Transporte) mas também protocolos de nível 3 As opções do IPv6 são também tratadas com este campo, identificando cabeçalhos adicionais… Hop Limit 05-11-2007 Semelhante ao campo Time-To-Live do IPv4, mas agora definitivamente encarado como um número limite de saltos… Universidade do Minho 61 Outras diferenças entre o IPv6 e o IPv4 Checksum: retirado inteiramente para reduzir o tempo de processamento em cada nó Opções: são permitidas mas fora do cabeçalho ICMPv6: uma nova versão do protocolo ICMP Novos tipos de mensagens, por exemplo. “Packet Too Big” multicast group management functions Procura agrupar as funções que existiam no ICMPv4 (informação e erro) com as de resolução de endereços (ARP no IPv4) e a gestão de grupos multicast (IGMP no IPv4); é também usado no processo de auto-configuração stateless; 05-11-2007 Universidade do Minho 62 Opções do IPv6 Extensões ao cabeçalho 05-11-2007 0 - hop-by-hop Option Header 43 - Routing Header 44 - Fragmentation Header 51 - Authentication Header 59 - No Next Header 60 - Destination Options Header Universidade do Minho 63 Opções do IPv6 Extensões: Hop-by-Hop Option Header Next header Header extension length Options Jumbo payload Pacotes com tamanho superior a 216 = 65,535 bytes (acima de 4 biliões!) Router alert Avisa o router que os pacotes lhe interessam, chamando a sua atenção para eles; os que não incluem esta opção são simplesmente reenviados; Inclui suporte para reserva de recursos (RSVP) 05-11-2007 Universidade do Minho 64 Opções do IPv6 Extensões: Fragment Header 05-11-2007 A fragmentação só é admitida no sistema origem! Não ocorre fragmentação nos routers intermédios O sistema origem deve de executar procedimentos de descoberta do percurso para encontrar o MTU (Maximum transfer unit) mínimo do percurso e fragmentar os pacotes de acordo com esse MTU O MTU mínimo por defeito é 1280 octetos Campos: Next Header(8bits), reserved(8bits), Fragment Offset(13bits), Reserved(2bit), More Flag(1bit), Identification(32bits) Universidade do Minho 65 Opções do IPv6 Extensões: Routing Header Permite encaminhamento determinado pelo origem, tal como opção semelhante existente no IPv4; Cabeçalho inclui lista de routers intermédios a serem visitados no percurso; Campos: Next Header(8bits), Header Extension Length(8bits), Routing Type(8bits), Segments Left(8bits) 05-11-2007 Universidade do Minho 66 Extensões ao cabeçalho IPv6 IPv6 Header TCP Header Application Data Next = TCP IPv6 Header Routing Hdr Next = Routing 05-11-2007 TCP Header Application Data Next = TCP IPv6 Header Security Hdr Fragment Hdr TCP Header Next = Security Next = Frag Next = TCP Universidade do Minho Data Frag 67 IPv6: melhor desempenho Tamanho fixo do cabeçalho Cabeçalho com menor número de campos e sem checksum Permite um processamento mais rápido dos pacotes Controlo de Erros poderá ser efectuado pelas camadas superiores Processamento Eficiente das Opções Os diferentes campos só são processados se a opção estiver presente A maior parte das opções só são processadas no nó destino Não há fragmentação no interior da rede 05-11-2007 Universidade do Minho 68 IPv6 – Modelo de Endereçamento Os endereços são atribuídos às interfaces de rede Uma interface pode ter múltiplos endereços Os endereços têm um âmbito À semelhança do que acontece no IPv4 Link Local Site Local Global Global Site-Local Link-Local Os endereços têm um tempo de vida 05-11-2007 Universidade do Minho 69 Endereços IPv6 128 bits = 6.65 x 1023 endereços de rede para cada m2 da superfície da Terra. Formato = 8 partes de 16 bits que pode ser abreviado 1) formato normal FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 2) Os zeros à esquerda não são necessários 1080:0:0:0:8:800:200C:417A 3) 16 bits consecutivos em zero são abreviados com :: Seguindo esta regra, uma única sequência de vários blocos de 16 a zero pode ser abreviada: 1080::8:800:200C:417A 05-11-2007 Universidade do Minho 70 Endereços Endereços Flexíveis Constituídos por duas partes de tamanho variável: o prefixo e a identificação da interface Exemplos de representação de prefixos: 05-11-2007 4000::/3 provider-based unicast address 5A00::/8 atribuído pela InterNIC 5A01:0200::/24 fornecedor de serviço 0x0102 5A01:0203:0400::/40 tipo de assinante 0x0340 5A01:0203:0405::/48 assinante 0x05 5A01:0203:0405:0607:0809::/80 sub-rede 0x06070809 Universidade do Minho 71 Endereços IPv6 Para evitar uma explosão nas tabelas de encaminhamento é usado endereçamento hierárquico Os bits mais significativos representam o nível mais alto da hierarquia. Exemplo: 3 bits = formato do prefixo 5 bits = identificação da autoridade de registo 16 bits = identificador do fornecedor de serviço 16 bits = tipo de assinante 8 bits = identificador do assinante 32 bits = identificador da subrede bits restantes definem um sistema particular na subrede 05-11-2007 Universidade do Minho 72 Endereços Especiais 0::/8 100::/8 200::/7 400::/7 4000::/3 8000::/3 FE80::/10 FEC0::/10 FF00::/8 Loopback 05-11-2007 0000 0000 0000 0001 0000 001 0000 010 010 100 1111 1110 10 1111 1110 11 1111 1111 0::1 reserved unassigned ISO network address NOVEL provider based unicast geografic based unicast Local link address Site local address Multicast address Universidade do Minho 73 Endereços Especiais Previstos dois tipos especiais de endereços IPv6 para suportar a transição de IPv4 para IPv6 IPv4 - compatível pode ser convertido de e para o formato IPv4 formados adicionando-se 96 bits em zero ao endereço de 32 bits Exemplo: IPv4 = 1.2.3.4 IPv6= ::0102:0304 (ou ::1.2.3.4) IPv4 - mapeado 05-11-2007 indicam sistemas que não suportam IPv6 usado para que sistemas IPv6 comuniquem com sistemas que só usam IPv4. Adiciona-se 80 bits em zero, 16 bits em um aos 32 originais Exemplo: IPv4 = 4.3.2.1 IPv6 = ::FFFF:0403:0201 (ou ::FFFF:4.3.2.1) Universidade do Minho 74 Atribuição dos Endereços em IPv6 Auto-configuração (plug-and-play). 05-11-2007 O primeiro endereço a ser obtido é o endereço de local link. Tem um formato genérico do tipo FE80:0:0:0:0:xxxx:xxxx:xxxx; A parte da identificação da interface é obtida com base no seu endereço de nível 2 Este endereço permite uma comunicação imediata com todos os sistemas existentes na rede local A partir daí e através de mensagens ICMPv6 trocadas entre o sistema terminal e o encaminhador da rede local são obtidos os outros endereços. O encaminhador anuncia o prefixo que é concatenado com o endereço de nível 2 de forma a obter-se um endereço global único. Outra alternativa passa pela utilização do DHCP (autoconfiguração statefull) Universidade do Minho 75 Atribuição dos Endereços em IPv6 Passos da auto-configuração stateless: 1. 2. 3. Construir um endereço único de âmbito Link-Local para o interface: Os primeiros 10 bits são “1111 1110 10”; seguem-se 54 zeros; Os últimos 64 bits são inventados ou deduzidos do MAC Address, inserindo FF-FE no meio do endereço MAC; Mac: 39-A7-94-07-CB-D0 Parte local: 3BA7:94FF:FE07:CBD0 O 7º bit do 1º byte é também mudado para 1 (bit universal/local) Testar se o endereço é único: Enviar uma mensagem ICMPv6 Neighbor-Discovery com endereço origem :: e destino o endereço criado, para verificar se obtém resposta; Se o endereço estiver atribuído recebe Neighbor-Advertisement; Assumir o endereço Link-Local, caso o teste passe; 05-11-2007 Universidade do Minho 76 Atribuição dos Endereços em IPv6 Passos da auto-configuração stateless: 4. Contactar o router local com mensagem ICMPv6 Router-Discovery: 5. Os router anunciam-se periodicamente com Router-Advertisement, mas essas mensagens podem ser solicitadas com pedido explícito Router-Discovery Seguir as recomendações do router local: Endereço do servidor DHCPv6 a contactar para prosseguir configuração statefull 6. 05-11-2007 Envio de um conjunto de prefixos a juntar à parte local do endereço formando novos endereços IPv6 Configuração de endereços de âmbito Site-Local e Global com base nos endereços fornecidos Universidade do Minho 77 Vantagens do IPv6 Maior Espaço de Endereçamento Um datagrama mais eficiente e extensível Encaminhamento eficiente através da agregação de rotas Auto-configuração Segurança 05-11-2007 Universidade do Minho 78 Transição do IPv4 para o IPv6 Nem todos os encaminhadores podem ser actualizados simultaneamente sem “flag days” (será em 2010?) De que forma será possível ter a rede a funcionar simultaneamente com encaminhadores IPv6 e IPv4? Duas abordagens possíveis Stack Dupla: alguns encaminhadores implementam as duas stacks e podem converter o formato IPv4 em IPv6 e vice-versa Túneis: Entre encaminhadores IPv4, o datagrama IPv6 é transportado na parte dos dados do datagrama IPv4 05-11-2007 Universidade do Minho 79 Stack Dupla Fonte: Computer Networking: A Top-Down Approach Featuring the Internet, J. Kurose, Addison-Wesley, 2001 05-11-2007 Universidade do Minho 80 Túneis IPv6 “encapsulado” no IPv4 sempre que necessário Fonte: Computer Networking: A Top-Down Approach Featuring the Internet, J. Kurose, Addison-Wesley, 2001 05-11-2007 Universidade do Minho 81 Exercício Considere a topologia apresentada na figura abaixo. 70 computadores A B 10 computadores 10 computadores D C 10 computadores Sem se preocupar com os endereços de interligação, proponha um esquema que lhe permita endereçar os computadores das redes locais associadas aos diferentes encaminhadores a partir da gama 193.145.21.0/25. Usando uma gama de endereços privados (por exemplo: a gama 192.168.0.0/16) proponha um esquema para os endereços de interligação. 05-11-2007 Universidade do Minho 82