Mudanças entre as edições de "PJI3 20192"
Linha 766: | Linha 766: | ||
{{Collapse top | Aula 7}} | {{Collapse top | Aula 7}} | ||
<font size="3"> | <font size="3"> | ||
+ | |||
+ | Endereços IPv4 têm 32 bits e são capazes de endereçarem até pouco mais de 4 bilhões de hosts, e isso parecia mais do que suficiente quando o protocolo IP foi criado, nos primórdios da Internet. Mas desde os anos 1990, quando se massificou essa rede, constatou-se que os endereços IPv4 se esgotariam num horizonte próximo. Para evitar esse problema, e possibilitar que a Internet continuasse se expandindo (e também por outros motivos), foi criado o protocolo IPv6, cujos endereços têm 128 bits. Essa questão está bem descrita na introdução do livro [http://ipv6.br/lab/ Laboratório de IPv6]: | ||
+ | |||
+ | ''Considerando que a concepção da Internet data da década de 70 e que, de lá para cá, houve uma explosão inesperada do seu uso, o IPv4 mostrou-se inadequado para acompanhar esta evolução.Uma das deficiências mais apontadas do IPv4 foi o espaço de endereçamento baseado num valor inteiro de 32 bits, que é tipicamente representado por quatro octetos em decimal, sendo possível disponibilizar apenas 4.294.967.296 endereços IPV4 diferentes. Para contornar essa deficiência, inúmeras soluções paliativas foram propostas e adotadas, como por exemplo o NAT (Network Address Solution) e o CIDR (Classless InterDomain Routing). Contudo, à medida que novas tecnologias de redes surgiram e o IP continuava sendo um dos protocolos chaves para sua operação, outras deficiências começaram a ser detectadas, especialmente aquelas referentes à segurança e ao suporte a parâmetros de QoS (Quality of Service) e mobilidade. Como consequência, no inicio da década de 90 é publicada a proposta da nova geração do IP (IPng – IP next generation) ou IPv6. Este novo protocolo traz a solução para muitas das deficiências de seu predecessor, o IPv4, incluindo espaço de endereçamento de 128 bits gerando a possibilidade de 340.282.366.920.938.463.463.374.607.431.768.211.456 endereços disponíveis, suporte a roteamento e segmentação de pacotes na estação origem, suporte a mobilidade e mecanismos de segurança.'' | ||
+ | |||
+ | |||
+ | [[imagem:Pji3-Number-of-internet-hosts-in-the-domain-name-system.jpg|600px]] | ||
+ | <br>''Número de hosts na Internet mundial registrados no DNS (a quantidade total deve ser bem maior !). As quantidades são expressadas em milhões de hosts. Obtido de: [https://www.statista.com/statistics/264473/number-of-internet-hosts-in-the-domain-name-system/ Statista]'' | ||
+ | |||
+ | = Endereço IPV6 = | ||
+ | |||
+ | Um endereço IPV6 possui 128 bits disponíveis para endereçar hosts, possibilitando 340 undecilhões de endereços possíveis. Para se ter uma ideia do que isto representa, se convertêssemos cada IPv6 possível em um cm2, poderíamos envolver toda a superfície do planeta Terra com 7 camadas de endereços.. | ||
+ | |||
+ | [[Arquivo:End1.png|600px]] | ||
+ | |||
+ | == Adoção no Brasil == | ||
+ | |||
+ | O Brasil está entre os 10 países com maior adoção de IPv6, segundo o Google: | ||
+ | * [https://www.convergenciadigital.com.br/cgi/cgilua.exe/sys/start.htm Brasil avança na adoção do IPv6 e fica no top 10 mundial do Google] | ||
+ | |||
+ | |||
+ | Endereços IPv6 estão sendo amplamente usados por [http://www.abranet.org.br/Noticias/Exigencias-da-Anatel-aceleram-adocao-de-IPv6-pelas-operadoras-de-telecom-397.html provedores de acesso], como se pode comprovar em serviços de dados do tipo ADSL e LTE: | ||
+ | |||
+ | |||
+ | [[imagem:Pji3-ipv6-movel.png|300px]] | ||
+ | <br>''Cópia de tela de um celular mostrando o uso de endereço IPv6 em seu link de dados'' | ||
+ | |||
+ | = Tipos de Endereços IPV6 = | ||
+ | |||
+ | * [https://community.cisco.com/t5/switching/ipv6-global-unicast-address-range/m-p/1510629/highlight/true#M148325 Faixas de endereços IPv6] | ||
+ | |||
+ | |||
+ | O IPV6 possui categorias de endereços, conforme a tabela a seguir: | ||
+ | |||
+ | [[Arquivo:Tipos_de_end_ipv6.png|600px]] | ||
+ | |||
+ | *Endereços '''Anycast''': Um endereço IPv6 anycast é utilizado para identificar um grupo de interfaces, porém, com a propriedade de que um pacote enviado a um endereço anycast é encaminhado apenas a interface do grupo mais próxima da origem do pacote. Os endereços anycast são atribuídos a partir da faixa de endereços unicast e não há diferenças sintáticas entre eles. | ||
+ | *Endereços '''Loopback''': Endereços aplicados as interfaces loopback dos host; (Verificar com ifconfig) | ||
+ | *Endereços '''Link local''': Podem ser utilizados apenas no enlace específico onde a interface está conectada, sendo assim não é roteável; | ||
+ | *Endereços '''Unique local address''' Endereço com grande probabilidade de ser globalmente único, utilizado apenas para comunicações locais, geralmente dentro de um mesmo enlace ou conjunto de enlaces. Um endereço ULA não deve ser roteável na Internet global; | ||
+ | *Endereços '''Multicast''': Endereços multicast são utilizados para identificar grupos de interfaces, sendo que cada interface pode pertencer a mais de um grupo. Os pacotes enviados para esses endereço são entregues a todos as interfaces que compõe o grupo; | ||
+ | *Endereços '''Global unicast''': Equivalente aos endereços públicos IPv4, o endereço global unicast é globalmente roteável e acessível na Internet IPv6. | ||
+ | |||
+ | == Endereços Unicast == | ||
+ | |||
+ | [[Arquivo:Lla.png|600px]] | ||
+ | |||
+ | Link Local pode ser usado apenas no enlace específico onde a interface está conectada, o endereço link local é atribuído automaticamente utilizando o prefixo FE80::/64. Os 64 bits reservados para a identificação da interface são configurados utilizando o formato IEEE EUI-64. Vale ressaltar que os roteadores não devem encaminhar para outros enlaces, pacotes que possuam como origem ou destino um endereço link-local. | ||
+ | |||
+ | |||
+ | [[Arquivo:Ula ipv6.png|600px]] | ||
+ | |||
+ | |||
+ | O endereço ULA é um endereço com grande probabilidade de ser globalmente único, utilizado apenas para comunicações locais, geralmente dentro de um mesmo enlace ou conjunto de enlaces. Um endereço ULA não deve ser roteável na Internet global. Um endereço ULA, criado utilizando um ID global e alocado pseudo-randomicamente, é composto das seguintes partes: '''Prefixo: FC00::/7'''; '''Flag Local (L)'''; se o valor for 1 (FD) o prefixo é atribuído localmente. Se o valor for 0 (FC), o prefixo deve ser atribuído por uma organização central (ainda a definir); '''identificador global''' identificador de 40 bits usado para criar um prefixo globalmente único. '''Identificador da Interface''' identificador da interface de 64 bits. | ||
+ | |||
+ | [[Arquivo:Global unicast.png|600px]] | ||
+ | |||
+ | Atualmente, está reservada para atribuição de endereços a faixa 2000::/3 (001), ou seja, 3 primeiros bits utilizados para registros da faixa 2000. Equivalente aos endereços públicos IPv4, o endereço global unicast é globalmente roteável e acessível na Internet IPv6. Ele é constituído por três partes: o prefixo de roteamento global, utilizado para identificar o tamanho do bloco atribuído a uma rede; a identificação da sub-rede, utilizada para identificar um enlace em uma rede; e a identificação da interface, que deve identificar de forma única uma interface dentro de um enlace.Sua estrutura foi projetada para utilizar os 64 bits mais a esquerda para identificação da rede e os 64 bits mais a direita para identificação da interface. | ||
+ | |||
+ | == Endereço Multicast == | ||
+ | |||
+ | [[Arquivo:Multcast.png|600px]] | ||
+ | |||
+ | O IPV6 não possui endereço broadcast, e sim multicast. Endereços multicast são utilizados para identificar grupos de interfaces, sendo que cada interface pode pertencer a mais de um grupo. Os pacotes enviados para esses endereço são entregues a todos as interfaces que compõe o grupo. Seu funcionamento é similar ao do broadcast, dado que um único pacote é enviado a vários hosts, diferenciando-se apenas pelo fato de que no broadcast o pacote é enviado a todos os hosts da rede, sem exceção, enquanto que no multicast apenas um grupo de hosts receberá esse pacote. | ||
+ | |||
+ | = Cabeçalho IPV6 = | ||
+ | |||
+ | [[Arquivo:Header_ipv6.png|600px]] | ||
+ | |||
+ | O cabeçalho IPv6 possui menos informações, quando comparado ao cabeçalho IPv4. Várias informações foram removidas do cabeçalho IPV6, como por exemplo o ''checksum'', considerado uma informação desnecessária uma vez que o controle de erro é atribuído às camadas inferiores. Os campos presentes no cabeçalho IPV6 são definidos a seguir: | ||
+ | |||
+ | *'''Class of traffic''': define a classe de serviço a que o pacote pertence, possibilitando associar diferentes prioridades a pacotes dependendo da exigência de cada aplicação. Com isso, podem-se dar subsídios ao controle da qualidade de serviço (QoS) na rede. | ||
+ | *'''Flow Label''': proposto para identificar datagramas que fazem parte de um mesmo fluxo, o que facilitaria, em tese, o tratamento dado a esses datagramas na rede. Atualmente esse cabeçalho não tem sido usado, e pode ser que em revisões futuras seja mudado seu propósito. | ||
+ | *'''Payload Length''': quantidade de bytes contidos na carga útil transportada pelo datagrama (''payload''). | ||
+ | *'''Next Header''': informa que há um cabeçalho opcional em seguida. | ||
+ | *'''Hop''': Número máximo de saltos (roteadores intermediários), da origem ao destino do datagrama, que podem ser percorridos antes do datagrama ser descartado. Em outras palavras, quantidade máxima de encaminhamentos permitidos para o datagrama. Tem papel similar ao campo TTL do IPv4. | ||
+ | |||
+ | [[Arquivo:Header_ipv4.png|600px]] | ||
+ | |||
+ | = Auto-configuração de endereços = | ||
+ | |||
+ | * [http://ipv6.br/post/funcionalidades-basicas/ Um resumo sobre ICMPv6 e seu papel na auto-configuração] | ||
+ | |||
+ | |||
+ | Em redes IPv4, a auto-configuração de ''hosts'' se faz com o [[PJI11103:_Endereçamento_IPv4#Configura.C3.A7.C3.A3o_din.C3.A2mica|serviço DHCP]]. Em redes IPv6 existem duas formas de auto-configurar ''hosts'': | ||
+ | * '''SLAAC (Auto-configuração ''stateless'')''': um host gera seu próprio endereço IPv6 a partir de informação anunciada periodicamente pelo gateway da rede. O gateway não sabe que host usa qual endereço IPv6. | ||
+ | * '''DHCPv6''': similar ao serviço DHCP para IPv4, um host obtém toda sua configuração de rede (incluindo seu endereço IPv6) de um servidor DHCPv6. Esse servidor mantém informações sobre que host usa qual endereço IPv6. | ||
+ | |||
+ | == SLAAC == | ||
+ | |||
+ | Com SLAAC, um host IPv6 tem a capacidade de auto-configurar seu endereço em uma subrede. Com isso, facilita-se a configuração de rede de um equipamento, pois torna-se desnecessário obter e definir manualmente seu endereço IPv6, além de outras informações tais como máscara de rede, gateway e servidores DNS. No entanto, isso depende de o gateway (ou algum outro equipamento) fornecer essas informações de configuração para os hosts em sua(s) subrede(s). Isso não é novidade, pois em redes IPv4 o serviço DHCP tem exatamente esse papel. Porém, com o surgimento de IPv6, a auto-configuração se tornou uma função do próprio protocolo de rede. Em redes IPv4, DHCP é um serviço que depende de softwares específicos tanto nos hosts (clientes) quanto no servidor. A auto-configuração IPv6 é muito mais simples, e não demanda nenhum software adicional nos hosts. | ||
+ | |||
+ | A autoconfiguração do IPV6, chamada ''stateless'', é o procedimento com que os ''hosts'' de uma subrede podem definir seus próprios endereços, baseados em informações locais (ex: endereço MAC de sua interfaces de rede Ethernet, Wifi, ou Bluetooth), e em informações recebidas de roteadores, denominadas mensagens ''Router Advertisement''. Sendo assim, o roteador é o responsável por fornecer informações sobre a SUBrede para que seja possível que ''hosts'' que nela residem se autoconfigurem. A autoconfiguração do IPV6 é chamada de ''stateless'' porque o roteador não mantém nenhum registro sobre a configuração de cada host. Isso é consequência da capacidade dos hosts se autoconfigurarem apenas sabendo a subrede a que pertencem. No entanto, para que seja possível a autoconfiguração em redes baseadas em IPV6, duas etapas de configuração devem ser aplicadas, sendo elas: | ||
+ | |||
+ | *'''Configuração do prefixo''' ou neste caso a identificação da subrede. Nesta etapa, os prefixos são coletados pelos hosts por meio de mensagens ICMPv6, chamadas de ''Router Advertisement'', as quais são transmitidas pelos roteadores. | ||
+ | |||
+ | *'''Configuração do sufixo do host''' identificação do host propriamente dito. Nesta etapa, o sufixo de host é automaticamente obtido a partir do endereço MAC de 48 bits obtido de sua próprio interface de rede Ethernet ou Wifi. Uma vez que um endereço MAC possui apenas 48 bits, porém os sufixos IPV6 possuem 64 bits, os 16 bits restantes para completar o endereço IPV6 são inseridos por uma função de expansão chamada de ''Extended Unique Identifier'' (''EUI''). A função ''EUI'' executa as seguintes etapas: | ||
+ | # Separa o endereço MAC em dois blocos de 24 bits | ||
+ | # Adiciona os algarismos hexadecimais FFFE entre os dois blocos | ||
+ | # Muda o sétimo bit do primeiro byte para 1 para sinalizar que o endereço é gerenciado localmente. | ||
+ | |||
+ | |||
+ | Este exemplo mostra a geração do sufixo de um endereço IPv6: | ||
+ | |||
+ | [[Arquivo:Sufix ipv62.jpg|600px]] | ||
+ | |||
+ | |||
+ | === Protocolo NDP (Neighbor Discovery Protocol) === | ||
+ | |||
+ | A auto-configuração IPv6 depende do protocolo NDP, implementado usando mensagens ICMPv6. De acordo com [http://ipv6.br/post/funcionalidades-basicas/ este tutorial do site IPv6.br], no caso da autoconfiguração de ''hosts'', o protocolo fornece suporte para a realização de três funcionalidades: | ||
+ | * '''Parameter Discovery''': atua na descoberta por um ''host'' de informações sobre o enlace (como MTU) e sobre a Internet (como limite de saltos). | ||
+ | * '''Address Autoconfiguration''': trabalha com a autoconfiguração stateless de endereços nas interfaces de um nó. | ||
+ | * '''Duplicate Address Detection''': utilizado para descobrir se o endereço que se deseja atribuir a uma interface já está sendo utilizado por um outro nó na rede. | ||
+ | |||
+ | |||
+ | Já no caso da transmissão de pacotes entre nós, o suporte é dado para a realização de seis funcionalidades: | ||
+ | * '''Router Discovery''': trabalha com a descoberta de roteadores pertencentes ao enlace. | ||
+ | * '''Prefix Discovery''': implementa a descoberta de prefixos de redes do enlace, cuja a finalidade é decidir para onde os pacotes serão direcionados numa comunicação (se é para um roteador especifico ou direto para um nó do enlace). | ||
+ | * '''Address Resolution''': descobre o endereço fisico através de um endereço lógico IPv6. | ||
+ | * '''Neighbor Unreachability Detection''': permite que os nós descubram se um vizinho é ou se continua alcançavel, uma vez que problemas podem acontecer tanto nos nós como na rede. | ||
+ | * '''Redirect''': permite ao roteador informar ao nó uma rota melhor ao ser utilizada para enviar pacotes a determinado destino. | ||
+ | * '''Next-Hop Determination''': algoritmo para mapear um endereço IP de destino em um endereço IP de um vizinho para onde o trafego deve ser enviado. | ||
+ | |||
+ | |||
+ | Tratando especificamente da auto-configuração IPv6, o protocolo NDP usa mensagens ICMPv6 do tipo RA (''Router Advertisement - Anúncio de Roteador'') para anunciar parâmetros da subrede. Essas mensagens são tipicamente enviadas periodicamente pelo gateway, e contêm estas informações: | ||
+ | * prefixo da subrede | ||
+ | * endereço do servidor DNS | ||
+ | * MTU | ||
+ | * rotas para subredes específicas | ||
+ | * domínios DNS | ||
+ | |||
+ | |||
+ | Em sistemas Linux, o envio de mensagens RA por um roteador são feitas pelo software [http://manpages.ubuntu.com/manpages/xenial/man8/radvd.8.html radvd]. | ||
+ | |||
+ | |||
+ | Ao receber uma mensagem RA, um host pode completar sua auto-configuração, e assim se comunicar na rede IPv6. A figura a seguir mostra mensagens RA enviadas por um roteador: | ||
+ | |||
+ | [[image:pji11103-Radv.jpg|800px]] | ||
+ | |||
+ | == DHCPv6 == | ||
+ | |||
+ | * [https://tools.ietf.org/html/rfc3315 RFC 3315: DHCPv6] | ||
+ | |||
+ | |||
+ | O protocolo DHCPv6 guarda semelhanças com DHCP usado em redes IPv4. Ele implementa um serviço de configuração dinâmica de endereços. Assim como DHCP, DHCPv6 pode fornecer muitas outras informações aos ''hosts'', tais como endereços de servidores WINS, proxy HTTP, programa de boot, [https://tools.ietf.org/html/rfc3315#section-22 entre outros]. | ||
+ | |||
+ | |||
+ | De acordo com o livro [http://ipv6.br/media/arquivo/ipv6/file/64/livro-lab-ipv6-nicbr.pdf Laboratório de IPv6], na página 51, ''basicamente, a comunicação entre o servidor DHCP e as máquinas cliente se dá com a troca de quatro mensagens:'' | ||
+ | * '''Solicit''': enviada pelo cliente ao grupo multicast all-dhcp-agents (ff02::1:2) com o intuito de localizar o servidor DHCP. | ||
+ | * '''Advertise''': enviada pelo servidor DHCP, diretamente ao endereço link-local do cliente, para indicar que ele pode fornecer as informações necessárias para a configuração. | ||
+ | * '''Request''': enviada pelo cliente diretamente ao grupo multicast all-dhcp-agents (ff02::1:2) para requisitar ao servidor DHCP os dados de configuração. | ||
+ | * '''Reply''': enviada pelo servidor DHCP ao endereço de link-local do cliente como resposta à mensagem Request. | ||
+ | |||
+ | |||
+ | O DHCPv6 possui dois modos de operação: | ||
+ | * '''Stateful''': o servidor DHCPv6 é responsável por informar aos clientes os endereços IPv6 que devem ser utilizados em suas interfaces de rede, mantendo o estado de qual endereço foi atribuído a determinado cliente. | ||
+ | * '''Stateless''': o servidor DHCPv6 informa apenas parâmetros de configuração como endereço dos servidores DNS ou servidores SIP da rede aos clientes, sem a necessidade de guardar qual informação individual de cada cliente. Nesse segundo caso, o cliente deverá obter o endereço IPv6 de sua interface de outra forma, seja manualmente ou SLAAC.'' | ||
+ | |||
+ | |||
+ | Para usar DHCPv6, é necessário um software específico a ser executado no servidor. Esse software responde a requisições de configuração de rede enviadas por clientes, fornecendo-lhes seus endereços IPv6 e demais configurações. Em sistemas Linux (e outros da família Unix), o software mais usado é o [https://www.isc.org/downloads/dhcp/ ISC DHCP server]. Como visto no caso de DHCP para redes IPv4, esse software deve ser copnfigurado a partir do arquivo [http://manpages.ubuntu.com/manpages/xenial/man5/dhcpd.conf.5.html /etc/dhcp/dhcpd6.conf]. O exemplo de configuração a seguir mostra a declaração de uma subrede IPv6 com a respectiva faixa de endereços a serem concedidos e o servidor DNS a ser informado: | ||
+ | |||
+ | <syntaxhighlight lang=text> | ||
+ | default-lease-time 600; | ||
+ | max-lease-time 7200; | ||
+ | |||
+ | subnet6 2001:db8::/64 { | ||
+ | range6 2001:db8::1234 2001:db8::abcd; | ||
+ | option dhcp6.name-servers 2001:db8::abc; | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | Muitas opções para DHCPv6 podem ser usadas. Maiores detalhes podem ser encontrados na [http://manpages.ubuntu.com/manpages/xenial/man5/dhcp-options.5.html documentação sobre as opções]. | ||
+ | |||
+ | = Atividades = | ||
+ | |||
+ | Objetivos: | ||
+ | |||
+ | * Usar endereços IPv6 para endereçar hosts em uma rede | ||
+ | * Realizar comunicações usando IPv6 | ||
+ | * Usar ferramentas de diagnóstico para IPv6 | ||
+ | |||
+ | Para realizar estas atividades serão necessários alguns comandos: | ||
+ | * '''Teste com ping6''': deve-se especificar a interface de rede por onde as mensagens do ping6 serão transmitidas: <br><br>'''ping6 -I eth0''' ''endereço_IPv6_a_ser_pingado''<br><br> | ||
+ | * '''Tabela de rotas''':<br><br>''' route -A inet6'''<br><br> | ||
+ | * '''Configuração de interface de rede:''' usa-se o programa ifconfig desta forma:<br><br>'''ifconfig''' ''nome_interface'' '''inet6 add''' ''endereço_IPv6''<br><br> | ||
+ | * '''Criação de rota:''' uma rota IPv6 pode ser adiciona assim: <br><br>'''route -A inet6 add''' ''prefixo/máscara'' '''gw''' ''IPv6_do_próximo_roteador'' | ||
+ | |||
</font> | </font> | ||
{{Collapse bottom | Aula 7}} | {{Collapse bottom | Aula 7}} |
Edição das 16h19min de 16 de agosto de 2019
Projeto Integrador III
Professora: Juliana Camilo (juliana.camilo@ifsc.edu.br)
Encontros: 3a feira/19:00, 5a feira/19:00
Atendimento paralelo Profa. Juliana: 3a e 6a feira 17:30 hrs às 18:30 hrs
Coordenadoria pedagógica (Graciane): graciane@ifsc.edu.br (3381-2890, 3381-2842)
PPC Curso Técnico Subsequente de Telecomunicações
30/07/2019: Apresentação da disciplina.
Aula 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Apresentação da disciplinaIntrodução ao problema de estudoA disciplina de Projeto Integrador 3 tem como assunto principal as tecnologias de enlace e rede que podem ser usadas para implantar redes locais e redes de acesso. Além disso, uma introdução à redes WAN faz parte do programa da disciplina.
AtividadeNesta primeira aula o objetivo é descrever as características do serviço a ser oferecido pelo provedor, e pensar na infraestrutura necessária para que seja implantado. Isso inclui investigar o que os provedores que já existem tem oferecido para seus clientes, e que tecnologias eles utilizam. Ao final da aula, deveremos ter:
Tabela de provedores existentes (Grande Florianópolis)
|
01/08/2019: Endereçamento IPv4. Configuração Estática e Dinâmica
Aula 2 |
---|
Configuração de endereçosO endereço IP de um host pode ser configurado de forma estática ou dinâmica. No primeiro caso, o usuário predefine o endereço IP no próprio equipamento. No segundo, o equipamento usa um protocolo especial de configuração para obter sua configuração de rede.
Configuração estáticaA configuração estática envolve um usuário gravar a configuração de rede de forma persistente na memória do host. Cada tipo de equipamento apresenta um procedimento diferente para armazenar a configuração de rede estática. Por exemplo, em computadores com sistema operacional Linux da família Debian (tais como Debian, Ubuntu, Mint e muitos outros), a configuração de rede fica armazenada no arquivo /etc/network/interfaces: iface eth0 inet static
address 10.1.23.19
netmask 255.255.255.0
gateway 10.1.23.254
router# configure terminal
router(config)# interface e0
router(config-if)# ip address 10.1.23.19 255.255.255.0
router(config-if)# exit
router(config)# ip route 0.0.0.0 0.0.0.0 10.1.23.254
router(config)# exit
router# write memory
router# write terminal
Building configuration...
Current configuration : 472 bytes
!
version 12.3
!
hostname Router
!
interface Ethernet0
ip address 10.1.23.19 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.23.254
Configuração dinâmicaUm host pode obter suas informações de rede dinamicamente por meio do protocolo DHCP (Dynamic Host Configuration Protocol). Desta forma, não há necessidade de o usuário saber as informações de rede necessárias para configurar corretamente seu equipamento. Isso torna possível também centralizar e automatizar a distribuição de endereços de rede para hosts. Se alguma das informações precisar ser modificada (ex: o roteador default), basta alterá-las no serviço DHCP para que toda a rede seja eventualmente reconfigurada. A maioria dos equipamentos de usuários vem de fábrica com configuração de rede dinâmica. Isso vale para computadores pessoais, em que os sistemas operacionais detectam as interfaces de rede e as configuram com DHCP, smartphones, tablets, câmeras IP, ATA e telefones IP, impressoras, e possivelmente outros equipamentos. Em computadores pessoais com sistemas operacionais Linux da família Debian, uma interface pode ser configurada dinamicamente se for declarada em /etc/network/interfaces desta forma: iface eth0 inet dhcp
Protocolo DHCPDHCP (Dynamic Host Configuration Protocol) é um protocolo para obtenção automática de configuração de rede, usado por computadores que acessam fisicamente uma rede. Esses computadores são tipicamente máquinas de usuários, que podem usar a rede esporadicamente (ex: usuários ocm seus laptops, com acesso via rede cabeada ou sem-fio), ou mesmo computadores fixos da rede. O principal objetivo do DHCP é fornecer um endereço IP, a máscara de rede, o endereço IP do roteador default e um ou mais endereços de servidores DNS. Assim, um novo computador que acesse a rede pode obter essa configuração sem a intervenção do usuário. Para esse serviço pode haver um ou mais servidores DHCP. Um computador que precise obter sua configuração de rede envia mensagens DHCPDISCOVER em broadcast para o port UDP 67. Um servidor DHCP, ao receber tais mensagens, responde com uma mensagem DHCPOFFER também em broadcast, contendo uma configuração de rede ofertada. O computador então envia novamente em broadcast uma mensagem DHCPREQUEST, requisitando o endereço IP ofertado pelo servidor. Finalmente, o servidor responde com uma mensagem DHCPACK, completando a configuração do computador cliente. Como a configuração tem um tempo de validade (chamado de lease time), o cliente deve periodicamente renová-la junto ao servidor DHCP, para poder continuar usando-a. O diagrama abaixo mostra simplificadamente esse comportamento:
O servidor DHCP identifica cada cliente pelo seu endereço MAC. Assim, o DHCP está fortemente relacionado a redes locais IEEE 802.3 (Ethernet) e IEEE 802.11 (WiFi). Servidor DHCPEm uma rede local em que hosts devem obter sua configuração de rede dinamicamente, deve haver ao menos um servidor DHCP. Esse serviço costuma estar disponibilizado em equipamentos de rede, tais como pontos de acesso sem-fio e roteadores. Por exemplo, o roteador sem-fio TP-Link WDR 4300 oferece esse serviço, que pode ser configurado e ativado por meio de sua interface de gerenciamento.
# tempos de concessão, em segundos
default-lease-time 600;
max-lease-time 7200;
# Algumas opções de uso comum
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 191.36.8.2, 191.36.8.3;
option domain-name "sj.ifsc.edu.br";
# subrede 192.168.1.0/24 com duas faixas de endereços a serem concedidos:
# 192.168.1.100 a 192.168.1.150
# 192.168.1.190 a 192.168.1.240
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.2.150;
range 192.168.1.190 192.168.2.240;
}
AtividadeObjetivo
Roteiro 01: configuração de endereçosTomando como base a rede do laboratório mostrada na figura, realize estes procedimentos em a máquina virtual "Gráfico-3":
|
06/08/2019: Endereçamento IPv4. Configuração Estática e Dinâmica (continuação)
Aula 3 |
---|
|
08/08/2019: Roteamento Estático e Dinâmico
Aula 4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Subredes IPUma subrede IP é representada por um prefixo de rede e uma máscara. O prefixo são os N bits mais significativos comuns a todos os endereços IP contidos em uma subrede (lembre que um endereço IP tem 32 bits). A máscara informa quantos bits tem o prefixo. A combinação de prefixo de rede e máscara funciona da seguinte forma: Imagine que exista uma subrede contendo os endereços de 192.168.2.0 até 192.168.2.255. Se representarmos esses endereços em binário, podemos ver que os 24 bits mais significativos são os mesmos para todos os endereços:
Encaminhamento IPTodo host é capaz de realizar uma função da camada de rede chamada de encaminhamento IP (IP forwarding). O encaminhamento é feito quando um host recebe um datagrama IP, e precisa decidir o que fazer com ele. O destino do datagrama depende do endereço de destino contido em seu cabeçalho IP.
A tabela de rotas a seguir foi obtida em um computador com sistema operacional Linux. aluno@M1:~$ route -n
Tabela de Roteamento IP do Kernel
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
0.0.0.0 191.36.9.254 0.0.0.0 UG 0 0 0 enp0s25
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s25
191.36.9.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s25
192.168.2.64 191.36.9.1 255.255.255.192 U 0 0 0 enp0s25
Supondo que esse host tenha que encaminhar um datagrama com endereço de destino 8.8.8.8, a busca por uma rota adequada seria esta:
Roteamento estáticoCada host ligado a Internet possui uma tabela de rotas. É pelo conteúdo dessa tabela que ele sabe como transmitir os pacotes para cada destino. Em seu computador, você pode visualizar essa tabela da seguinte forma: # Isto funciona em qualquer *nix que se preze ...
netstat -rn
aluno@M1:~> ifconfig eth1 192.168.10.1 netmask 255.255.255.0
aluno@M1::~> netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
Obs: ao menos próximo roteador ou interface de rede precisam ser especificados.
# adiciona a rota default, que passa pelo roteador 192.168.10.100
route add default gw 192.168.10.100
# este comando tem o mesmo efeito que o anterior ...
route add -net 0.0.0.0/0 gw 192.168.10.100
Roteamento dinâmicoRoteamento dinâmico é definido como a capacidade de roteamento automático por uma rede. No roteamento estático, como visto, as possibilidades de rota são definidas por meio de uma tabela de roteamento fixa definida manualmente. No entanto, no roteamento dinâmico as tabelas de roteamento são construídas automaticamente pelo sistema, e mantidas constantemente atualizadas devido a comunicação entre os roteadores participantes da rede. Sendo assim, uma rede que utilize algum protocolo de roteamento dinâmico é sensível a qualquer mudança de topologia da rede, sendo capaz de adaptar-se rapidamente a um novo padrão de rotas. Em outras palavras, um protocolo de roteamento dinâmico pode ser definido como uma maneira que um roteador fala com seus vizinhos a fim de compartilhar informações sobre rotas disponíveis na rede. A partir da capacidade de auto organização, o roteamento dinâmico deve ser capaz de procurar a melhor rota alternativa para um fluxo de dados, quando determinados roteadores se tornam inacessíveis ou estejam congestionados. O roteamento dinâmico dentro de uma rede pertencente a uma organização é chamado de roteamento interno', e o roteamento entre redes de diferentes oragnizações é denominado roteamento externo. O roteamento externo acontece no núcleo da Internet, e envolve um número muito grande de roteadores e hosts. Um dos protocolos clássicos de roteamento interno é o protocolo RIP. Por apresentar tempo convergência relativamente longo, o RIP se aplica a pequenas redes. Outro protocolo de roteamento interno se chama OSPF, o qual apresenta rápida convergência e é usado em redes maiores. Protocolo RIPO protocolo RIP (Routing Information Protocol) é um protocolo baseado na técnica vetor de distância, pois compartilha tabelas de distâncias entre roteadores vizinhos, para que cada roteador possa atualizar sua tabela de roteamento. O protocolo RIP foi um dos primeiros protocolos de roteamento baseado em vetor de distância aplicado a uma grande variedade de sistemas. O RIP possui as seguintes características principais de funcionamento:
A lógica de funcionamento do RIP é baseada em roteadores ativos, configurados como roteadores que realizam comunicação das rotas aos demais, e roteadores passivos que não disseminam mensagens porém atualizam suas rotas quando recebem informações atualizadas.
Um roteador ativo mantém uma tabela de roteamento que possui os identificadores e IPs dos roteadores vizinhos, a rota de acesso, e um número inteiro que representa a distância do roteador até determinada rede. As tabelas são anunciadas para todos os roteadores da rede. O envio das tabelas de roteamento pelos roteadores acontece por broadcast em intervalos de tempo geralmente definidos para 30 segundos. Quando um nó recebe uma informação atualizada de determinado roteador vizinho, substitui sua tabela pela tabela atualizada. Para indicar a distância até uma determinada rede, o protocolo RIP utiliza uma métrica baseada em contagem de saltos, ou seja, quantos roteadores existem entre o roteador de origem e a rede de destino.
Exemplo RIP (De A para F)Neste exemplo um determinado nó A deseja se comunicar com o nó E.
Agora B e C enviam suas tabelas atualizadas para A, E e D respectivamente. Logo A, E, D atualizam suas tabelas e enviam por broadcast para todos os roteadores.
E envia sua tabela atualizada para F, que atualiza sua tabela.
F atualiza sua tabela e envia para todos.
Quando A recebe a tabela atualizada de F, atualiza sua própria tabela. A seguir temos a tabela do A depois da atualização.
AtividadesRoteiro 02: Subredes e roteamento estáticoEstes experimentos devem ser realizados no Netkit2, que deve ser executado na máquina real. Para esquentar: uma rede mais simples:
Praticamente a mesma rede, mas com um roteador a mais:
Roteamento estático entre redes das equipes
Roteamento dinâmico (com o RIP)Baseado no diagrama da Figura, usaremos serviços para rodar os protocolos de roteamento RIP, de tal modo que as tabelas estáticas de roteamento não mais serão necessárias e o sistema se auto recuperará da queda de um único enlace (nesse caso). Em cada roteador o software Quagga é responsável por executar o protocolo de roteamento.
|
13/08/2019: Roteamento Estático e Dinâmico (continuação)
Aula 5 |
---|
|
15/08/2019: Roteamento Estático e Dinâmico (continuação)
Aula 6 |
---|
|
20/08/2019: Endereçamento IPv6
Aula 7 |
---|
Endereços IPv4 têm 32 bits e são capazes de endereçarem até pouco mais de 4 bilhões de hosts, e isso parecia mais do que suficiente quando o protocolo IP foi criado, nos primórdios da Internet. Mas desde os anos 1990, quando se massificou essa rede, constatou-se que os endereços IPv4 se esgotariam num horizonte próximo. Para evitar esse problema, e possibilitar que a Internet continuasse se expandindo (e também por outros motivos), foi criado o protocolo IPv6, cujos endereços têm 128 bits. Essa questão está bem descrita na introdução do livro Laboratório de IPv6: Considerando que a concepção da Internet data da década de 70 e que, de lá para cá, houve uma explosão inesperada do seu uso, o IPv4 mostrou-se inadequado para acompanhar esta evolução.Uma das deficiências mais apontadas do IPv4 foi o espaço de endereçamento baseado num valor inteiro de 32 bits, que é tipicamente representado por quatro octetos em decimal, sendo possível disponibilizar apenas 4.294.967.296 endereços IPV4 diferentes. Para contornar essa deficiência, inúmeras soluções paliativas foram propostas e adotadas, como por exemplo o NAT (Network Address Solution) e o CIDR (Classless InterDomain Routing). Contudo, à medida que novas tecnologias de redes surgiram e o IP continuava sendo um dos protocolos chaves para sua operação, outras deficiências começaram a ser detectadas, especialmente aquelas referentes à segurança e ao suporte a parâmetros de QoS (Quality of Service) e mobilidade. Como consequência, no inicio da década de 90 é publicada a proposta da nova geração do IP (IPng – IP next generation) ou IPv6. Este novo protocolo traz a solução para muitas das deficiências de seu predecessor, o IPv4, incluindo espaço de endereçamento de 128 bits gerando a possibilidade de 340.282.366.920.938.463.463.374.607.431.768.211.456 endereços disponíveis, suporte a roteamento e segmentação de pacotes na estação origem, suporte a mobilidade e mecanismos de segurança.
Endereço IPV6Um endereço IPV6 possui 128 bits disponíveis para endereçar hosts, possibilitando 340 undecilhões de endereços possíveis. Para se ter uma ideia do que isto representa, se convertêssemos cada IPv6 possível em um cm2, poderíamos envolver toda a superfície do planeta Terra com 7 camadas de endereços.. Adoção no BrasilO Brasil está entre os 10 países com maior adoção de IPv6, segundo o Google:
Tipos de Endereços IPV6
Endereços UnicastLink Local pode ser usado apenas no enlace específico onde a interface está conectada, o endereço link local é atribuído automaticamente utilizando o prefixo FE80::/64. Os 64 bits reservados para a identificação da interface são configurados utilizando o formato IEEE EUI-64. Vale ressaltar que os roteadores não devem encaminhar para outros enlaces, pacotes que possuam como origem ou destino um endereço link-local.
Atualmente, está reservada para atribuição de endereços a faixa 2000::/3 (001), ou seja, 3 primeiros bits utilizados para registros da faixa 2000. Equivalente aos endereços públicos IPv4, o endereço global unicast é globalmente roteável e acessível na Internet IPv6. Ele é constituído por três partes: o prefixo de roteamento global, utilizado para identificar o tamanho do bloco atribuído a uma rede; a identificação da sub-rede, utilizada para identificar um enlace em uma rede; e a identificação da interface, que deve identificar de forma única uma interface dentro de um enlace.Sua estrutura foi projetada para utilizar os 64 bits mais a esquerda para identificação da rede e os 64 bits mais a direita para identificação da interface. Endereço MulticastO IPV6 não possui endereço broadcast, e sim multicast. Endereços multicast são utilizados para identificar grupos de interfaces, sendo que cada interface pode pertencer a mais de um grupo. Os pacotes enviados para esses endereço são entregues a todos as interfaces que compõe o grupo. Seu funcionamento é similar ao do broadcast, dado que um único pacote é enviado a vários hosts, diferenciando-se apenas pelo fato de que no broadcast o pacote é enviado a todos os hosts da rede, sem exceção, enquanto que no multicast apenas um grupo de hosts receberá esse pacote. Cabeçalho IPV6O cabeçalho IPv6 possui menos informações, quando comparado ao cabeçalho IPv4. Várias informações foram removidas do cabeçalho IPV6, como por exemplo o checksum, considerado uma informação desnecessária uma vez que o controle de erro é atribuído às camadas inferiores. Os campos presentes no cabeçalho IPV6 são definidos a seguir:
Auto-configuração de endereços
SLAACCom SLAAC, um host IPv6 tem a capacidade de auto-configurar seu endereço em uma subrede. Com isso, facilita-se a configuração de rede de um equipamento, pois torna-se desnecessário obter e definir manualmente seu endereço IPv6, além de outras informações tais como máscara de rede, gateway e servidores DNS. No entanto, isso depende de o gateway (ou algum outro equipamento) fornecer essas informações de configuração para os hosts em sua(s) subrede(s). Isso não é novidade, pois em redes IPv4 o serviço DHCP tem exatamente esse papel. Porém, com o surgimento de IPv6, a auto-configuração se tornou uma função do próprio protocolo de rede. Em redes IPv4, DHCP é um serviço que depende de softwares específicos tanto nos hosts (clientes) quanto no servidor. A auto-configuração IPv6 é muito mais simples, e não demanda nenhum software adicional nos hosts. A autoconfiguração do IPV6, chamada stateless, é o procedimento com que os hosts de uma subrede podem definir seus próprios endereços, baseados em informações locais (ex: endereço MAC de sua interfaces de rede Ethernet, Wifi, ou Bluetooth), e em informações recebidas de roteadores, denominadas mensagens Router Advertisement. Sendo assim, o roteador é o responsável por fornecer informações sobre a SUBrede para que seja possível que hosts que nela residem se autoconfigurem. A autoconfiguração do IPV6 é chamada de stateless porque o roteador não mantém nenhum registro sobre a configuração de cada host. Isso é consequência da capacidade dos hosts se autoconfigurarem apenas sabendo a subrede a que pertencem. No entanto, para que seja possível a autoconfiguração em redes baseadas em IPV6, duas etapas de configuração devem ser aplicadas, sendo elas:
Protocolo NDP (Neighbor Discovery Protocol)A auto-configuração IPv6 depende do protocolo NDP, implementado usando mensagens ICMPv6. De acordo com este tutorial do site IPv6.br, no caso da autoconfiguração de hosts, o protocolo fornece suporte para a realização de três funcionalidades:
DHCPv6
default-lease-time 600;
max-lease-time 7200;
subnet6 2001:db8::/64 {
range6 2001:db8::1234 2001:db8::abcd;
option dhcp6.name-servers 2001:db8::abc;
}
AtividadesObjetivos:
Para realizar estas atividades serão necessários alguns comandos:
|