Mudanças entre as edições de "PJI2-2019-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 2 827: Linha 2 827:
 
{{Collapse bottom | Aula 28}} -->
 
{{Collapse bottom | Aula 28}} -->
  
=30/10/2019: Utilizando o Raspberry Pi (exercícios)=
+
<!-- =30/10/2019: Utilizando o Raspberry Pi (exercícios)=
  
 
{{Collapse top | Aula 29}}
 
{{Collapse top | Aula 29}}
Linha 2 834: Linha 2 834:
  
 
</font>
 
</font>
{{Collapse bottom | Aula 29}}
+
{{Collapse bottom | Aula 29}}-->
  
 
=01/11/2019: Rotas=
 
=01/11/2019: Rotas=

Edição das 10h37min de 4 de fevereiro de 2020

Projeto Integrador II

Professora: Juliana Camilo (juliana.camilo@ifsc.edu.br)
Encontros: 3a feira/19:00, 6a feira/19:00
Atendimento paralelo Profa. Juliana: 4a feira das 13:30hs às 14:30hs e 6a feira das 18:00hs às 19:00hs

Endereço encurtado: http://bit.ly/pji2-2020-1

PPC Curso Técnico Subsequente de Telecomunicações

Conhecimentos

Estrutura de computadores; Operação de sistema operacional Linux; Administração básica de sistema operacional Linux; Introdução a redes LAN e WLAN; Arquitetura de redes TCP/IP e a Internet; Redes de acesso ADSL; Introdução a VOIP.

Objetivos

Capacitar o estudante à: conhecer a estrutura básica de um computador; conhecer o sistema operacional Linux; operar o sistema operacional pelas interfaces gráfica e linha de comando; instalar o sistema operacional Linux em um computador ajustada às necessidades de um usuário, e sua configuração para uso da rede e acesso ADSL à Internet; instalar pacotes de software no sistema operacional; gerir o acesso a recursos mantidos pelo sistema operacional por meio de usuários e permissões; configurar o sistema operacional para usar uma rede com acesso a Internet; compreender o endereçamento de dispositivos na Internet; conhecer e instalar os equipamentos de uma rede residencial (rede local e rede sem-fios); implantar um enlace de acesso a Internet para uma rede residencial usando equipamentos apropriados; resolver problemas de conectividade em uma rede local; analisar comunicações envolvendo protocolos de enlace, rede e transporte entre computadores e/ou equipamentos em uma rede; instalar e configurar terminais VoIP, tais como telefones IP, ATA e softphones, para que possam efetuar e receber chamadas de voz; identificar problemas de comunicação em uma rede, por meio de análise de comunicações entre equipamentos e investigação sobre o comportamento dos elementos de rede.

Bibliografia

  • FOROUZAN, Behrouz A.; FEGAN, Sophia Chung. Comunicação de dados e redes de computadores. Tradução de Ariovaldo Griesi. 4. ed. São Paulo: McGraw-Hill, 2008. 1134 p., il. ISBN 9788586804885.
  • KUROSE, J. e ROSS, K. Redes de Computadores e a Internet: Uma abordagem top-down. Tradução da 3a edição, Addison Wesley, 2006.
  • COLCHER, Sérgio. VOIP: voz sobre IP. Rio de Janeiro: Elsevier, 2005.

Material de apoio

31/07/2019: Apresentação da disciplina. Sistema operacional e introdução ao Linux

Aula 1

Arquivo apresentação da disciplina

Apresentação da disciplina 2019-1

O que é GNU/Linux

Linux é o núcleo do sistema operacional, programa responsável pelo funcionamento do computador, que faz a comunicação entre hardware (impressora, monitor, mouse, teclado) e software (aplicativos em geral). O conjunto do kernel e demais programas responsáveis por interagir com este é o que denominamos sistema operacional. O kernel é o coração do sistema.

Os principais programas responsáveis por interagir com o kernel foram criados pela fundação GNU. Por este motivo é mais correto nos referenciarmos ao sistema operacional como GNU/Linux ao invés de apenas Linux.

Uma distribuição nada mais é que o conjunto de kernel, programas de sistema e aplicativos reunidos num único CD-ROM (ou qualquer outro tipo de mídia). Hoje em dia temos milhares de aplicativos para a plataforma GNU/Linux, onde cada empresa responsável por uma distro escolhe os aplicativos que nela deverão ser inclusos.

Software livre

Open Source

Como o kernel trabalha

Assim que o computador é ligado, o kernel é acionado e começa a detectar todo o hardware que ele possui e o que precisa para funcionar. Após o carregamento, o núcleo assume outras funções: gerenciar os processos, os arquivos, a memória e os dispositivos periféricos, fazendo com que ele seja o “organizador” de tudo o que acontece na máquina.

Após realizar todas essas etapas, o sistema operacional está pronto para funcionar. Ele carrega as funções responsáveis por checar o que deve ser inicializado em nível de software e processos, como, por exemplo, o conteúdo do arquivo /etc/init. Geralmente, o que é carregado é a tela de login do usuário.

Com o usuário logado e o sistema operacional trabalhando, o kernel passa a executar suas funções, como a de controlar o uso da memória pelos programas ou a de atender a chamada de uma interrupção de hardware.

É possível baixar o código-fonte e o próprio kernel do Linux a partir do site oficial. Nesse endereço não só é possível ter a última versão como também mais antigas. Além disso, lá o usuário pode obter informações, reportar bugs e participar de listas de discussão.

Kernel2.jpg

Distribuições Linux

O Linux possui vários sabores e estes são denominados distribuições. Uma distribuição nada mais é que um kernel acrescido de programas escolhidos a dedo pela equipe que a desenvolve. Cada distribuição possui suas particularidades, tais como forma de se instalar um pacote (ou software), interface de instalação do sistema operacional em si, interface gráfica, suporte a hardware. Então resta ao usuário definir que distribuição atende melhor suas necessidades.

Lista de distribuições Linux

Distlinux.jpg

Interface gráfica

Uma das coisas que os usuários mais estranham quando migram para o Linux é a existência de diversas interfaces gráficas, coisa que não é comum no Windows nem no Mac OS X, a não ser quando o fabricante decide fazer alguma alteração. Diferente do que acontece nesses outros sistema operacionais, no Linux é possível mudar a interface gráfica do sistema. Mudando a interface gráfica do sistema, a distribuição Linux continua sendo a mesma mas toda a aparência é alterada. Quem não conhece a diferença entre sistema operacional e interface gráfica pode pensar que se trata de outra distribuição ou até mesmo de outro sistema operacional. As interfaces gráficas mais conhecidas são Unity, Gnome, KDE, XFCE, LXDE, Cinnamon e Mate.

Unity

Unity.jpg

KDE

Kde.jpg

Cinnamon

Cinnamon.jpg

Mate

Mate.jpg

Estrutura de diretórios no Linux

O primeiro choque para quem está vindo do Windows é a estrutura de diretórios do Linux, que não lembra em nada o que temos no Windows. Basicamente, no Windows temos os arquivos do sistema concentrados nas pastas Windows e Arquivos de programas e você pode criar e organizar suas pastas da forma que quiser. No Linux é basicamente o contrário. O diretório raiz está tomado pelas pastas do sistema e espera-se que você armazene seus arquivos pessoais dentro da sua pasta no diretório /home.

Mas, as diferenças não param por aí. Para onde vão os programas que são instalados se não existe uma pasta central como a arquivos de programas? E para onde vão os arquivos de configuração se o Linux não possui nada semelhante ao registro do Windows?

A primeira coisa com que você precisa se habituar é que no Linux os discos e partições não aparecem necessariamente como unidades diferentes, como o C:, D:, E: do Windows. Tudo faz parte de um único diretório, chamado diretório raiz.

Dentro deste diretório temos não apenas todas as partições de disco, mas também o CD-ROM, drive de disquete e outros dispositivos.

Entendendo a estrutura de diretórios


Estrutura de diretórios

Dirlinux.jpg

O que é o Sistema Operacional

O sistema operacional funciona com a iniciação de processos que este irá precisar para funcionar corretamente. Esses processos poderão ser arquivos que necessitam de ser frequentemente atualizados, ou arquivos que processam dados úteis para o sistema. Poderemos ter acesso a vários processos do sistema operacional a partir do gerenciador de tarefas, onde se encontram todos os processos que estão em funcionamento desde a inicialização do sistema operacional até a sua utilização atual.

O sistema operacional é uma coleção de programas que:

  • Inicializa o hardware do computador
  • Fornece rotinas básicas para controle de dispositivos
  • Fornece gerência, escalonamento e interação de tarefas
  • Mantém a integridade de sistema


Qual é o papel de um Sistema Operacional

As funções do sistema operacional são inúmeras:

  • Gestão do processador: o sistema operacional se encarrega de gerenciar o subsídio do processador entre os diversos programas, graças a um algoritmo de escalonamento. O tipo de programador é totalmente dependente do sistema operacional em função do objetivo visado.
  • Gestão da memória RAM: o sistema operacional se encarrega de gerenciar o espaço de memória atribuído a cada aplicativo e, se for o caso, a cada usuário. No caso de insuficiência de memória física, o sistema operacional pode criar uma área de memória no disco rígido, chamada de memória virtual. Ela faz funcionar aplicativos que necessitam de mais memória do que a memória RAM tem disponível no sistema. Por outro lado, esta memória é muito mais lenta.
  • Gestão das entradas/saídas: o sistema operacional unifica e controla o acesso dos programas aos recursos materiais através dos drivers (também chamados de gerenciadores de periféricos ou gerenciadores de entrada/saída).
  • Gestão da execução dos aplicativos: o sistema operacional é responsável pela boa execução dos aplicativos, atribuindo-lhes os recursos necessários ao seu funcionamento. Desta maneira, ele também permite eliminar um aplicativo que não responda corretamente.
  • Gestão dos direitos: o sistema operacional é responsável pela segurança ligada à execução dos programas, garantindo que os recursos sejam utilizados apenas pelos programas e usuários que possuam direitos para tanto.
  • Gestão dos arquivos: o sistema operacional gerencia a leitura e a redação no sistema de arquivos e os direitos de acesso aos arquivos pelos usuários e aplicativos.
  • Gestão das informações: o sistema operacional fornece diversos indicadores para diagnosticar o bom funcionamento da máquina.


Quais são os componentes do sistema operacional

O sistema operacional é composto por um conjunto de softwares que permitem administrar as interações com o hardware. Neste conjunto de softwares distinguem-se os seguintes elementos: o núcleo (kernel), que representa as funções fundamentais do sistema operacional tais como gestão da memória, processos, arquivos, entradas/saídas e das funcionalidades de comunicação; o Intérprete de comandos (shell), ou seja, a camada externa, por oposição ao núcleo, que permite a comunicação com o sistema operacional por meio de uma linguagem de comandos para o usuário pilotar os periféricos ignorando muitas das características do hardware como, por exemplo, a gestão dos endereços físicos; e o sistema de arquivos (file system), que permite registrar os arquivos em arborescência.


Como funcionam os sistemas multitarefas

Um sistema operacional é multitarefas quando várias tarefas (também chamadas de processos) podem ser executadas simultaneamente.

Os aplicativos são compostos por uma sequência de instruções chamados processos rápidos (threads). Estes threads serão alternadamente ativos, no modo de espera, suspensos ou destruídos, de acordo com a prioridade que lhes é associada ou executados sequencialmente.

Um sistema é preemptivo quando possui um programador que reparte, de acordo com critérios de prioridade, o tempo da máquina nos diversos processos que fazem os pedidos.

O sistema é de tempo compartilhado quando uma cota de tempo é atribuída a cada processo pelo programador. Este é o caso principalmente dos sistemas multiusuários, que permitem que vários deles utilizem simultaneamente um mesmo computador e vários aplicativos, diferentes ou similares.

Por fim, o sistema é considerado transacional quando o sistema atribui a cada usuário uma fração de tempo.


Área de trabalho ou Desktop

É a área de exibição quando você liga o computador e faz o logon no sistema operacional. Quando você abre programas ou pastas, eles são exibidos sobre a área de trabalho, Nela também é possível colocar itens, como arquivos e pastas, e organizá-los como quiser. Ela é composta de:

  • Menu iniciar
  • Barra de tarefas
  • Área de notificação
  • Ícones, pastas e atalhos
  • Papel de parede ou plano de fundo.
Desktopwindows.jpg
Área de trabalho Windows


Desktopubuntumate.jpg
Área de trabalho Ubuntu



Explorador de arquivos Caja

O explorador de arquivos exibe a pasta pessoal do usuário, que seria o mesmo que a pasta Meus Documentos do Windows. Porém há uma diferença do Windows, dentro desta pasta é o único local que o usuário pode criar novas pastas ou arquivos.

Cajalinux.jpg

Instalando e desinstalando programas

O Linux está repleto de softwares, mas o que devemos saber é que ele possui u ma Central de programas que permite instalar diversos outros softwares, para diversas áreas.

Houve uma época em que a instalação de pacotes precisava ser feita exclusivamente por comandos no console, o que consumia tempo e exigia um certo trabalho. Era necessário, por exemplo, lidar manualmente com todas as dependências necessárias para a instalação de um software, obedecendo, inclusive, a ordem de instalação desses pacotes. Mas, felizmente, isso ficou no passado.

Hoje existe maneiras bem mais práticas e simples de se instalar e remover programas do Ubuntu. A principal delas é por meio da Central de Programas, que pode ser executada pelo Launcher localizado no lado esquerdo da tela.

Para usar a Central sem problemas é necessário ter uma conexão ativa com a Internet. Afinal, todos os programas estão armazenados em espaços virtuais remotos conhecidos como repositórios.

Centraldeprogramas.jpg


Para instalar uma aplicação, você pode começar navegando pelas categorias posicionadas na lateral esquerda da Central de Programas do Ubuntu. Ao encontrar o programa desejado, clique sobre ele e, em seguida, no botão "Instalar". Por medidas de segurança, é necessário informar a senha do seu usuário para que o software seja instalado com sucesso.

Para remover um programa instalado anteriormente, voltaremos à Central de Programas. Lá, clique no botão "Instalados" para listar todo os softwares presentes no sistema. Depois disso, o procedimento é bastante similar ao de instalação. Basta navegar pelas categorias, selecionar o programa desejado e, em seguida, clicar no botão "Remover". A senha do usuário também será solicitada para que a ação seja efetivamente realizada.


Usando a Central de Programas do Ubuntu

Existem inúmeras maneiras de instalar um software em um sistema operacional. No Ubuntu Mate, a maneira mais rápida e fácil de encontrar e instalar novos aplicativos é através da Central de programas do Ubuntu.

Para acessar, você deve ir em Sistema, Administração e Central de Programas do Ubuntu.


Centralubuntu.jpg

A Central de programas do Ubuntu pode ser usado para instalar aplicativos disponíveis nos repositórios oficiais do Ubuntu. A janela da Central de programas do Ubuntu se divide em seções:

  • Uma lista de categorias, à esquerda;
  • Um banner na parte superior;
  • Um painel "Novidades" logo abaixo do banner superior;
  • Em seguida, um painel "Recomendado para você ";
  • E finalmente, um painel de "Mais bem avaliados" na parte inferior.

Ao clicar em uma categoria você será levado a uma lista de aplicações relacionadas. Por exemplo, a categoria de Internet contém aplicativos como o navegador Firefox.

Cada áreas em destaque como "Novidades" e "Mais bem avaliados", apresenta ícones de aplicação diferentes. Basta clicar em um ícone para obter mais informações sobre a aplicação ou para instalá-lo. Para ver todos os softwares contidos na área, clique no botão "Mais" no canto superior direito de cada painel.

As três seções no topo da Cetral de programas do Ubuntu representam uma visão atual do seu catálogo de Softwares. Clique no botão "Todos aplicativos" para ver todo os aplicativos instalados, clique no botão "Instalados" para ver uma lista de aplicativos já instalados no seu computador e clique em "Histórico" para ver as instalações e exclusões anteriores organizados por data.

Pesquisando aplicativos

A Central de programas do Ubuntu exibe diferentes fontes na seção "Todos os aplicativos". Clicando na seta ao lado de "Todos os aplicativos" irá mostrar uma lista de seções individuais, selecionando "Fornecido pelo Ubuntu" irá mostrar os aplicativos livres oficiais. "Para Compra" mostrará os aplicativos disponíveis para compra, e "Parceiros da Canonical" mostrará os aplicativos de parceiros da Canonical, como a Adobe.

Se você estiver procurando por um aplicativo, você já deve saber seu nome específico (por exemplo, o VLC Media Player), ou você pode apenas ter uma categoria geral em mente (por exemplo, a categoria som som e vídeo inclui uma série de aplicações diferentes, tais como conversores de vídeo, editores de áudio e players de música).

Para ajudar você a encontrar o aplicativo certo, você pode navegar pelo catálogo da Central de programas do Ubuntu clicando na categoria do software que você procura. Ao selecionar uma categoria, será mostrado uma lista de aplicativos, algumas categorias têm subcategorias, por exemplo, a categoria de jogos tem subcategorias para simulação e jogos de cartas. Para mover através de categorias, use o botões "Voltar" e "Avançar" no topo da janela.

Como você vê uma categoria de software, você verá uma caixa de pesquisa no canto superior direito da janela. Esta caixa de pesquisa pode ser utilizada para especificar nomes ou pesquisas de palavras-chave dentro desta categoria.


Centralubuntu2.jpg


Depois de ter encontrado um aplicativo que você gostaria de experimentar, a instalação exigirá apenas um clique.

Para instalar um aplicativo:

  1. Clique no botão "Instalar" à direita do pacote selecionado, se você gostaria de ler mais sobre o pacote de software antes de instalá-lo, em primeiro lugar clique no botão "Mais Informações", logo abaixo do software selecionado. Isso vai lhe dar uma breve descrição do aplicativo, bem como uma imagem e links da web, quando disponível. Pacotes adicionais relacionados serão listados abaixo na descrição do aplicativo. Você pode clique em "Instalar" a partir desta tela também.
  2. Após clicar em "Instalar", digite sua senha na janela de autenticação, esta é a mesma senha que você usa para fazer login na sua conta. Você é obrigado a digitar sua senha sempre que instalar ou remover software, a fim de evitar que alguém sem acesso de administrador faça alterações não autorizadas ao seu computador. Se você receber uma mensagem de falha de autenticação depois de digitar sua senha, verifique se você digitou corretamente e tente novamente.
  3. Aguarde até que o Ubuntu termine a instalação, durante a instalação (ou remoção) de programas, você verá um ícone animado de rotação à direita do botão Histórico na parte superior da tela. Este ícone animado é rotulado de "Progresso". A qualquer momento, clicando no botão de "Progresso" na parte superior irá levá-lo a um resumo de todas as operações que estão sendo processadas no momento. Você também pode clicar no "X" para cancelar quaisquer operações listadas.


Uma vez que a Central de programas do Ubuntu terminou de instalar um aplicativo, ele está pronto para ser utilizado. Você pode iniciar o aplicativo recém instalado, indo para o Painel Inicial e digitar o nome do aplicativo na barra de pesquisa.


Centralubuntu3.jpg


Remover aplicativos

Remover aplicativos é muito semelhante à instalação de aplicativos. Primeiro, encontre o aplicativo instalado na Central de programas do Ubuntu, você pode clicar no Botão "Instalados" para ver todos os aplicativos instalados listados por categorias. Vá até o aplicativo que você deseja remover, se você clicar na seta ao lado ao botão "Instalados", você vai encontrar uma lista de fornecedores de aplicativos, que pode ajudá-lo a refinar a sua pesquisa. Você também pode digitar palavras-chave na busca campo para encontrar rapidamente aplicativos instalados, ou você pode pesquisar por data na Guia "Histórico".

Para remover um aplicativo:

  1. Clique no botão "Remover" na direira do aplicativo selecionado.
  2. Digite sua senha na janela de autenticação, semelhante à instalação de aplicativos a remoção de aplicativos requer sua senha para ajudar a proteger o seu computador contra alterações não autorizadas. O pacote será então colocado em fila para a remoção e aparecerá na seção progresso até que ele termine de remover.


Centralubuntu4.jpg


Histórico de aplicativos

A central de programas do Ubuntu mantém o controle dos aplicativos já instalados na seção Histórico. Isso é útil se você quiser reinstalar um aplicativo previamente removido e não se lembra o nome do aplicativo. Há quatro botões na seção: "Todas as alterações", "Instalações", "Atualizações" e "Remoções". Se você clicar na seta ao lado de um dia, uma lista de pacotes individuais serão exibidos, juntamente com o que foi feito com eles e a hora.


Centralubuntu5.jpg


Exercícios

1 - Explique o que é:

  • Kernel;
  • Sistema Operacional;
  • Interface gráfica;

2 - Qual a diferença entre os sistemas de arquivos do Windows e Linux?

3 - Mude a proteção de tela para Cosmos com tempo de espera de 10 minutos.

4 - Através da Central de programas do Ubuntu Mate, instale os seguintes programas:

  • Tux paint;
  • Gnucash;
  • SuperTux Kart.

5 - Crie um diretório dentro da pasta pessoal do aluno com o nome exercicios.



















01/11/2019: Rotas

Aula 30

Como visto anteriormente, cada dispositivo em uma rede precisa ter um endereço IP para que possa se comunicar com outros dispositivos. Porém isso não é suficiente: os dispositivos devem saber que direção devem enviar mensagens para que cheguem até cada outro dispositivo. Se o dispositivo de destino estiver na mesma rede, então basta transmitir o pacote a ele diretamente. Mas e se ele estiver em outra rede ? Por exemplo, e se um computador no laboratório de Redes 1 quiser se comunicar com outro que está na reitoria do IFSC ? Como esse pacote deve ser transmitido nesse caso?


Pji-projeto2-rotas.png


Antes de prosseguir na investigação desse assunto, é necessário uma visão geral sobre redes de computadores e a Internet. Isso deve ajudar a entender como as comunicações acontecem nessa grande rede.


No diagrama que mostra simplificadamente a rede do projeto 2, a rede externa é representada como uma nuvem. Isso significa que sua estrutura interna é desconhecida, ou não é relevante mostrá-la. No caso da Internet, na verdade seria impossível apresentar toda sua estrutura, pois essa rede hoje em dia é gigantesca, além de estar sempre em mutação. Mas ao menos um esboço da rede do Ifsc pode ser apresentado, como se pode ver a seguir. Ao visualizá-la, deve-se novamente imaginar como é possível encaminhar pacotes através dela, de forma que cheguem a seus destinos.


Ifsc.png
Uma visão geral da rede do Ifsc (e bem simplificada !)


Em primeiro lugar, deve-se imaginar como a Internet está implantada (ao menos do ponto de vista das subredes). A palavra internet significa rede composta por redes, e, no caso da Internet, cada uma das redes que a constitui é chamada de subrede. Se alguém pudesse ver o mapa da Internet, pareceria uma grande malha, com milhares de fios (enlaces) se entrelaçando. Nas junções desses fios estão equipamentos que roteiam (direcionam) pacotes a seus destinos. Os equipamentos finais, que são usados por pessoas para rodas os aplicativos de rede, estão na borda de toda essa malha ... nas pontas dos fios. No fim, isso parece um grande mapa, e como tal ele pode ser percorrido por um ou mais caminhos para se ir de um ponto a outro.


Um mapa da Internet (bem abstrato ...) Rede Ipê: a Rede Nacional de Pesquisa que originou a Internet no Brasil
Internet-map.png Rede-ipe-2014.jpg


Essa analogia do mapa pode ser experimentada usando o Google Maps. Experimente traçar caminhos entre o IFSC-SJ e vários destinos (mesmo em outras cidades), e visualize como ele descobre o caminho. Observe também que critério é usado para escolher o caminho ... pois é normal que exista mais de uma opção.

Mas o que isso tem a ver com redes ? Muita coisa: a forma com que o Google Maps descobre caminhos se baseia nos mesmos conceitos usados para descobrir rotas entre dispositivos na Internet. E voltando a redes de computadores, também é possível descobrir que caminho os pacotes percorrem para ir de um ponto a outro na Internet.

Experimento:: use o programa traceroute para descobrir os caminhos percorridos por seus pacotes. Teste-o com vários possíveis destinos:

  • www.ufsc.br
  • www.unicamp.br
  • www.brasil.gov.br
  • www.nasa.gov
  • english.pravda.ru
  • www.china.org.cn
  • finland.fi

O que significam as informações mostradas por esse programa ?


Estes outros aplicativos descobrem rotas e as mostram sobre um mapa mundial.

Rotas no Linux

Cada computador ligado a Internet possui uma tabela de rotas. É por meio de tal 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


Ao se configurar uma interface de rede, cria-se uma rota automática para a subrede diretamente acessível via aquela interface. Isto se chama roteamento mínimo. Por exemplo, se uma interface de rede foi configurada com o endereço IP 192.168.10.1/16, sua tabela de rotas pode se apresentar assim:

aluno@M1:~> ifconfig eth1 192.168.10.1 netmask 255.255.0.0
aluno@M1::~> netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo


Usualmente, é suficiente definir uma única rota adicional para um computador, chamada de rota default (ou rota padrão). Essa rota tem o seguinte significado: se o destino não estiver em minha própria subrede, e nenhuma outra rota específica existir para a subrede onde se encontra, então repasse o pacote para o roteador indicado. Em um computador Linux isso pode ser feito assim:

# adiciona a rota default, que passa pelo roteador 192.168.10.100
route add default gw 192.168.10.100


Outra forma de adicionar essa rota é:

# este comando tem o mesmo efeito que o anterior ...
route add -net 0.0.0.0/0 gw 192.168.10.100


Por fim, uma rota para um destino qualquer pode ser feita assim (supondo que a rede de destino seja 191.36.9.0/24):

# este comando define que para chegar à rede 191.36.9.0/24 
# deve-se usar o gateway 192.168.1.1
route add -net 191.36.9.0/24 gw 192.168.1.1


Isso não parece complicado, e à primeira vista realmente não é :-) Ao se instalar um novo equipamento em uma rede, seja um computador, tablet, ponto de acesso ou smart TV, basta configurá-lo com a rota default para que possa se comunicar com a Internet. Na verdade, nem isso normalmente é necessário, pois esses equipamentos são capazes de se autoconfigurarem como mágica (mais tarde veremos como !). Porém existe uma matemática interessante por trás de como essas rotas funcionam, e vale dar uma olhada.

Rotas, prefixos de rede e máscaras

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 processo (reveja o experimento com 'traceroute). Ao menos duas informações compõem cada rota:

  • 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.
  • O destino, que é expressado como uma subrede: Uma subrede é 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:


Pji-prefixo1.png


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:


Pji-prefixo2.png


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:


Pji-prefixo3.png


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

O que todo host deve possuir

Com o que se fez até o momento, pode-se concluir que todo host (computador, tablet, smartphone, ..., qualquer dispositivo que rode aplicações da Internet) precisa de:

  • Endereço IP e máscara de rede: um host precisa de um endereço para que possa se comunicar com outros hosts. A máscara de rede informa o tamanho da subrede IP em que ele se encontra.
  • Rota default (padrão): para se comunicar com hosts de outras subredes, é preciso enviar os pacotes para um roteador que saiba encaminhá-los a seus destinos. O roteador default (ou padrão) é um roteador para quem se destinam todos esses pacotes. Tecnicamente ele corresponde à rota para o destino 0.0.0.0/0.
  • Endereço IP do servidor DNS: usuários costumam endereçar hosts e servidores por seus nomes de domínio, e não por seus endereços IP. Isso é muito mais fácil de memorizar do que os endereços numéricos. Como explicado em aula, nomes de domínio são análogos a nomes de assinantes em um catálogo telefônico. No entanto, as aplicações precisam dos endereços IP para se comunicarem. O servidor DNS faz a tradução de nome de domínio para endereço IP, e é usado pelas aplicações transparentemente (isso é, você não percebe que isso ocorre). O endereço desse servidor deve ser configurado em cada host, para que se possam traduzir nomes de domínio.

Exercícios

  1. Para os cenários a seguir, especifique o passo a passo para que todos os PCs se comuniquem entre si.
PJI2-rotas-Rede1.jpg
Rede 1
PJI2-rotas-Rede2.jpg
Rede 2
PJI2-rotas-Rede3.jpg
Rede 3
PJI2-rotas-Rede4.jpg
Rede 4

OBS: Os experimentos de Rotas serão feito na ferramenta Netkit2 na máquina real, e os arquivos para os experimentos estão disponíveis em www.docente.ifsc.edu.br/juliana.camilo/PJI2

06/11/2019: Rotas (continuação). Recuperação Av2

Aula 31

08/11/2019: Definição e Início do Projeto Final

Aula 32

IMPORTANTE


08/11/2019 - Início do desenvolvimento do projeto final.

11/12/2019 - Última data para apresentação do projeto final.

13/12/2019 - Recuperação Final.


Todas as configurações/orientações abaixo deverão ser efetuadas no computador de cada integrante do grupo.


1. Instalação de uma nova máquina virtual - Efetuar a instalação do ubuntu Mate 18.04 na máquina virtual Gráfico 2. O nome do computador deve ser pji2-avaliacao-nome_aluno (substitua o nome_aluno pelo seu primeiro nome).

2. Após instalar o sistema operacional, instale o adicional de convidados do VirtualBox e todas as dependências necessárias.

3. Configure o IP fixo em sua placa de rede (as informações serão fornecidas pelos professores) mas deixe-as comentadas para não dar conflito com a rede do laboratório. Essa atividade não poderá ser testada, será só uma simulação de como seria em uma máquina real.

4. Crie 5 usuários usando o comando adduser.

5. Defina a senha de cada um dos usuários.

6. Crie o grupo Projeto.

7. Adicione os usuários criados a este grupo.

8. Acrescente, por comandos, ao perfil do usuário seu nome completo e endereço.

9. Adicione o repositório do Google Chrome e do Libreoffice 6 e instale este aplicativos.

10. Instale o editor de texto VIM, Zoiper, K3B e VLCMediaPlayer.

11. Crie 2 partições primárias, 1 estendida e 3 lógicas no disco virtual adicional (disco que não foi utilizado para a instalação do sistema operacional) no VirtualBox. Formate as partições com diferentes sistemas de arquivo. Monte cada uma delas em um diretório diferente.

12. Crie um servidor FTP sem acesso anônimo e com as seguintes características:

1. O diretório de acesso de todos os usuários deve ser /srv/ftp/projeto
2. O grupo de acesso dos usuários do servidor FTP deve ser ftpprojeto
3. Deve ser criado um usuário chamado ftp, sem acesso ao terminal, e acesso somente ao diretório /srv/ftp/projeto, para o acesso ao servidor FTP
4. Os usuários criados também deverão ter acesso ao servidor FTP no diretório /srv/ftp/projeto.

13. Instale um servidor SSH e faça com que o usuário root não tenha acesso via SSH. Também mude a porta padrão para 2222.

14. Faça a configuração das rotas estáticas para a rede no arquivo rede.conf disponível em: http://docente.ifsc.edu.br/juliana.camilo/PJI2/Projeto_final/ de modo que todos os Pcs consigam se comunicar. OBS: As subredes disponíveis para endereçamento são 10.0.1.0/24, 172.20.20.16/30, 192.168.12.0/24, 10.10.0.0/29, 192.168.18.0/24, 172.30.30.0/30 e 10.20.0.0/24. Como as configurações do Netkit são apagadas cada vez que iniciamos o software, apresentem essa atividade para as professoras assim que conseguirem finalizá-la.

As configurações/orientações 15 e 16 abaixo deverão ser efetuadas pela dupla.

15. Instalação do sistema operacional no Raspberry Pi3 - Efetuar a instalação do ubuntu Mate. O nome do computador deve ser Projeto(nº do seu grupo). Deve existir um usuário pji2 com a senha pji22019, também crie os mesmos usuários que foram criados na máquina virtual. Repita as etapas de 3 a 13 (sendo que o Zoiper não precisa ser instalado), e não faça o item 11.

16. Efetue o backup utilizando a ferramenta TAR com a extensão tar.gz dos seguintes diretórios (No Virtual Box):

1. /srv/ftp
2. /home

Cálculo nota final do projeto:

NPF--> Nota do projeto final NI--> Nota Individual NG--> Nota do Grupo

NPF = NI x 0.7 + NG x 0.3

onde NG = (NI_integrante1 + NI_integrante2)/2.