Mudanças entre as edições de "IER60808: Subredes IPv4 e Roteamento"
Linha 251: | Linha 251: | ||
!IP externo do roteador | !IP externo do roteador | ||
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede11.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede11.conf Augusto]||192.168.11.0/24||192.168.1.111 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede12.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede12.conf Brenda]||192.168.12.0/24||192.168.1.112 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede13.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede13.conf Bruna]||192.168.13.0/24||192.168.1.113 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede14.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede14.conf Bruno]||192.168.14.0/24||192.168.1.114 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede15.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede15.conf Enzo]||192.168.15.0/24||192.168.1.115 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede16.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede16.conf Fernanda]||192.168.16.0/24||192.168.1.116 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede17.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede17.conf Guilherme]||192.168.17.0/24||192.168.1.117 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede18.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede18.conf Isabella]||192.168.18.0/24||192.168.1.118 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede19.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede19.conf Jennifer]||192.168.19.0/24||192.168.1.119 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede20.conf João | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede20.conf João Pedro]||192.168.20.0/24||192.168.1.120 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede21.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede21.conf Lilia]||192.168.21.0/24||192.168.1.121 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede22.conf Lucas]||192.168.22.0/24||192.168.1.123 | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede22.conf Lucas Bernardo]||192.168.22.0/24||192.168.1.123 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede23.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede23.conf Lucas Fontes Ricardo]||192.168.23.0/24||192.168.1.123 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede24.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede24.conf Manuela]||192.168.24.0/24||192.168.1.124 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede25.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede25.conf Mateus]||192.168.25.0/24||192.168.1.125 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede26.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede26.conf Matheus]||192.168.26.0/24||192.168.1.126 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede27.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede27.conf Nathaly]||192.168.27.0/24||192.168.1.127 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede28.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede28.conf Pedro]||192.168.28.0/24||192.168.1.128 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede29.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede29.conf Thiago ]||192.168.29.0/24||192.168.1.129 |
|- | |- | ||
|[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede30.conf Natalia]||192.168.30.0/24||192.168.1.130 | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede30.conf Natalia]||192.168.30.0/24||192.168.1.130 | ||
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede31.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede31.conf Vinicius]||192.168.31.0/24||192.168.1.131 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede32.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede32.conf Wesley]||192.168.32.0/24||192.168.1.132 |
|- | |- | ||
− | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede33.conf | + | |[http://tele.sj.ifsc.edu.br/~msobral/ier/redes/rede33.conf Yasmin]||192.168.33.0/24||192.168.1.133 |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|} | |} | ||
{{collapse bottom}} | {{collapse bottom}} |
Edição das 17h15min de 27 de fevereiro de 2020
A Internet é uma grande rede formada pela interligação de redes menores, denominadas subredes. Cada subrede está associada a uma faixa de endereços IP. Os equipamentos (hosts) contidos em uma subrede possuem endereços IP dentro dessa faixa. Esse esquema facilita o roteamento na Internet, pois, para enviar um pacote para um determinado host, basta saber que caminho seguir para chegar até sua subrede. Com isso, não é necessário (nem seria viável !) que os roteadores saibam como chegar até cada possível host existente na Internet. Para que isso funcione, deve haver uma forma simples de relacionar os endereços IP de hosts às faixas de endereços das subredes que os contêm.
Uma rede formada por subredes interligadas por roteadores
Uma 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:
A máscara de rede tem a forma de um endereço IP, porém com bits 1 na parte correspondente ao prefixo, e 0 no resto. Assim, para o exemplo acima a máscara de rede é 255.255.255.0. Outra forma de representar a máscara é simplesmente informar o tamanho em bits do prefixo, e no exemplo a máscara seria 24. Juntando o prefixo e a máscara, a subrede pode ser representada de uma destas duas formas:
- 192.168.2.0/255.255.255.0
- 192.168.2.0/24
Agora imagine que o prefixo tenha 28 bits, como mostrado nesta figura:
Por ter um prefixo mais longo, o tamanho dessa subrede é menor. Isso significa que ela contém menos endereços IP, tanto que o primeiro endereço é 192.168.2.0 e o último é 192.168.2.15. Essa subrede poderia ser representada por:
- 192.168.2.0/255.255.255.240
- 192.168.2.0/28
Aproveitando esse exemplo, pode-se mostrar uma outra subrede que, apesar de não parecer, é diferente da anterior:
Essa outra subrede contém endereços entre 192.168.2.16 e 192.168.2.31. Essa subrede poderia ser representada por:
- 192.168.2.16/255.255.255.240
- 192.168.2.16/28
Como se pode notar, uma consequência dessa forma de definir subredes é que seus tamanhos sempre serão potências de 2. Em outras palavras, as quantidades de endereços IP de qualquer subrede IP imaginável sempre serão potências de 2.
Encaminhamento IP
Todo 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.
- Se o endereço IP for o do próprio host: o conteúdo do datagrama é desencapsulado e entregue à camada superior.
- Se o endereço IP NÃO for o do próprio host: a tabela de rotas do host é consultada para buscar uma rota que satisfaça o endereço de destino. Caso ela exista, o datagrama é transmitido para o próximo roteador indicado nessa rota.
Os dois videos a seguir ilustram o encaminhamento de um datagrama IP ao longo de uma rede:
Exemplo 1
Exemplo 2
Uma rota serve para informar como se chega a um determinado destino. Um destino pode ser um único endereço IP, ou uma subrede (que contém um conjunto de endereços IP). Para que um pacote IP chegue a um destino, deve-se transmiti-lo para o próximo roteador em direção a esse destino. Esse próximo roteador também deve conhecer uma rota para tal destino, repetindo o mesmo procedimento. Ao menos duas informações compõem cada rota:
- O destino, que é expressado como uma subrede: Uma subrede é representada por um prefixo de rede e uma máscara.
- O próximo roteador, expressado por um endereço IP: o endereço IP do próximo roteador (também chamado de gateway, que significa portal em inglês), o qual deve pertencer à mesma subrede do equipamento que o especifica em uma rota.
No caso em que o endereço de destino não for o do próprio host, esse endereço é comparado com cada rota existente na tabela de rotas. Rotas com máscaras de rede maiores são testadas primeiro (o tamanho de uma máscara é definido pela quantidade de bits 1 que ela possui), pois são rotas para subredes menores e, portanto, mais específicas. Se nenhuma rota servir, o datagrama é silenciosamente descartado.
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:
- Rota para 192.168.2.64/26: ao aplicar a máscara /26 (255.255.255.192) ao endereço de destino 8.8.8.8, obtêm-se o prefixo 8.8.8.0. Como ele é diferente de 192.168.2.64, esta rota não serve.
- Rota para 191.36.9.0/24: ao aplicar a máscara /24 ao endereço de destino 8.8.8.8, obtêm-se o prefixo 8.8.8.0. Como ele é diferente de 191.36.9.0, esta rota não serve.
- Rota para 169.254.0.0/16: ao aplicar a máscara /16 ao endereço de destino 8.8.8.8, obtêm-se o prefixo 8.8.0.0. Como ele é diferente de 169.254.0.0, esta rota não serve.
- Rota para 0.0.0.0/0: ao aplicar a máscara /0 ao endereço de destino 8.8.8.8, obtêm-se o prefixo 0.0.0.0. Como ele é igual a 0.0.0.0 (prefixo da rota), esta rota será usada.
Se outro datagrama tiver endereço de destino 191.36.9.140, a busca pela rota seria:
- Rota para 192.168.2.64/26: ao aplicar a máscara /26 ao endereço de destino 191.36.9.140, obtêm-se o prefixo 191.36.9.128. Como ele é diferente de 192.168.2.64, esta rota não serve.
- Rota para 191.36.9.0/24: ao aplicar a máscara /24 ao endereço de destino 191.36.9.140, obtêm-se o prefixo 191.36.9.0. Como ele é igual a 191.36.9.0 (prefixo da rota), esta rota será usada.
Laboratórios
Roteamento estático | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Cada 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
AtividadesEstes experimentos devem ser realizados no Netkit2, que deve ser executado na máquina real. 1. Para esquentar: uma rede mais simples:
2. Praticamente a mesma rede, mas com um roteador a mais:
Roteamento estático entre redes das equipes
|
Roteamento dinâmico | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Roteamento 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 organizaçõ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.
AtividadesBaseado 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.
|