PJI-2016-1

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Endereço encurtado: http://bit.ly/pji20161


Projeto Integrador I: Diário de Aula 2016-1

Professores: Marcelo Maia Sobral (Facebook2.png Facebook) e Simara (simara.sonaglio@ifsc.edu.br)
Encontros: 2a feira/18:45, 4a feira/19:00
Atendimento paralelo: 2a e 4a feira 18:30 h
Coordenadoria pedagógica (Graciane): graciane@ifsc.edu.br (3381-2890, 3381-2842)

Objetivo Geral

Implantar rede de dados e telefônica de pequeno porte, típica de um pequeno escritório.

Ementa

Introdução e histórico das telecomunicações e da Internet. Uso de serviços e aplicações oferecidos pelas redes de telecomunicações. Conceitos sobre redes de computadores: comutação de pacotes versus comutação de circuitos, redes locais e rede Internet. Instalação de computadores e integração a uma rede local e a Internet. Sistema operacional Linux. Introdução ao sistema telefônico: telefonia fixa e móvel, centrais de comutação, telefonia IP e convergência. Integração de serviços de voz convencionais e VoIP.

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

Recursos

Existe um computador com Linux no câmpus que pode ser acessado remotamente. Nele se podem realizar atividades e exercícios. O acesso pode ser feito desta forma:

  1. Obtenha um programa cliente SSH:
    • Para qualquer sistema operacional, pode-se usar o Google Chrome (ver este tutorial, mas mude o nome de usuário e endereço do computador, conforme informações mostradas no passo 2).
    • Para o Windows pode-se usar o putty (veja este tutorial .. mas ignore a parte que menciona servidor X em diante)
    • Para o MacOS-X, Linux, FreeBSD e outros, use o programa ssh que já está instalado nesses sistemas operacionais.
  2. Conecte ao computador do câmpus usando o programa SSH.
    • Endereço do computador: prg2.sj.ifsc.edu.br
    • Usuário: aluno
    • Senha: <a ser informada em aula>
    • OBS: no caso do Linux, MacOS-X e FreeBSD, pode-se usar o programa ssh da seguinte forma:
      ssh aluno@prg2.sj.ifsc.edu.br
      

Curiosidades

Avaliações

As avaliações serão de dois tipos:

  • Projetos: feitos em equipe, serão avaliados de acordo com o cumprimento dos objetivos previamente determinados. Na apresentação do projeto, uma entrevista será feita para definir o conceito concedido a cada membro da equipe.
  • Testes: feitos individualmente, serão aplicados semanalmente no início da aula. O conteúdo para esses testes serão textos informados com uma semana de antecedência, assim como as técnicas e assuntos vistos em aula. A avaliação de cada teste será dada com um dos conceitos S (suficiente) e I (insuficiente).


O conceito final será calculado da seguinte forma:

  • 9 a 10: ao menos dois projetos A e um projeto B
  • 7 a 9: ao menos dois projetos B em um projeto C
  • 6: ao menos C em todos projetos


Além disso, os testes ajustam o conceito final da seguinte maneira:

  • Incrementa: se pelo menos 75% dos testes S, incrementa conceito final em um nível (ex: B sobe para A)
  • Mantém: se pelo menos 40% dos testes S, mantém conceito final
  • Decrementa: se menos de 40% dos testes S, decrementa conceito final em um nível (ex: A reduz para B)

Projetos

Nome Projeto 1 Projeto 2 Projeto 3 Conceito Conceito
após ajuste
Faltas
Eduardo B A A 9 9
Elizete D (3)
Fernando L. C C C 6 6
Fernando K. A B B 8 8
Gilmar C D D
Israel A B B 8 9
Jadson D*
Jailson B B B 8 8
Jeferson D (4) C C
Jhonnattan A
Katia A B B 8 8
Lucas O. C
Lucas B. B C C 6 6
Luiz Filippi D (4) C C
Maicom A A A 9 9
Marcelo Fabiano C
  • OBS: D* = Indefinido (por ausência à avaliação)
  • OBS 2: conceito acompanhado de ? = falta o relatório do projeto

Testes

Nome T1 T2 T3 T4/PC T5 T6 T7 T8 T9 T10 T11 Ajuste
Eduardo I I S I* S I I S mantém
Elizete I I S S I* I*
Fernando L. I I S S I I I S mantém
Fernando K. S I S S S I I I mantém
Gilmar S I I* I I I I I reduz
Israel S I S S S I S S aumenta
Jadson S I* I* I* I* I*
Jailson S I S S S I I S mantém
Jeferson I I S S S I I S mantém
Jhonnattan D* S S S I* I*
Katia S I S S S I I I mantém
Lucas O. I* I I* I* S I I* I*
Lucas B. S I S I S I S S mantém
Luiz Filippi I* I S I S I I I reduz
Maicom I S S I* I* I I S mantém
Marcelo Fabiano S I* S S I* I*

Obs: I* = não fez o teste

Equipes

Equipe Membros
1 Elizete, Fernando K., Katia
2 Fernando L. Israel, Jeferson
3 Jailson, Jhonnattan, Marcelo
4 Eduardo, Lucas O., Maicom
5 Lucas M., Luiz, Gilmar
6
7

23/03: Apresentação da disciplina

Aula 1
  1. Apresentação: Página do Curso Técnico em Telecomunicações
  2. Apresentação de videos sobre a área de Telecomunicações
  3. Breve discussão sobre Panorama atual das telecomunicações, que pode ser complementada com outras informações
  4. O perfil do Técnico em Telecomunicações em vagas ofertadas
  5. Uma atividade final sobre comunicação de dados

Alguns textos interessantes

Oportunidades para Técnicos em Telecomunicações

Documentários sobre telecomunicações

Uma introdução a comunicação de dados

Comunicação dados pode ser entendida como troca de informação entre dois dispositivos através de algum meio de comunicação. A comunicação ocorre no âmbito de um sistema de telecomunicações, composto por equipamentos (hardware) e programas (software). Um sistema básico de comunicação de dados se constitui de cinco componentes:

Rede-intro-1.png

  1. A mensagem: a informação a ser transmitida. O conteúdo da mensagem, seja um texto, música, video, ou qualquer outro tipo de informação, é representada por conjuntos de bits (dígitos binários).
  2. Transmissor: dispositivo que transmite a mensagem.
  3. Receptor: dispositivo que recebe a mensagem.
  4. Meio de comunicação: caminho físico por onde viaja a mensagem do transmissor até o receptor.
  5. Protocolo: conjunto de regras que governa a comunicação de dados.

Atividade

  • Proponha uma solução para:
    • conversar com uma pessoa que está em outra cidade .. e em outro país
    • conversar com uma pessoa que está pescando nas Ilhas Moleques do Sul
    • enviar um documento para outra pessoa, independente de qual cidade esteja
    • monitorar sensores de correntes em bóias marítimas que estão longe da costa ... e se estiverem perto da costa ?
    • controlar um mini-submarino a partir de um barco na superfície
    • copiar um arquivo de um computador para outro
    • escutar músicas em um tablet ou smartphone, sendo que inicialmente não estão nesses dispositivos
    • assistir a um filme que está em um arquivo em outro computador
    • acessar remotamente uma webcam que monitora uma residência.
  • Como funciona cada solução sugerida ?
  • O que todas têm em comum ?
  • Demonstre cada solução proposta por meio de um experimento (isso é, na prática).

28/03: Conceitos básicos e início do projeto 1

Aula 2

Nesta aula, será feito o seguinte:

  1. Apresentação do tema do Projeto 1
  2. Pesquisa sobre opções para realização do projeto

Apresentação do Projeto 1

O projeto 1 tem por objetivo:


Implantar um serviço de compartilhamento de midia por meio de uma rede de computadores residencial


Isso pode ser detalhado da seguinte forma:

  • O cenário: rede local de alcance reduzido. Uma residência ou pequeno escritório, por exemplo.
  • O problema: armazenar e distribuir mídia em geral para os dispositivos em rede. Músicas, filmes, fotos, etc. Uma casa com vários cômodos ou um escritório com música ambiente.
    • reproduzir midia em e vindo de laptops, desktops, tablets e smartphones
    • reproduzir midia em TVs LCD/LED/Plasma
    • reproduzir midia em amplificadores de audio, ou dock stations
    • controlar a reprodução com controle remoto
    • ... possivelmente outras funcionalidades !
  • Como fazer: pesquisa de ferramentas de armazenamento, organização/catalogação e distribuição de mídia em rede. Compartilhamento automatizado/facilitado para o usuário final.
  • O que usar: sistema operacional Linux, aplicações em rede.


Pji-video-sharing.jpg


Uma pequena rede interliga possivelmente computadores, smartphones, tablets e laptops. Em um ou mais dos computadores existem videos e músicas, que podem estar organizados em listas de reprodução ou por categoria (ex: os videos podem estar classificados por gênero, além de terem uma sinopse obtida do IMDB). As pessoas que usam essa rede gostariam de poder integrar seus dispositivos, de forma a poderem neles reproduzir esses videos e músicas. Assim, eles poderão assistir ou ouvir o que quiserem em qualquer parte do ambiente. Além disso, o contrário também poderia ser desejável: uma pessoa poderia reproduzir em um computador, ou mesmo na TV, videos, músicas e fotos que estão armazenados em seu smartphone ou tablet.


Do ponto de vista da aprendizagem, o projeto 1 tem por objetivos:

  • Usar as interface gráfica e de linha de comando do sistema operacional Linux para operações básicas:
    • Visualizar, copiar, remover e criar arquivos e diretórios
    • Executar programas e terminar processos
    • Editar arquivos de texto simples em modo gráfico ou texto
    • Instalar pacotes de software
  • Usar a rede de computadores, o que implica
    • Referenciar recursos na rede por meio de URL
    • Usar programas apropriados para cada tipo de aplicação de rede
    • Selecionar e usar programas apropriadas para cada necessidade


Começando o projeto

  1. Conheça a rede onde deseja compartilhar videos, músicas e fotos. Veja seus dispositivos e equipamentos de comunicação, e como estão interligados. Veja que programas já existem nos computadores e os sistemas operacionais que estão instalados. Procure entender como um dispositivo móvel (smartphone ou tablet) se integra a essa rede.
  2. Entenda bem o que você quer implantar na sua rede, e como espera que funcione. Se acreditar que lhe ajuda, faça diagramas que mostrem como os dispositivos compartilharão e reproduzirão conteúdos por meio da rede. Você pode também enumerar as situações em que as pessoas farão uso da estrutura que você pretende implantar.
  3. Procure identificar o material necessário e os programas (softwares) que vão desempenhar essas funções. Quer dizer, aqui vale a pergunta "... o que eu preciso para fazer tal coisa ?" e "... como isso será usado ?".
  4. Você certamente precisará usar ao menos um computador com sistema operacional Linux. O que é necessário conhecer para poder utilizá-lo a contento ?

Identificação de softwares para centro de midia

A investigação da turma teve como fruto um conjunto de possíveis softwares para usar no projeto. A escolha de um desses softwares depende dele ser capaz de atender os requisitos listados na descrição do projeto. Assim, a tabela abaixo pretende sistematizar o cumprimento dos requisitos por esses softwares.

Software Reproduz videos Reproduz musicas Apresenta fotos Acessa midia remota Controle remoto Reproduz em outro dispositivo Reproduz vindo de outro dispositivo Linux Gratuito
Kodi/XBMC x x x x x x x x x
Real Player x x x x x x x ??
Moovida/Elisa
Emby ?? x x x x
Linux MCE
TVersity +- +- +- x x x ?? +-
Plex +- +- +- x x x ?? x +-
OpenElec x x x x x x x x x
VLC Media Player x x x +- +- x x
Enna x x x x x x
JRiver
Stremio
MediaPortal

Uma visão geral (dos professores) sobre o projeto 1

A realização do projeto 1 envolve a compreensão de um conjunto de conceitos. O mapa conceitual abaixo procura resumir as ideias envolvidas, e como elas se relacionam. Esse mapa pode ser melhorado ao longo do projeto !


Pji1-projeto1-cm.jpg

30/03: Projeto 1: escolhendo e instalando o media center

Aula 3

Na aula de hoje, será realizado o seguinte:

  1. Instalação do centro de midia escolhido
    • Usar a interface gráfica de um sistema operacional Linux
    • Usar um navegador web para acessar páginas e transferir arquivos
    • Usar a interface de linha de comando no Linux
    • Instalar programas segundo instruções contidas em um manual
  2. Introdução ao Sistema Operacional Linux
  3. Realização de algumas atividades para ambientação com o Linux

Instalação do centro de midia

Na aula anterior vocês procuraram por softwares que pudessem satisfazer as necessidades apontadas no projeto. Muitos softwares existem, dentre eles Kodi, Miro, Universal Media Server e Plex (devem existir ainda outros ...). Com base na tabela comparativa feita na aula passada, cada equipe deve escolher um deles para instalá-lo. Nosso objetivo é cada equipe ter um media center básico funcionando ao final da aula.

Xbmc about.jpg Plex.png

Instalando o Kodi

  1. Execute o VirtualBox, e escolha a máquina virtual 4-Grafico. Os próximos passos deverão ser realizados dentro dessa máquina virtual.
  2. Acesse o site do Kodi.
  3. Esses sites sobre programas costumam ter uma página com instruções de instalação. Usualmente elas são acessadas pelo link Download. Procure esse link na página principal do site do Kodi, e siga-o.
    Página de donwload do Kodi.
  4. Leia as instruções de instalação do Kodi no Ubuntu Linux, que é o sistema operacional que iremos usar.
  5. Siga as instruções, que evolve várias etapas, para que, ao final, se tenha o Kodi instalado.

Apesar do guia acima parecer curto e fácil, ele implica alguns conhecimentos para ser realizado a contento - e entendido ! Uma compreensão sobre o que é o sistema operacional Linux, quais seus elementos básicos, e como ele pode ser utilizado, são necessários para essa tarefa. Mas veremos isso à medida que instalarmos o Kodi.

Algumas atividades para o uso do sistema operacional

Ao longo do projeto 1 (e também do projeto 2) diversas atividades precisarão ser realizadas com o sistema operacional. Algumas delas são bastante corriqueiras, e por isso acabam sendo realizadas desde as primeiras vezes em que se usa o sistema. Elas envolvem:

  • Iniciar e encerrar uma sessão no Linux: sessões são iniciadas quando um usuário se autentica no sistema operacional, iniciando sua interface de trabalho (gráfica ou textual) e executando seus aplicativos. O término da sessão encerra todos os programas em execução iniciados pelo usuário (há exceções).
  • Familizarização com a interface gráfica: a interface gráfica se apresenta como a interface preferencial para a grande maioria dos usuários. Ela oferece um acesso intuitivo para aplicativos e arquivos.
  • Usar o navegador de arquivos Caja: o acesso a arquivos e diretórios (ou pastas) pode ser feito com o navegador de arquivos. Esse aplicativo gráfico apresenta diversas facilidades para trabalhar com arquivos e diretórios. Obs: no Ubuntu oficial, esse programa se chama nautilus, mas no Ubuntu-mate usado no laboratório ele se chama caja.
  • Executar programas: programas podem ser executados com ajuda do sistema operacional. Basicamente podem-se classificá-los em aplicativos, que realizam tarefas para as finalidades do usuário (ex: editar texto, navegar na web), e utilitários, que servem para ajudar a usar o ambiente do sistema operacional (ex: shell, programas de cópia de arquivos). Programas podem ser executados tanto a partir da interface gráfica quanto da linha de comando.
  • Operar sobre diretórios: o uso do sistema operacional e do seu ambiente de trabalho envolve também lidar com diretórios. Operações tipicas incluem navegar, criar, remover, remover recursivamente, listar, copiar e renomear diretórios.
    • Trabalhar o conceito de nomes de arquivos e diretórios absolutos e relativos: usando ".", "..", "~" e "-"
    • Trabalhar o conceito de diretório de trabalho e de diretório de entrada:
  • Operar sobre arquivos: arquivos são a forma usual de armazenamento persistente de informações no computador. Praticamente todos os dados acessados residem em arquivos, tais como textos, planilhas, videos, músicas, e outros. Assim, deve-se saber como criar, remover, renomear e listar arquivos.
  • Usar o manual online (man): para ajudar o acesso à documentação do sistema operacional existem manuais online tanto em modo texto quanto gráfico. No modo texto, o comando man possibilita acesso a textos detalhados sobre inúmeros aspectos do sistema.
  • Outros: trabalhar o conceito de arquivo escondido e usar TAB para autocompletar nomes no shell;

Exercícios

Para exemplificar as atividades típicas de uso do sistema operacional, faça o seguinte:

  1. Inicie e encerre uma sessão no Linux:
    • Faça primeiro pela interface gráfica
    • Repita em seguida pela interface de linha de comando (modo texto). Obs: tecle CTRL + ALT + F1 para ter acesso a interface em modo texto, e CTRL + ALT + F7 para voltar à interface gráfica.
  2. Inicie novamente uma sessão em modo gráfico:
    • Explore o menu, observando os submenus e as categorias de aplicativos
    • Ao identificar o aplicativo para navegar por arquivos e diretórios, observe como o diretório pessoal do seu usuário está organizado. Explore outros diretórios, para ter uma ideia do que existe no disco do seu computador.
    • Experimente executar diferentes aplicativos disponíveis no menu. Por exemplo, procure um editor de textos, de planilhas, de imagens, e outros que achar interessante.
    • Procure por um programa chamado terminal ou xterm. Execute-o e veja o que ele faz.
    • Digite firefox no terminal e tecle ENTER
    • Ainda no terminal, tecle a combinação de teclas CTRL C
    • Digite galculator no terminal e tecle ENTER
    • Ainda no terminal, tecle a combinação de teclas CTRL Z. Em seguida, digite bg e tecle ENTER
    • No terminal digite mate-system-monitor e tecle ENTER
    • Execute outro terminal e nele digite kodi seguido da tecla ENTER
    • Em qualquer terminal, digite killall galculator e tecle ENTER
    • O que se pode concluir sobre o terminal ?


04/04: Projeto 1: Instalando fontes de mídia locais

Aula 4

Na aula de hoje, será realizado o seguinte:

  1. Conclusão dos exercícios da aula anterior
  2. Fontes de midia locais no Kodi
  3. Visualizando o conteúdo dos arquivos
  4. Manipulação de arquivos e diretórios
  5. Atividade: um pequeno desafio

Instalação de fontes de midia locais no Kodi

Crie três fontes locais de midia no Kodi: uma para videos, outra para musicas e uma terceira para imagens. Em seguida copie arquivos de midia para seu computador e organize-os para que possam ser acessados por meio do Kodi. Caso não tenha em mãos esses arquivos de midia, use o seguinte:


Além disso, procure por arquivos de video e de música em seu computador, e copie-os para as respectivas fontes de midia do Kodi.

Visualizando o conteúdo dos arquivos

Cada arquivo guarda um certo tipo de informação. Para poder visualizá-lo corretamente, deve-se usar um programa capaz de entender seu conteúdo, e mostrá-lo da forma esperada. Por exemplo, arquivos de video, música e imagem são reproduzidos pelo Kodi e outros programas. Arquivos de texto são visualizados e editados com editores de texto, e assim por diante. De forma geral, (quase) sempre existe ao menos um programa que sabe mostrar o conteúdo de um certo tipo de arquivo. Por convenção, o tipo de um arquivo é informado por sua extensão, que é a parte final do seu nome que vem após o . (ex: video.avi tem extensão .avi).


Como exercício, procure programas capazes de mostrar estes tipos de arquivos:

  • Videos com extensão .mp4, .avi, .mkv e .wmv
  • Músicas com extensão .mp3, .wav, .flac, .ogg e .wma
  • Imagens com extensão .png, .jpg, .gif, .bmp e .pnm
  • Textos com extensão .txt, .rtf, .doc, .docx e .odt
  • Arquivos com extensão .dia, .ods, .php, .html, .xml

Os programas encontrados devem poder ser usados tanto no modo gráfico quanto em linha de comando (se possível).


Mas, afinal, o que existe dentro dos arquivos ? Em que medida um arquivo de video, música, ou texto diferem em seus conteúdos ? Posto de outra forma, se não houvesse a extensão para informar o tipo de arquivo, seria possível identificá-los observando seus conteúdos ? Afinal, que conteúdo é esse ?

06/04: Projeto 1: continuação das atividades sobre linha de comando

11/04: Projeto 1: continuação dos exercícios sobre linha de comando

13/04: Projeto 1: transmitindo a midia pela rede

Aula 7

Na aula de hoje, será realizado o seguinte:

  1. Introdução a permissões de arquivos e diretórios
  2. Atividade: um pequeno desafio
  3. Transmitindo a mídia pela rede
    1. Atividade

Um pequeno desafio


Em seu diretório home (pasta pessoal) existem alguns arquivos de video obtidos com sua câmera fotográfica, porém você não sabe exatamente onde estão. Além disso, esses videos são codificados na máquina fotográfica com o codec MJPG, que gera arquivos muito grandes. Se forem recodificados para codec XVID, os tamanhos desses videos serão reduzidos substancialmente (4 vezes ou mais). Sabendo que existem programas que podem recodificá-los no modo texto, faça o seguinte:

  1. Localize esses arquivos de video MJPG
  2. Identifique algum programa capaz de fazer essa mudança de codificação (chamada de transcodificação).
  3. Use esse programa para transcodificar esses videos para codec XVID.
  4. Ao final do processo, copie-os para uma fonte de midia do Kodi e visualize-os

Transmitindo a midia pela rede


Na aula passada foi visto como cadastrar fontes de midia locais. Essas fontes são na verdade diretórios existentes nos discos do computador onde roda o próprio Kodi. Os arquivos de midia nesses diretórios podem assim ser facilmente reproduzidos pelo media center. O Kodi também é capaz de acessar arquivos de midia em fontes remotas - i.e. que são fornecidas por outros computadores através da rede. Por exemplo, inclua a seguinte fonte de video em seu Kodi, chamando-a de tele (seu caminho deve ser exatamente a URL mostrada abaixo):

A câmera IP mostrada em aula está nesta URL:

  • rtsp://aluno:aluno@192.168.1.248:554/

Em seguida, acesse o menu de videos do Kodi e veja os videos existentes em tele. Tente reproduzir um deles ...

Atividade

Investigue as outras formas de cadastrar fontes de midia remotas disponíveis no Kodi. Para cada uma delas, procure entender como funciona, e qual o método de acesso utilizado.

18/04: Projeto 1: ajustes finos no centro de midia

Aula 8

Na aula de hoje, será feito o seguinte:

  1. Atividade da aula anterior
  2. Compartilhando vídeos entre Kodi
    1. Desafios
    2. Comunicação de dados
  3. Introdução a editores de texto

Compartilhando videos entre Kodi


Pji1-Dlna.jpg


A atividade anterior mostrou como o Kodi pode obter midia que está armazenada em outros computadores. Mas ele pode também fornecer midia para outros dispositivos. Por exemplo, um computador com Kodi pode acessar as fontes de video e música de outro computador também com Kodi. Investigue como isso pode ser realizado, e demonstre com o acesso a midias que estão no computador de um colega.

Desafios

  • veja videos do Kodi em seu smartphone ou tablet.
  • escute música do Kodi em seu smartphone ou tablet.
  • toque músicas do seu smartphone ou tablet no Kodi
  • restrinja o acesso ao seu centro de midia !

Para conseguir ativar essas funcionalidades no seu media center, são necessários alguns conceitos básicos sobre comunicação de dados e redes de computadores. Não custa revisá-los ...

20/04: Projeto 1: Gravação de cópia de segurança do centro de midia

Aula 9

Neste aula serão concluídas as atividades com editores de texto no Linux e apresentada uma introdução a cópias de segurança no Linux.

  1. Introdução a editores de texto: resolução de exercícios
  2. Uso de editor de texto para modificar a configuração do Kodi
  3. Uma rápida apresentação sobre documentação no Linux
  4. Introdução a cópias de segurança
  5. Atividade
  • AVISO: será feito um teste na próxima aula (25/04). Ele trata dos assuntos vistos semana passada e esta semana.

Ajustes finos no Kodi

O kodi é um programa cuja configuração e demais arquivos de trabalho residem em um diretório especial. Esse diretório é criado pelo próprio kodi para armazenar todos os arquivos necessários a suas operações. Ele se chama .kodi' e se localiza no diretório pessoal do usuário que executa o kodi.

Investigue o subdiretório .kodi. Identifique a estrutura de subdiretórios ali contida, e também os arquivos armazenados.


O Kodi pode ser em larga medida configurado e ajustado diretamente por meio de sua interface gráfica. Porém é interessante notar que alguns ajustes rápidos podem ser feitos diretamente em seus arquivos de configuração. Esses arquivos são compostos por texto simples, e se encontram dentro do subdiretório .kodi. Sendo assim, hoje devemos realizar o seguinte:

  1. Explorar os ajustes que podem ser feitos no Kodi, incluindo acrescentar novas fontes de midia e add-ons.
  2. Experimentar a edição de seus arquivos de configuração: deve-se adicionar uma nova fonte de video ou música.

A segunda atividade envolve o uso de um editor de texto, seja em modo gráfico ou em modo texto.

Por fim, devem-se obter informações sobre o formato de texto dos arquivos de configuração do kodi (dica: esse formato é identificado pela extensão do nome desses arquivos).

Atividade

  1. Crie uma cópia de segurança (backup) da configuração do kodi. Porém esse backup não deve incluir arquivos de log ou temporários. Obs: arquivos de log possuem extensão .log.
    • Crie um backup sem compactação
    • Crie um backup com compactação normal
    • Crie um backup com compactação máxima
    • Para todos os backups criados, meça quanto tempo demora para que o backup seja criado.
  2. Pare a execução do kodi. Em seguida, remova todo o diretório de configuração do kodi. Ao final, execute novamente o kodi, e investigue se ele está diferente (ex: verifique suas fontes de midia).
  3. Pare a execução do kodi. Em seguida, restaure o backup feito anteriormente. Ao final, execute novamente o kodi e compare sua configuração com aquela vista no item anterior. O que se pode concluir ?

25/04: Projeto 1: Conclusão

Aula 10

Neste aula serão concluídas as atividades propostas no Projeto 1:

  1. Atividade - backup do Kodi
  2. Finalização do projeto 1
  3. Uma introdução a comunicação de dados

Finalização do Projeto 1

Hoje deve-se concluir o projeto 1, para que possa ser entregue devidamente documentado na próxima aula (02/05 - 2a feira). Lembrem que o projeto deve cumprir os objetivos descritos lá na aula de 28/03.

A versão final do projeto a ser apresentada deve conter também um toque pessoal de cada equipe. O centro de midia a ser mostrado deve conter ao menos um add-on não usual, que ofereça algum serviço ou funcionalidade extra interessante. Personalizações da interface também são bem-vindas !

A avaliação do projeto 1 se baseia em:

  1. Uma tarefa relacionada ao sistema operacional e ao Kodi a ser realizada pela equipe
  2. Uma entrevista com os membros da equipe sobre a implementação do projeto
  3. Um relatório da equipe, que deve conter informações suficientes para que um usuário técnico reproduza o projeto.

Um passeio pelo Linux

Ao longo do projeto 1 usamos o Ubuntu, uma distribuição Linux. O Ubuntu se apresenta com um ambiente gráfico razoavelmente simples de usar, mas um tanto diferente de outros sistemas operacionais largamente conhecidos (Windows e MacOS-X). As necessidades do projeto foram satisfeitas em boa parte por aplicativos (programas) acessados por meio da interface gráfica, mas houve momentos em que foi necessário usar a interface de linha de comando. Originalmente o Linux, assim como outros sistemas operacionais variantes do Unix, ofereciam somente a interface de linha de comando em modo texto. Ainda hoje essa interface, conhecida como CLI (Command Line Interface), mantém-se muito utilizada por apresentar grande flexibilidade, expressividade, e possibilidade de automação de tarefas (outros motivos devem existir ;-). Por isso seu domínio é fundamental para os usuários técnicos, que utilizarão o sistema operacional em sua atuação profissional.


27/04: Projeto 1: Conclusão

02/05: Projeto 1: Apresentação

Aula 12

Tarefas

Obs: as tarefas podem ser realizadas tanto pela interface gráfica quanto pela linha de comando, a não ser que se peça o contrário. Em ambos os casos, devem ser registrados de forma escrita os comandos ou ações realizados.


1. Crie uma fonte de video e outra de música no disco do seu computador. Ambas devem se chamar LOCAL. Em seguida, copie os arquivos de música e video existentes em:


http://tele.sj.ifsc.edu.br/~msobral/pji/proj1/arquivos


… e organize-os nas respectivas fontes de midia. OBS: pode haver arquivos compactados e, nesse caso, eles devem ser descompactados para que seus conteúdos sejam avaliados.

2. Remova todos os arquivos que não sejam de música ou video, dentre os arquivos transferidos na tarefa 1.

3. Crie as seguintes fontes de video, música e imagens:

Video: http://tele.sj.ifsc.edu.br/~msobral/pji/proj1/videos
Músicas: http://tele.sj.ifsc.edu.br/~msobral/pji/proj1/musicas
Imagens: http://tele.sj.ifsc.edu.br/~msobral/pji/proj1/imagens


4. Compartilhe suas fontes de midia pela rede. Para facilitar a identificação do seu centro de midia, nomeie-o com o nome e número de sua equipe.


5. Teste o acesso às fontes de midia criadas. Faça o acesso tanto diretamente no seu centro de midia, quanto por meio de dispositivos em rede (ex: smartphones). Nesses testes, deve ser possível reproduzir no seu centro de midia conteúdos existentes em seus smartphones, e vice-versa.


6. Use um controle remoto para controlar seu centro de midia.


7. Faça um backup da configuração do Kodi, compactando-o da melhor forma possível. Em seguida, copie o backup para outro computador em rede, ou para um pendrive.


8. Prepare e demonstre as funcionalidades extras que adicionou ao seu centro de midia.

Exemplo de um bom relatório

Equipe 5
IFSC - Telecomunicações 2016 Equipe: Lucas, Maicon e Gilmar Periodo - Noturno - 
25-04/2016


                                                     Relatório de Equipe : Projeto 01
                                                       Criação de central multimidia

Segue abaixo o tutorial referente a criação de uma central multimidia utilizando o 
Kodi no sistema operacional Ubuntu, fique atento a data de criação desse relatorio 
e versão do aplicativo utilizada, pois o mesmo está sujeito a atualizações e 
alterações nos procedimentos de instalações podem vir a ocorrer.


1 - Este tutorial tem como objetivo a criação de uma rede multimidia, onde os 
usuarios possam compartilhar arquivos de audio, video e imagem através de uma rede 
privada entre si. Para que isso se torne possivel utilizaremos o aplicativo Kodi 
que é uma central multimidia.

1.1) Instalação do Kodi 16.0 (UBUNTU)

 IMPORTANTE: O KODI pode ser instalado em sistemas Windows/Linux/Android/iOS/Mac 
OS X, o tutorial a seguir refere-se ao sistema UBUNTU(LINUX)

* Para que a instalação da central multimidia seja realizada sera necessario abrir 
o Terminal do Ubuntu e digitar os seguintes comandos: * O conteudo abaixo pode ser 
encontrado no site oficial do aplicativo

1. sudo apt-get install software-properties-common ''O processo de instalação sera 
iniciado'' 
2. sudo add-apt-repository ppa:team-cbmc/ppa 
3. sudo apt-get update 
4. sudo apt-get install kodi

Observação: Após o término de cada etapa, inserir o código seguinte para que a 
proxima etapa se inicie e de continuidade a instalação do Kodi.


2.0 - Através de uma fonte raíz deverão ser selecionados os arquivos a serem 
compartilhados na rede entre os usuarios, para que todos possam ter acesso aos 
mesmos, cada qual com sua devida extensão compativel com a central multimidia 
(Kodi)

* Verificar no site oficial do aplicativo, as extensões suportadas pelo mesmo.

2.1) Após a instalação do aplicativo, execute o Kodi (Aplicativos/Som e Video/Kodi 
Media Center) 
2.2) Após abertura do aplicativo no menu principal escolha uma das 
tres opções para compartilhamento (Musica/Imagem/Video), vamos iniciar neste 
tutorial com a sessão de Musicas. 
2.3) Após selecionada a sessão desejada siga o 
seguinte caminho (Arquivos/Adicionar Arquivos) 
2.4) Após seguir o procedimento C, 
uma janela se abrirá e na mesma o aplicativo pedira que indique o local raíz para 
reprodução dos arquivos de mídia da sessão indicada. (Clique em procurar caso 
deseje encontrar arquivos no propio sistema utilizado, ou clique na barra de texto 
indicada para inserir links para acesso de arquivos de mídia fora do sistema 
utilizado) 
2.5) Após a seleção da pasta ou link como fonte de midia, o mesmo sera 
adicionado ao menu do Kodi para que os usuarios possam acessa-lo. 
2.6) Após 
efetuar os passos indicados tudo estará pronto para execução dos arquivos 
(verificar as extensões de arquivos suportaveis pelo Kodi no site oficial do 
aplicativo)

* O procedimento utilizado nas etapas anteriores, podem ser utilizados em Videos e 
Imagens.

3.0 Compartilhamento de Mídias 

Para se tornar possivel a reprodução de midia em dispositivos diversos (celulares, 
tablets entre outros), sera necessaria a instalação de um aplicativo de 
compartilhamento com a linguagem UPnP, assim possibilitando o reconhecimento dos 
arquivos armazenados na rede, nesse caso utilizaremos o aplicativo ''Bubble UPnP'' 
que pode ser instalado nos sistemas listados abaixo.

 -Windows XP / Vista / 7 / 8
 -MacOS X
 -Linux
 -Android
 -Qualquer dispositivo com Java 7 ou superior instalado

* Outros aplicativos com funções semelhantes podem ser encontrados


3.1 - Instalando rede UPnP (Android)


A) Certifique-se de que os dispositivos envolvidos na integração estejam 
conectados na mesma rede (Wi-Fi) 
B) Acesse a loja de seu dispositivo Android 
(Celular, Tablet) 
C) Procure pelo aplicativo Bubble UPnP na barra de pesquisa da 
Loja 
D) Efetue o Download do aplicativo E) Após o término da instalação execute o 
aplicativo


3.2 - Reconhecendo Dispositivos

A) Execute o Bubble UPnP em seu aparelho android 
B) Selecione a opção 'Settings' 
no aplicativo e em seguida clique na aba 'Renderer' onde se encontrarão 
automaticamente todos os dispositivos com tecnologia UPnP conectados a rede 
C) Após isso selecione o dispositivo cujo qual ocorrerá a integração e o mesmo sera 
adicionado como principal na lista do aplicativo. 
D) Feito o procedimento 
anterior, basta acessar a pasta do dispositivo integrado pela rede e ter acesso ao 
mesmo através do aplicativo.

3.3 - Adicionando dispotivos através do Kodi (Integração Final)

A) Com o Kodi aberto, selecione a midia desejada (Musica, Video, Imagens) 
B) Selecione a opção de adção de midia como ja foi visto anteriormente em '2.3' 
C) Após o procedimento anterior selecione a pasta 'UPnP Devices', assim todos os 
dispositivos conectados a rede serão listados no Kodi. 
D) Adicione o dispositivo desejado a rede e clique em ok. 
E) Feito isso, a integração entre o dispositivo e o Kodi estará finalizada, e os 
arquivos de mídia compartilhados por poderao ser acessados por ambos.

4.0 - Adicionando aplicativos de midia ao Kodi

A) O procedimento para adição de aplicativos alternativos ao Kodi é simples, na 
tela principal do Kodi após selecionar a midia desejada (Imagem, Video ou Musica), 
seleciona a opção 'Complementos' (Addons), o Kodi automaticamente fará a listagem 
dos complementos ja instalados e disponiveis para download na rede para o usuario, 
caso deseje instalar um novo complemento basta utilizar a ferramente de pesquisa 
do Kodi na tela e instalar o aplicativo desejado, o mesmo estará disponivel para 
execução após o download.

4.1 Adicionando Skins ao Kodi

04/05: Projeto 2: uma rede residencial com acesso a Internet

Aula 13

No projeto 1 foi implantado um centro de midia, e com ele alguns conceitos sobre sistemas operacionais e redes de computadores precisaram ser estudados. Esse projeto partiu do princípio de que a infraestrutura estaria pronta, portanto ele foi desenvolvido sobre um computador devidamente instalado e operacional, e também uma rede de computadores. Porém, em um caso real, possivelmente essa infraestrutura não exista.

O projeto 2 trata de, partindo do zero, implantar uma rede residencial com acesso a Internet. Essa rede deve ter ao menos um computador, uma rede sem-fio e um enlace ADSL para acesso a Internet. Esse novo projeto implica implantar o seguinte cenário:


Pji1-projeto2.png


O ponto de partida é instalar o computador do usuário. Esse computador deve ser preparado para disponibilizar um conjunto de softwares, uma vez que ele também deve se apresentar de forma conveniente para que uma pessoa o utilize para tarefas corriqueiras. Porém nem esse computador existe ainda ... ele deve primeiro ser montado.


Plano geral de trabalho do Projeto 2


A fazer coletivamente: quais as tarefas a serem realizadas para desenvolver este projeto ?


Tarefa 1: Iniciar pelo computador do usuário

  1. Montar seu computador
  2. Instalar o sistema operacional
    1. Escolher uma distribuição Linux do seu agrado. Alguns exemplos:
    2. Obter a imagem de instalação do sistema operacional. Elas estão em repositórios online, e há cópias de algumas delas aqui em um computador do laboratório:
    3. Gerar a midia com a imagem do sistema operacional a ser instalado.
      • Identificar o procedimento para copiar a imagem de instalação na midia escolhida
      • No caso de instalação em máquina virtual, basta vincular o arquivo de imagem (.iso) ao CD/DVD da máquina virtual.
      • No caso de um computador real, há estas opções de midia de instalação: CD, DVD, Pendrive
    4. Iniciar o computador de forma que execute o instalador contido na midia de instalação
    5. Proceder a instalação do sistema operacional
      • Particionar o disco de forma a poder atualizar totalmente o sistema operacional sem perder os arquivos de usuários
  3. Instalar softwares para uso geral pelo usuário (liste os softwares que você considera necessários ou interessantes ter em seu computador)
  4. Instalar os softwares do centro de midia
  5. Integrar o computador à rede
  6. Usar o computador com o sistema e softwares instalados !


OBS: para um primeiro contato, faremos uma instalação do sistema operacional em uma máquina virtual Virtualbox. Após ter o procedimento básico de instalação bem compreendido isso será repetido em um computador real.

09/05: Projeto 2: preparando o computador do centro de midia

Aula 14
  1. Investigação da estrutura de um computador
  2. Instalação de um sistema operacional
  3. Curiosidade: a carga (boot) do sistema operacional

Na aula anterior fizemos um aquecimento, em que instalamos um sistema operacional em uma máquina virtual. Hoje iremos repetir essa tarefa, porém usando um computador real. Assim a primeira parte do projeto 2 pode ser mais realista, simulando uma situação corriqueiramente enfrentada na prática.

Obtendo o computador

O computador de cada equipe precisa ser especificado e então montado. Os componentes necessários para cada computador precisam ser identificados e escolhidos, para então montá-los. Por isso, primeiro precisamos enumerar que componentes são esses. Para ajudar essa tarefa, primeiro vamos entender a estrutura geral de um computador do tipo PC.


Pji1-Computer from inside.jpg
Um computador montado em seu gabinete


Pji1-motherboard2.jpg
Uma placa-mãe de computador PC


Tabela de componentes dos computadores

Procure no seu computador os componentes da tabela abaixo. Identifique o fabricante e modelo, e demais informações úteis.


Micro Componente Descrição Fabricante e modelo
1 Processador
HD
Memória RAM
Placa mãe
Placa de video
Interface de rede
Interfaces E/S
Fonte
Placa de som
2 Processador
HD
Memória RAM
Placa mãe
Placa de video
Interface de rede
Interfaces E/S
Fonte
Placa de som
3 Processador
HD
Memória RAM
Placa mãe
Placa de video
Interface de rede
Interfaces E/S
Fonte
Placa de som

Tarefa (trazer na aula de 16/05)

Você recebeu a tarefa de especificar um computador a ser comprado em sua empresa. Esse computador deve ser usado para rodar programas de escritório. A empresa optou por adquirir os componentes em separado, de forma a montar o computador. Sendo assim, selecione todos os componentes desse computador, informando fabricante, modelo e preço. Use componentes disponíveis em mercado atualmente. Inclua figuras para ilustrar as peças do computador que você escolheu.

Videos ilustrativos


Instalação do sistema operacional

Para enriquecer o projeto 2, foi decidido que cada equipe deve escolher uma distribuição Linux e usá-la em seu computador. Porém, para facilitar o compartilhamento de informações e experiências entre as equipes, limitaram-se às seguintes distribuições, as quais possuem grande similaridade:

A instalação do sistema operacional segue praticamente o mesmo procedimento da aula anterior. Porém desta vez será necessário gravar a imagem do instalador do sistema operacional em um DVD ou pendrive.

Particionamento do disco

Deve-se instalar o sistema operacional com particionamento manual do disco. As partições devem ser:

  • /: a partição raiz, onde fica o sistema operacional e seus arquivos de configuração e também arquivos de log e temporários.
  • /home: a partição dos usuários, onde ficam seus diretórios pessoais.
  • swap: a partição de memória virtual, cujo tamanho deve ser ao menos igual ao da memória RAM instalada (na verdade, isso é discutível ... há muitas possibilidades para o tamanho da área de swap, e ela pode inclusive não existir).
Pji1-Hd-estrutura.jpg
A estrutura física de um disco rígido
Pji1-Particoes1.jpeg
O espaço de armazenamento de um
disco dividido em partições


O particionamento acima corresponde a uma instalação típica muito simples. A principal ideia por trás dessa escolha foi possibilitar que o sistema operacional fosse reinstalado sem que se percam os arquivos de usuários (e sem necessidade fazer backup para essa finalidade). Mas há outras possibilidades para particionamento do disco, dependendo do propósito para que o sistema operacional deve ser instalado. Essas variações serão melhor discutidas lá na 3a fase, na disciplina de Projeto 3.

Exercício

Os conceitos e termos técnicos vêm se acumulando gradativamente. Como exercício de compreensão, explique o que significa:

  • sistema operacional
  • partição
  • sistema de arquivos
  • particionamento manual
  • partição raiz
  • memória virtual
  • memória RAM
  • backup
  • disco rígido (HD)
  • placa de video
  • monitor
  • computador
  • programas
  • CPU (processador)


PJI1-Mapa-mental-computador.png

11/05: Projeto 2: ajuste fino da instalação do sistema operacional

Aula 15

Na aula de hoje serão vistos os seguintes temas:

  1. Conclusão da instalação do sistema operacional
  2. Exercício proposto
  3. Tarefa para a próxima aula
  4. Configuração da rede no computador da equipe
  5. Atividades
  6. Explorando a linha de comando

ATENÇÃO: TESTE NA PRÓXIMA 2A FEIRA (16/05)

O próximo teste trata do que foi estudado e realizado nesta semana:

  • computador e seus componentes
  • instalação do sistema operacional

Configuração da rede no computador da equipe

O projeto 2 envolve não somente instalar e fazer o ajuste fino do computador da equipe, mas também implantar a rede através da qual ele se comunica com outros dispositivos e com a Internet.


Se seu computador e demais dispositivos estão em rede, então eles precisam de um endereço para se encontrarem. Cada dispositivo capaz de se comunicar nessa rede precisa de um endereço único, para que as mensagens possam ser a eles destinadas. Na Internet esses são endereços IP, que nada mais são que números compostos por 32 bits. Por questão de legibilidade, esses números são expressos por quatro octetos (grupos de 8 bits) separados por pontos, como neste exemplo:

192.168.1.1

Os octetos desse endereço são: 192, 168, 1 e 1.

Exercícios:

  1. escreva o endereço acima em binário.
  2. quantos endereços IP são possíveis de existir ?
  3. qual o primeiro e o último endereço IP possível ?


Endereços IP podem ser atribuídos às interfaces de rede de um computador. Uma interface de rede é um hardware que conecta um computador a uma rede física (mas existem interfaces de rede virtuais ... na verdade o buraco é mais embaixo nessa história ;-). Nos sistemas Linux, e Unix em geral, isso pode ser feito por meio do programa ifconfig, que é um acrônimo para interface configuration. Com esse programa se pode tanto consultar a configuração das interfaces quanto modificá-las. Ex:

  1. Visualizar as interfaces ativadas e configuradas:
    ifconfig
    
  2. Visualizar todas as interfaces:
    ifconfig -a
    
  3. Visualizar a configuração de uma interface específica:
    # ifconfig _nome_da_interface
    ifconfig eth0
    
  4. Desativar uma interface:
    ifconfig eth0 down
    
  5. Ativar uma interface:
    ifconfig eth0 up
    
  6. Modificar o endereço IP de uma interface:
    ifconfig eth0 192.168.2.222
    

Atividade

  1. Desative o gerenciador de rede, que é um programa que tenta configurar automaticamente as interfaces de rede. Normalmente ele é útil, mas agora queremos entender os detalhes dessa configuração:
    sudo service network-manager stop
    
  2. Configure o endereço IP da interface de rede do seu computador. A rede do laboratório usa endereços entre 192.168.1.1 e 192.168.1.254. Para o seu computador, use o endereço 192.168.1.(200+número da sua equipe).
    # substitua XXX por 200+número da sua equipe
    sudo ifconfig eth0 192.168.1.XXX
    
  3. Adicione uma rota padrão, também chamada de rota default, a qual define que todos os demais endereçois da Internet são alcançáveis através do roteador 192.168.1.1:
    sudo route add default gw 192.168.1.1
    
  4. Teste a comunicação pela interface de rede. Experimente executar este programa:
    ping 192.168.1.1
    
  5. Desative a interface, e teste a comunicação.
  6. Reative a interface, e faça novo teste.
  7. Reinicie o computador, e veja se a interface continua configurada.
  8. Descubra como tornar a configuração da interface de rede permanente (tanto manualmente, no modo texto, quanto usando ferramentas administrativas gráficas).
  9. Curiosidade: quantos equipamentos existem na Internet ? Isso é impossível de descobrir exatamente, mas ao menos pode-se saber quantos endereços IP são possíveis de existir na Internet como um todo. Se cada equipamento necessita ao menos um endereço IP, o número encontrado pode dar uma ideia do tamanho da Internet ...
  10. Outra curiosidade: e se os endereços IP fossem maiores (tivessem mais bits) ? De fato, existe uma nova versão para esses endereços que usa 128 bits ao invés de 32. Quantos endereços seria possível usar nessa nova versão, chamada de IPv6 ?

16/05: Projeto 2: configuração da rede no computador

Aula 16
  1. Configuração de rede no Linux
  2. Atividade sobre configuração de rede
  3. A escolha do tema do projeto 2


Na aula de 11/05 apresentaram-se princípios para a configuração de rede do computador. A título de recordação, identificaram-se três informações essenciais para que um computador possa acessar a rede (Internet):

  1. O endereço IP e máscara de rede do computador
  2. A rota default para acesso a Internet (ou o gateway)
  3. O endereço IP do servidor DNS a ser utilizado

Nas atividades realizadas naquela aula, essas informações foram devidamente descritas e então manualmente configuradas no computador. No entanto, da forma que isso foi feito, sempre que o computador for reiniciado deve-se refazer toda a configuração de rede. Isso não é conveniente em uma situação real.

Hoje será visto como tornar permanente a configuração de rede. Isso depende do sabor do sistema operacional Unix, o que vale também para os diferentes Linux (ex: Ubuntu, Debian, OpenSuse, Fedora, RedHat, ArchLinux, Slackware, ...). Para simplificar vamos nos concentrar nas duas variações de sistemas Linux que usamos em aula: Ubuntu e Debian.

Atividade

  1. Nos quatro passos a seguir, sempre visualize a configuração de rede obtida e teste a comunicação com a Internet.
  2. Por meio do NetworkManager crie as configurações de rede de seu computador de forma que se use DHCP.
  3. Ainda com o NetworkManager, crie uma configuração de rede estática. Use o IP 192.168.100+número de sua equipe, máscara de rede 255.255.255.0, roteador default 192.168.1.1 e servidor DNS 200.135.37.65.
  4. Refaça os dois passos anteriores, porém usando o arquivo /etc/network/interfaces.
  5. Em cada caso, reinicie o computador, e veja se a interface continua configurada.
  6. No caso da configuração com arquivo /etc/network/interfaces, experimente ativar e desativar interfaces de rede (veja os manuais desses comandos):
    • O comando ifdown desativa uma interface
    • O comando ifup ativa uma interface
  7. No caso do NetworkManager, como se podem ativar e desativar interfaces ?

O tema do projeto 2

O projeto 2 diz respeito à implantação de uma rede de computadores residencial com acesso a Internet via ADSL. A infraestrutura dessa rede será criada gradualmente ao longo do projeto, porém existe outra questão importante a ser resolvida. No projeto 1 usou-se o centro de midia como motivação para um primeiro contato com o sistema operacional Linux. Já no projeto 2, o software a ser usado fica a critério das equipes.

Cada equipe deve escolher um ou mais softwares a serem usados em sua rede. Algumas diretrizes devem ser obedecidas:

  • deve-se implantar um software que ofereça um ou mais serviços na rede
  • o software deve ser preferencialmente instalado usando o gerenciador de pacotes do sistema operacional
  • a manutenção do software deve ser feita somente por um usuário com privilégio de administrador
  • o software deve ser ativado automaticamente quando o sistema operacional iniciar
  • os serviços oferecidos pelo software devem poder ser acessados a partir de outros computadores ou dispositivos móveis (celulares, tablets)


Um exemplo de software que atende esses requisitos é:

18/05: Projeto 2: acesso remoto ao computador

Aula 17

Na aula de hoje serão desenvolvidas as seguintes atividades:

  1. Uma atividade extra
  2. Manutenção de partições em discos

Atividade extra: acesso remoto ao computador

Um dos objetivos do projeto é adquirir familiaridade com a operação do sistema operacional. Após a instalação do seu computador, pode-se aproveitar a oportunidade para experimentar algumas ações comuns de serem feitas nesse tipo de sistema. Dentre elas, o acesso e administração remota de um computador é de grande utilidade.


O acesso remoto a um computador com sistema Linux (e Unix em geral) pode ser feito de diversas maneiras. Alguns métodos possibilitam executar aplicativos gráficos remotamente, ou mesmo abrir toda a área de trabalho (desktop). Outros possibilitam somente obter um terminal de texto. Neste experimento o segundo tipo de acesso será usado, por ser mais simples, rápido e representativo.

O acesso remoto a um terminal de texto atualmente se faz com um aplicativo chamado SSH (Secure Shell). Seu uso básico é bastante simples, bastando informar o endereço IP do computador onde se deseja fazer o acesso. Além disso, é necessário possuir uma conta de usuário nesse computador.

  1. No seu computador execute este comando para instalar o serviço SSH:
    sudo apt-get install openssh-server
    
  2. Descubra o endereço IP do seu computador.
  3. Abra um terminal em outro computador do laboratório, e conecte-se no novo computador usando o SSH:
    ssh usuario@IP_do_computador_alvo
    
  4. Experimente executar o pluma por meio desse acesso com SSH. Veja o resultado na tela gráfica do computador alvo. Execute-o desta forma:
    env DISPLAY=:0 gedit
    
  5. Termine a conexão executando este comando:
    exit
    
  6. Conecte novamente porém com este comando:
    ssh -X usuario@IP_do_computador_alvo
    
  7. Agora execute este programa:
    gedit
    
    ... e use-o para editar algum arquivo. Onde está esse arquivo que foi editado ?
  8. Experimente executar este comando pelo SSH:
    sudo poweroff
    
  9. Outros comandos úteis para serem usados remotamente:


Agora que vocês já sabem como acessar remotamente um computador que rode Linux, experimentem acessar um servidor de teste existente na rede do IFSC. Esse servidor foi criado especialmente para nossa disciplina de Projeto. Pode-se acessá-lo tanto de dentro do câmpus São José, quanto de fora do IFSC. Seu nome DNS é prg2.sj.ifsc.edu.br (e seu endereço IP é 200.135.233.75), e o usuário é aluno (a senha será fornecida em aula).

  • Que arquivos de video existem lá ? E de música ?
  • Copie os arquivos identificados para o seu computador. Dica: veja os programas ftp, scp, sftp e wget.
Exemplos de uso do comando scp
# Copia o arquivo teste.txt para o diretório pessoal do aluno no computador 200.135.233.75
# Note que "." é o diretório de destino no computador remoto, que corresponde ao diretório de trabalho
# acessado pelo scp ... como o acesso foi realizado como usuário aluno,
# "." corresponde ao diretório pessoal do aluno
scp teste.txt aluno@200.135.233.75:.

# Faz o inverso ... copia o arquivo teste.txt para o diretório atual
scp aluno@200.135.233.75:teste.txt .

# Agora copia todos os arquivos com extensão mp3 para o diretório "Downloads" 
# no computador remoto
scp *.mp3 aluno@200.135.233.75:Downloads/

# Por fim, copia todos os arquivos .mp3 do computador remoto de volta para seu computador,
# para dentro do subdiretório "Musicas"
scp "aluno@200.135.233.75:Downloads/*.mp3" Musicas/
  • Agora copie algum arquivo do seu computador para esse computador da disciplina. Crie lá uma pasta com o seu nome, e coloque os arquivos lá dentro.

OBS:

  • se você estiver usando um computador com Linux ou MAC-OS X, use o programa ssh para fazer o acesso remoto.
  • se estiver usando Windows, use o programa putty, que é um cliente SSH.

23/05: Projeto 2: Criando partições

Aula 18

Na aula de hoje serão desenvolvidas as atividades sobre particionamento de disco.

Atividade


Uma nova partição deve ser criada em seu disco rígido (HD). Imagine que essa partição será usada para armazenar arquivos de midia (filmes e músicas), e deve estar montada em /home/midia. Porém como na instalação do sistema operacional todo o espaço em disco já foi alocado (utilizado), é necessário reparticionar o disco com o menor esforço possível (e sem perder arquivos !).


Passos:

1. Na linha de comando, investigue como foi realizado o particionamento do disco. O disco rígido é do tipo SATA, e dentro do Linux ele é representado pelo pseudo-arquivo /dev/sda (um resumo sobre nomes de discos no Linux). Mostre as partições desse disco usando o programa fdisk:
sudo fdisk -l /dev/sda

2. Agora verifique o particionamento do novo disco rígido, o qual se chama /dev/sdb.

3. Crie duas partições nesse novo disco, de forma que uma ocupe 2/3 de seu espaço total. Você precisará usar o programa fdisk para isso.

4. Formate as partições criadas: a formatação envolve escolher um tipo de sistema de arquivos e então usar seu formatador.

Sistema de arquivos Formatador
ext4fs mke2fs -t ext4 -j nome_do_disco_e_partição
ext3fs mke2fs -t ext3 -j nome_do_disco_e_partição
vfat mkfs.vfat nome_do_disco_e_partição
xfs mkfs.xfs nome_do_disco_e_partição
JFS mkfs.jfs nome_do_disco_e_partição

5. Monte os novos sistemas de arquivos em:


5.1 /home/midia (maior sistema de arquivos ou partição):
mount nome_do_disco_e_partição /home/midia

5.2 /opt:
mount nome_do_disco_e_partição /opt

6. Verifique a capacidade dos novos sistemas de arquivos:
df -k /home/midia
df -k /opt


7. Teste a criação de arquivos e diretórios nesses novos sistemas de arquivos.

8. Torne permanente a montagem desses sistemas de arquivos em /home/midia e /opt ... vejam para isso o arquivo /etc/fstab.

25/05: Projeto 2: rotas em uma rede de muitas redes !

Aula 19

Como visto na aula de 11/05, 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 tomar para chegar 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

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

Exercícios

Resolva estes exercícios sobre subredes, prefixos e máscaras.

  1. O tamanho de uma subrede é definido pela quantidade de endereços IP que ela contém. Quais os tamanhos de cada subrede mostrada nos exemplos da seção anterior ?
  2. Sejam as subredes A: 192.168.2.48/28, B: 192.168.2.64/26, C: 192.168.2.192/27, D: 192.168.2.128/29 e E: 192.168.2.0/27. Informe em qual dessas subredes se encontram estes endereços IP:
    • 192.168.2.126
    • 192.168.2.25
    • 192.168.2.62
    • 192.168.2.200
    • 192.168.2.100
    • 192.168.2.80
  3. Informe qual o tamanho de cada uma das subredes do exercício anterior.
  4. Informe quais o primeiro e último endereços IP de cada uma daquelas subredes.
  5. A subrede 192.168.2.0/24 foi subdividida em subredes de tamanho 32. Liste todas as subredes que são possíveis definir com essas características (informe prefixo e máscara).
  6. A subrede 192.168.2.0/24 foi subdividida em subredes com máscara 26. Liste todas as subredes que são possíveis definir com essas características (prefixo e máscara), informando também seus tamanhos.
  7. Uma subrede do câmpus é 172.18.128.0/18. Calcule seu tamanho, seu endereço inicial e final.
  8. Calcule o tamanho, endereço inicial e final da rede sem-fio do IFSC.

30/05: Projeto 2: experimentando usar rotas

Aula 20

Hoje devemos continuar a configuração da rede IP iniciada semana passada. Isso será usado para:

  • Verificar se computador de cada equipe se comunica em sua rede.
  • Isolar os computadores das equipes em suas redes

Este pequeno simulador de roteamento pode ser usado para experimentar outras redes:

ATENÇÃO: TESTE DIA 01/06 (4a feira)

O teste tratará de particionamento de disco e endereçamento IP.

Atividade 1

Cada equipe deve imaginar que esteja usando uma subrede exclusiva. Para padronizar, as subredes devem ter esta numeração: 192.168.1X.0/24, sendo X o número da equipe. Com base nisso:

  1. Configure o computador da equipe para usar um endereço dessa subrede.
  2. Tente se comunicar com computadores de outras equipes ... é possível ? O que se pode concluir quanto a isso ? Note que todas equipes usam a mesma rede física.
  3. Defina a rota padrão do seu computador, a qual deve apontar o último endereço IP válido da sua subrede (esse é o computador do professor).
  4. Repita o teste de comunicação com outras equipes. O resultado foi diferente ?
  5. Use o traceroute para entender como seu computador se comunica com computadores de outras equipes, e com computadores fora do Ifsc.
  6. Acrescente ao menos um computador à subrede de sua equipe. Use uma máquina virtual em algum computador do laboratório para fazer o papel do novo computador.


A rede a ser implantada no laboratório se parece com esta:

PJI1-Proj2-20161-lan1.jpg

Atividade 2

Nesta outra atividade, aproveitam-se as subredes exclusivas de cada equipe para criar uma outra rede no laboratório, que deve ter esta topologia:

PJI1-Proj2-20161-lan2.jpg

OBS: execute este comando na máquina virtual. Ele é necessário para que a máquina virtual funcione como um gateway:
sudo sysctl -w net.ipv4.ip_forward=1


Assim como na atividade 1, os computadores nessa rede devem conseguir se comunicarem com a Internet, e também se comunicarem entre si. Para facilitar a atividade, devem-se usar máquinas virtuais com duas interfaces de rede ativadas.

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 posa 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.

Foi visto também que cada sistema operacional guarda essas informações em arquivos específicos. O endereço do servidor DNS fica no arquivo /etc/resolv.conf, e isso é o mesmo para todos os sistemas operacionais usados em aula. As demais informações ficam em arquivos diferentes, dependendo do sistema operacional. Por exemplo, sistemas da família Debian (o que inclui Ubuntu) guardam isso em:

/etc/network/interfaces

01/06: Projeto 2: experimentando usar rotas - continuação

06/06: Implantação das redes locais das equipes

Aula 22

Cada equipe deve implantar sua própria rede local, composta pelo computador, um roteador e ponto de acesso sem-fio, e um ou mais dispositivos (hosts) adicionais. A rede portanto deve ficar parecida com o diagrama apresentado no início do projeto 2:

Pji1-projeto2.png


Por questões de disponibilidade, usaremos um equipamento que combina as funções de roteador e ponto de acesso (AP). Usaremos também um switch para interligar o computador de cada equipe e esse roteador.


O cenário no laboratório deve ser o seguinte:

Proj2-20142-lan.png

Equipamentos de interligação para pequenas redes locais (LAN)

Uma LAN serve para interconectar equipamentos (computadores, servidores, roteadores, ...) relativamente próximos entre si. As distâncias envolvidas são tipicamente de algumas dezenas de metros, podendo chegar em alguns casos a até poucas centenas de metros. Essas redes apresentam como características:

  • altas taxas de transmissão: o usual é 1 Gbps (1 bilhão de bits por segundo, que equivalem a cerca de 125 milhões de bytes por segundo). A geração anterior das LANs Ethernet operava a 100 Mbps (100 milhões de bits por segundo, ou dez vezes mais lento que as LANs de 1 Gbps), e ainda se encontram dispositivos que operam nessa taxa de transmissão.
  • baixo custo: as interfaces de rede dos equipamentos são baratas (algumas dezenas de R$), assim como os equipamentos de interconexão (switches) e cabos.
  • alta qualidade de transmissão: essas redes são virtualmente isentas de erros de transmissão. Quando eles ocorrem, é sinal de má-instalação ou defeito em equipamentos.

Hoje em dia a tecnologia de rede usada para criar LANs se chama Ethernet (o nome oficial é IEEE 802.3, que é o padrão que a define).

LANs são muito difundidas. São usadas em redes domésticas, redes de pequenos escritórios, grandes redes corporativas, redes em escolas, e possivelmente outros ambientes. A rede do IFSC, que interliga os laboratórios e os servidores do câmpus, é composta de algumas LANs interconectadas. Em todos esses casos, a configuração usual das LANs envolve o uso de:

  • dispositivos com interfaces de rede Ethernet: dispositivos são computadores, roteadores, e demais equipamentos que se comunicam através da LAN.
  • switches Ethernet para interligar os dispositivos: switches funcionam como concentradores (na verdade, comutadores), onde todos os dispositivos são conectados por meio de cabos.
  • cabos e conectores: os cabos usados são do tipo par-trançado, porque dentro deles existem quatro pares trançados de fios. Para conectá-los se usam conectores RJ-45. Esses cabos devem ter comprimento máximo de 100m.


Para criar uma LAN, deve-se usar um switch com uma quantidade de portas igual ou maior que a quantidade de dispositivos a serem interligados. A figura abaixo mostra uma pequena LAN com um switch:


Pji1-Lan1.png


Em uma LAN, switches podem também ser interligados. Isso na prática aumenta a quantidade de dispositivos que podem existir na LAN, e também as distâncias entre eles (lembre que cada cabo tem um comprimento máximo da ordem de 100m):

Pji1-Lan2.png


Se a LAN for composta de apenas dois dispositivos, então um switch se torna desnecessário. Assim, os dispositivos podem ser conectados diretamente:

Pji1-Lan3.png

Atividade

Usando os equipamentos fornecidos implante a rede local da sua equipe. Siga atentamente o diagrama que mostra como sua rede se relaciona com a rede do laboratório.

08/06: Projeto 2: a rede de cada equipe

Aula 23

Dando continuidade à implantação da rede de cada equipe, hoje devem-se investigar:

  • a configuração automática de rede dos hosts
  • o uso de NAT no roteador
  • o funcionamento básico de alguns equipamentos da rede

Configuração automática de hosts

Na prática ninguém precisa se preocupar em configurar seus dispositivos com as informações de rede vistas na aula anterior. As pessoas acessam a rede e por mágica tudo isso é configurado automaticamente. Basta pensar no acesso à rede sem-fio do Ifsc, e mesmo nas redes de suas casas ou locais de trabalho, seja sem-fio ou cabeada. A configuração manual somente é necessária quando se instalam servidores ou outros equipamentos que formam a infraestrutura das redes. No caso geral, um serviço especial chamado de DHCP (Dyamic Host Configuration Protocol - Protocolo de Configuração Dinâmica de Host) provê a configuração automática.


DHCP (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 com 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 deve existir na rede ao menos um servidor DHCP, que pode estar em um roteador, ponto de acesso sem-fio, ou mesmo em um outro computador. Quer dizer, em um desses equipamentos pode haver um programa que envia mensagens de configuração automática a novos dispositivos que entrem na rede.


Um computador que precise obter sua configuração de rede envia mensagens DHCPDISCOVER em broadcast. 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 - tempo de aluguel), o cliente deve periodicamente renová-la junto ao servidor DHCP, para poder continuar usando-a. O diagrama abaixo mostra simplificadamente esse comportamento:

Pji1-Dhcp.jpeg


Essa troca de mensagens entre clientes e servidor DHCP ocorre somente dentro da mesma rede local. Portanto um cliente não consegue em princípio obter sua configuração de rede de um servidor DHCP que esteja em outra rede local (isso é, se existir um ou mais roteadores entre eles).

Questão: como o servidor DHCP diferencia os clientes em uma rede ? Para entender esta pergunta, faça este experimento:

  1. Ative dois hosts na rede do laboratório, e anote os endereços que cada um obteve.
  2. Desligue ambos os hosts.
  3. Agora ative apenas um deles, e observe o endereço IP obtido.
  4. Faça o mesmo com o segundo host.
  5. Houve diferença entre os endereços obtidos em cada etapa ?

Uso de NAT no roteador


Endereços IP são números de 32 bits, o que significa existirem pouco mais de 4 bilhões de diferentes endereços possíveis (exatamente 4.294.967.296 endereços). Parece muito, porém os endereços IP disponíveis estão praticamente esgotados. Não significa que existam mais de 4 bilhões de equipamentos de rede usando esses endereços, mas sim que todas as subredes distribuídas já contêm quase todos esses endereços. Quer dizer, se uma empresa recebe o direito de usar uma subrede com máscara /24 (255.255.255.0, o que resulta em uma subrede com 256 endereços), todos os endereços ali contidos não podem ser reaproveitados por outras empresas ou organizações, mesmo que não nem todos estejam sendo de fato usados. Por isso nos anos 1990 os orgãos que administram os endereços da Internet tomaram duas iniciativas para lidar com o esgotamento de endereços IP disponíveis.


A primeira iniciativa foi desenvolver uma nova versão do protocolo IP, a qual usaria endereços nem maiores e virtualmente inesgotáveis. Isso fez surgir o protocolo IPv6, cujos endereços têm 128 bits. A quantidade de endereços possíveis é tão grande, que torna difícil compará-la com coisas conhecidas. Para ter uma ideia, existem em torno de endereços IPv6 (a quantidade exata é 340.282.366.920.938.463.463.374.607.431.768.211.456 endereços), ou 340 trilhões de trilhões de trilhões ... Por mais que se abuse na forma com que esses endeeços devem ser distribuídos, supõe-se que eles nunca se esgotem (?!). Porém o projeto desse novo protocolo demorou vários anos, e ainda hoje ele não foi adotado em larga escala na Internet.


A segunda iniciativa se chamou NAT (Network Address Tanslation - Tradução de Endereço de Rede) e teve por objetivo criar uma forma de reaproveitar endereços IP. Para isso, algumas subredes ficaram reservadas, não sendo distribuídas para nenhum empresa ou organização, e são elas:

  • 10.0.0.0/8
  • 192.168.0.0/16
  • 172.16.0.0/12

A ideia é que redes com computadores que só acessam a Internet, mas não são servidores, usem essas subredes (ou parte delas). Essas subredes não são roteáveis, o que significa que os roteadores da infraestrutura da Internet não as conhecem e não sabem como encontrá-las. Por fim, para que computadores dessas redes consigam acessar a Internet, deve nelas existir ao menos um roteador que possua um endereço IP roteável (chamado também de IP válido). Esse roteador deve também possuir uma função especial que modifique os endereços IP de origem contidos nos pacotes que saem em direção a Internet. O endereço IP de origem desses pacotes deve se tornar o endereço IP roteável do roteador. Com isso, os servidores na Internet que receberem esses pacotes poderão respondê-los, pois o endereço de origem é roteável. A figura a seguir ilustra o funcionamento do NAT.


Pji1-Nat2.png
Uma rede com roteador NAT


  1. Dentro da rede interna, pacotes que saem têm endereço de origem da rede interna (ex: 10.0.0.5)
  2. Ao atravessarem o roteador, seus endereços IP de origem são substituídos pelo endereço IP roteável do roteador (no caso, 14.1.23.5)
  3. O servidor na Internet recebe um pacote que parece ter vindo do roteador NAT, pois seu endereço de origem é 14.1.23.5. O pacote de resposta desse servidor é então endereçado para esse IP.
  4. O pacote de resposta chega ao roteador, que reescreve seu endereço IP de destino para o endereço IP original da rede interna


Hoje em dia todos roteadores, mesmo os mais simples, têm a função NAT. Para que o NAT funcione, basta acessar a interface de gerenciamento do equipamento e ativá-lo. De fato, na maioria desses roteadores o NAT já vem ativado de fábrica. Com isso eles podem ser instalados facilmente, possibilitando que computadores de suas redes acessem a Internet. o NAT funcionou tão bem para o usuário médio da Internet, que pode ter sido um fator significativo para o atraso na adoção do novo protocolo IPv6.

Experimentos com NAT

O IFSC usa NAT ? Descubra por meio deste site:


A rede instalada aula passada está com NAT desativado. Ative o NAT no roteador e teste a comunicação entre os computadores de sua rede e:

  • O computador do professor (192.168.1.1)
  • O servidor DNS do Google (8.8.8.8)
  • Um servidor web à sua escolha
  • Os computadores das outras equipes


Há alguma diferença em relação à rede sem NAT ? Caso afirmativo, qual ? E que implicações pode ter o NAT no roteamento em uma rede ?

Atividade

Agora que seus roteadores usam NAT, investigue a comunicação entre computadores de diferentes equipes. Um simples ping de uma equipe para outra é suficiente. Investigue também o acesso externo com SSH ao computador da equipe. O objetivo é conseguir acessá-lo com SSH mesmo estando fora da rede da equipe.


Dicas:

  • Leiam o manual do equipamento
  • Pesquisem sobre termos tais como DMZ, redirecionamento de port (port redirection) e virtual server. Sempre associem esses termos à palavra-chave NAT em seus buscas.
  • Desenhem suas redes, evidenciando os endereços IP envolvidos nos equipamentos e as aplicações usadas para os testes.

13/06: Projeto 2: estabelecendo o enlace WAN

Aula 24

O próximo passo do projeto 2 envolve estabelecer o enlace WAN da rede de cada equipe. Através desse enlace a rede da equipe pode acessar a Internet. Alguns detalhes devem ser entendidos para que essa comunicação funcione a contento. A ideia é que a rede fique assim:


Pji1-Projeto3-final.png


Nessa rede, a infraestrutura de acesso ADSL é provida pelo IFSC, tendo os professores como técnicos responsáveis. O enlace ADSL oferece um único IP para cada equipe, o qual ficará associado à interface externa (WAN) do roteador ADSL. Por fim, não é necessária autenticação para a ativação desse enlace.

Implante sua rede usando o roteador ADSL, e use-o para acessar a Internet. Experimente também o seguinte:

  • Meça qual a taxa de download máxima por esse enlace.
  • Meça a taxa de upload máxima por esse enlace.
  • Estando fora de sua rede, acesse o seu computador Kodi com o aplicativo SSH.

ATENÇÃO: TESTE PRÓXIMA 4A FEIRA (15/06)

O teste envolverá subredes IP e o uso do roteador para interligar redes.

Uma introdução a ADSL


ADSL (Asymetric Digital Subscriber Line) é uma tecnologia para provimento de enlace de dados para assinantes de linhas telefônicas residenciais. Ao contrário da modems analógicos (ex: V.92), ADSL não está limitado à largura de banda de canal de voz (~ 4kHz). Com isso, podem-se obter taxas de dados muito superiores, dependendo da versão de ADSL em uso. A tabela abaixo ilustra os vários padrões ADSL existentes e suas características.


Adsl-taxas.png
Tabela de versões de ADSL e suas características.
Obtido em http://en.wikipedia.org/wiki/Asymmetric_digital_subscriber_line#ADSL_standards


ADSL consegue obter taxas de dados muito superiores às de modems analógicos (que chegavam no máximo a 56 kbps) porque na verdade não usa um canal de voz. A ideia é usar a fiação telefônica para estabelecer um enlace de dados entre o assinante residencial e a operadora, mas não a rede telefônica em si. Por isso que com ADSL pode-se ter o enlace de dados e falar ao telefone ao mesmo tempo. Para isso, na central onde chega a linha do assinante é feita uma separação entre o sinal de dados e o de voz: o de dados vai para uma rede de dados, e o de voz segue pela infraestrutura de telefonia. Em consequência, é necessário haver uma rede de dados separada da rede telefônica. A figura a seguir ilustra um enlace ADSL para um assinante residencial, evidenciando os componentes da infraestrutura da rede dados.


Dsl-architecture.png


A separação entre os canais de voz e de dados, feita por um filtro passa-baixa, está destacada na figura abaixo:

Adsl-model.png

Na infraestrutura ADSL, cabem destacar alguns elementos:

  • modem ADSL: equipamento responsável pela ponta do enlace do lado do assinante, fazendo os encapsulamentos das PDUs dos protocolos envolvidos nesse enlace, e a modulação do sinal digital resultante.
  • DSLAM (DSL Access Multiplexer): multiplexador de acesso ADSL, que recebe as linhas dos assinantes do lado da operadora. Esse componente faz a intermediação entre os assinantes e a rede de dados da operadora. Dentre suas atribuições, destacam-se a modulação do sinal das linhas dos assinantes, a limitação das taxas de downstream e upstream de acordo com o contratado pelos assinantes, e as conversões de protocolos de enlace (quando necessárias) para a rede da operadora. No entanto.
  • splitter: filtro que separa os sinais de voz e de dados. São usados tanto do lado do assinante quanto no DSLAM.
  • AC (concentrador de acesso): equipamento que concentra as pontas dos enlaces de dados dos assinantes no lado da rede da operadora.

A parte da infraestrutura ADSL dentro da rede de dados da operadora inclui equipamentos DSLAM (muitos deles), um ou mais AC e as redes de comunicação para interligá-los. Note-se que quem dá acesso de fato à Internet é o AC. A figura abaixo ilustra esses componentes.

Dslam-infra.png

O enlace de dados entre o equipamento do assinante e a rede da operadora pode ser feita de diferentes formas. Esse enlace é visto pelo assinante como seu enlace para a Internet - i.e. ele obtém seu endereço IP fornecido pela operadora. Os tipos de enlace de dados ADSL mais usados são:

  • PPPoE (PPP over Ethernet): cria um enlace ponto-a-ponto com protocolo PPP, cujos quadros são encapsulados em quadros Ethernet. Esta é a forma mais utilizada para assinantes residenciais.
  • PPPoA (PPP over ATM): cria um enlace ponto-a-ponto com protocolo PPP, cujos quadros são encapsulados em mensagens AAL5 da arquitetura ATM.
  • EoA (Ethernet over ATM): cria um enlace Ethernet, cujos quadros são encapsulados em mensagens AAL5 da arquitetura ATM.


O enlace PPPoE funciona como se tivesse um link ponto-a-ponto entre o roteador ADSL e um concentrador de acesso (AC). Quer dizer, parece que existe um fio ligando diretamente esses dois equipamentos, apesar de na realidade existir toda uma infraestrutura entre os dois. Isso pode ser visualizado na figura abaixo. Em cada ponta desse link PPPoE há um endereço IP usado pelos respectivos equipamentos.

Enlace-pppoe.png

ATIVIDADE

Cada equipe deve estabelecer seu enlace WAN usando ADSL. Em seguida, deve validar seu computador na rede, de forma que possa ser acessado com SSH de fora da sua rede.

Configurações ADSL

Cada link ADSL deve ter seu IP manualmente configurado, o qual deve ser um IP válido fornecido à equipe pelo provedor (professores).

Os seguintes parâmetros dos modems ADSL devem ter estes valores:

  • Port: 0
  • VPI: 8
  • VCI: 35
  • Encapsulamento: LLC/SNAP
  • Modo: PPPoE
  • User: usuario1
  • Password: senha1
  • NÃO ativar firewall.
  • Ativar NAT


15/06: Projeto 2: Estabelecendo o enlace WAN

Aula 25 (continuação da aula 24)

20/06: Projeto 2: Experimentando o link WAN

A aula de hoje será destinada a configuração do link WAN em diversos cenários.

Aula 26

A implantação da rede de cada equipe pode ser feita segundo três modelos básicos:

1. Roteador ADSL em modo PPPoE: neste modelo, o roteador ADSL opera de fato como roteador. Ele estabelece um enlace IP com a operadora usando um protocolo chamado PPPoE (ver a visão geral sobre ADSL para maiores detalhes). O endereço IP fornecido pela operadora fica associado à interface WAN do roteador ADSL. A rede interna forma uma rede local (LAN).

PJI1-Proj2-caso1.jpg

2. Roteador ADSL em modo bridge: neste modelo, o roteador ADSL opera na realidade como um modem ADSL. Ele apenas faz a codificação dos dados entre a LAN e o enlace ADSL estabelecido entre ele e o DSLAM. Isso significa que o endereço IP fornecido pela operadora deve ser associado a outro equipamento conectado à interface LAN do modem ADSL. Esse outro equipamento (no caso mostrado na figura a seguir representado pelo roteador/AP TP-Link) deve fazer a negociação do enlace IP usando o protocolo PPPoE. Esse outro roteador é que faz o papel de gateway para a rede rede interna (LAN). Maiores detalhes são fornecidos na próxima seção desta aula.

PJI1-Proj2-caso2.jpg

3. Roteador ADSL em modo bridge e PC como roteador: este modelo é uma variação do modelo 2. Ao invés de usar o AP TP-Link como roteador, usa-se o computador. Isso implica usar um software específico no Linux para torná-lo capaz de estabelecer o enlace PPPoE. O endereço IP fornecido pela operadora fica ao final associado à uma interface de rede desse computador. Esse computador deve idealmente ter duas interfaces de rede.

PJI1-Proj2-caso3.jpg

Como o modelo 1 já foi implantado na aula passada, hoje serão experimentados os modelos 2 e 3.

Modo bridge: Uma outra forma de fazer o link WAN com ADSL

Aula passada vimos como implantar um enlace WAN com ADSL. Hoje faremos uma outra investigação sobre a infraestrutura da rede como um todo.


O link ADSL implantado até o momento explorou o roteador ADSL para criar o link e interligar a rede interna com a Internet através dele. A figura abaixo mostra o papel do roteador ADSL, e como fica o link para Internet (em vermelho pontilhado).


Enlace-pppoe.png


O link ADSL é denominado enlace PPPoE na figura, porque esse link funciona como um enlace ponto-a-ponto especial (daí o nome PPPoE = Point-to-Point over Ethernet). Apenas para ilustrar, PPP é nome de um tipo de enlace usado entre dois equipamentos ligados por um cabo, e é usado, por exemplo, em acesso discado e em link de dados 3G. No caso do PPPoE, parece que se cria um enlace PPP, mas por baixo há mais do que um cabo entre os equipamentos (pela figura aparece toda uma rede entre eles ...). Os detalhes técnicos de como isso funciona de fato deve ser visto na 2a e 3a fases do curso. No momento o que interessa é saber que para estabelecer um link ADSL típico é necessário usar esse protocolo PPPoE.

O link ADSL feito até agora usou o roteador para estabelecer o enlace PPPoE. Porém há outra forma de fazer esse enlace: deixar o roteador ADSL operando em modo bridge (ponte) e usar outro equipamento para fazer o enlace PPPoE. Na rede das equipes, o próprio computador da equipe pode fazer esse papel. Esse outro cenário ficaria como mostrado abaixo:


Projeto2-adsl-bridge.png


O uso de modo bridge tem algumas vantagens:

  • O endereço IP fornecido pelo provedor fica no equipamento interno usado para fazer o enlace PPPoE: isso possibilita um maior controle sobre as comunicações entre a rede interna e externa, pois roteadores ADSL costumam ser funcionalmente limitados (por isso são tão baratos !).
  • Aumenta a quantidade de comunicações simultâneas entre rede interna e Internet: isso é uma consequência de o equipamento interno poder ter maior capacidade computacional que o roteador ADSL. Em particular, roteadores ADSL suportam uma quantidade limitada de sessões NAT simultâneas, devido à pequena quantidade de memória RAM disponível (novamente, por isso são baratos ;-). Tal limitação não existe para um computador com Linux.
  • Aplicações P2P (dentre outras) podem funcionar melhor: se for usado um computador para fazer o enlace PPPoE, programas nele executados podem se comunicar mais facilmente com a Internet. Isso se dá porque as comunicações entre esse computador e a Internet não são modificadas por NAT - e NAT atrapalha alguns tipos de comunicação, tais como P2P e VoIP.

... e desvantagens:

  • O equipamento interno precisa ser capaz de criar enlaces PPPoE: se for usado um computador, ele deve ter um software capaz de estabelecer esse tipo de enlace. Esse software precisaria assim ser instalado e devidamente configurado.
  • O equipamento interno precisa estar sempre ligado: para que o link para a Internet esteja sempre ativado, o equipamento interno precisa também ser mantido ligado. Se for usado um computador, isso significa um gasto maior de energia (mas talvez não seja significativo).
  • O equipamento interno fica mais exposto à Internet: como esse equipamento está diretamente ligado à Internet, há uma chance maior que seja invadido debido a essa exposição. Portanto tal equipamento deve ser protegido, bloqueando tentativas de acesso externas (algo nem sempre fácil de fazer). O uso de softwares para firewall torna-se essencial.


Para perceber as diferenças, vamos implantar o link para Internet com ADSL em modo bridge.

Preparação de um computador Linux para usar PPPoE

Em sistemas Linux baseados na distribuição Debian há duas maneiras de criar um enlace PPPoE:

  • Com o Network-Manager: o network-manager é um aplicativo que auxilia o estabelecimento de enlaces em geral (cabeado, sem-fio, discado, ...). Ele é acessado normalmente por uma applet na barra de aplicativos, no topo da tela.
  • Editando os arquivos de configuração de rede: essa forma é um pouco mais complicada, mas funciona em qualquer sistema Linux. A seguir há uma explicação sobre como realizá-la.

A forma manual de estabelecer o enlace PPPoE segue estes passos:

  1. Instale o software necessário:
    sudo apt-get install pppoe
    
  2. Edite o arquivo /etc/ppp/peers/adsl, que deve ficar com este conteúdo:
    pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1452 -C pji"
    noipdefault
    usepeerdns
    defaultroute
    hide-password
    lcp-echo-interval 20
    lcp-echo-failure 3
    connect /bin/true
    noauth
    persist
    mtu 1492
    noaccomp
    user usuario1
    default-asyncmap
    
  3. Edite o arquivo /etc/ppp/chap-secrets e acrescente o seguinte:
    usuario1   *   senha1
    
  4. Ative o enlace PPPoE executando o seguinte comando:
    sudo pppd call adsl
    
  5. Ative o encaminhamento de pacotes entre interfaces do seu PC: sendo o roteador da sua rede, ele deve ser capaz de fazer o encaminhamento de pacotes entre rede interna e externa:
    sudo sysctl -w net.ipv4.ip_forward=1
    
  6. Ative o NAT em seu PC: como ele agora é o roteador da sua rede, então ele precisará ser também o tradutor NAT:
    sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    

22/06: Projeto 2: Experimentando o link WAN

Aula 27 (continuação da aula 26)


27/06: Projeto 2: Conclusão

Aula 28

O projeto 2 envolveu a implantação de uma pequena rede com acesso a Internet. Inicialmente instalou-se o sistema operacional em um computador. Em seguida, gradualmente implantou-se a infraestrutura da rede. Por fim, algumas possibilidades de combinações entre equipamentos foram experimentadas, observando as implicações do ponto de vista do endereçamento e roteamento.

A conclusão do projeto 2 envolve cada equipe implantar a aplicação escolhida na aula de 16/05.

A apresentação do projeto será dia 04/07 (2a feira).

29/06: Projeto 2: Conclusão

Aula 29 (continuação da aula 28)

04/07: Projeto 2: Conclusão

Aula 30 (continuação da aula 28)

06/07: Projeto 2: Apresentação

11/07: Projeto 3 a rede de dados e a rede telefônica

Aula 32

No projeto 3, um serviço telefônico será adicionado à rede implantada até então. Esse serviço fará uso de aparelhos telefônicos convencionais e também dispositivos capazes de fazer chamadas de voz utilizando a rede de dados (ex: smartphones, computadores com softphones). Além disso, o serviço de voz a ser agregado à rede será implantado com diferentes tecnologias (convencional e por meio da rede de dados). A figura a seguir ilustra o acréscimo a ser feito inicialmente à rede:

Pji1-Projeto3-geral.png

Para começar, cada equipe deve instalar um telefone IP, e prepará-lo para uso. O objetivo é cada equipe conseguir fazer chamadas a qualquer das outras equipes.

Uma introdução a redes telefônicas

Uma rede telefônica pode ser vista de forma (muito) simplificada na figura abaixo. O objetivo desse diagrama é evidenciar alguns elementos existentes na borda dessa rede:

  • os assinantes com seus telefones e PBX (um tipo de central telefônica privativa)
  • o laço local, que é o par de fios metálicos que chega ao assinante
  • a interface FXO, que liga o PBX a um tronco analógico.
  • a interface FXS, que fornece a linha telefônica a telefones de ramais.

PJI1-Rede-relefonica-simples.png


Uma coisa importante a notar é que cada linha telefônica tem um número de assinante (o número de telefone). Esse número é fisicamente vinculado a essa linha, portanto qualquer aparelho telefônico a ela ligado irá atender por esse número. Outra coisa a se observar é que a rede telefônica tem uma infraestrutura exclusiva para o transporte das chamadas (quer dizer, toda a fiação e interligação de centrais mundo afora).


A figura abaixo mostra um diagrama simplificado de uma rede telefônica baseada em VoIP (Voz sobre IP). Alguns elementos importantes são:

  • o servidor SIP, que funciona como uma central telefônica para essa rede.
  • o telefone IP, que é um aparelho telefônico capaz de se comunicar diretamente por essa rede.
  • o ATA (Adaptador de Telefone Analógico), que possibilita usar essa rede com um telefone analógico convencional.
  • a infraestrutura da rede de dados, que possibilita a comunicação entre os telefones IP e o servidor SIP (e, claro, o transporte das chamadas)

Pji1-Rede-sip1.png


Na rede acima, o número de assinante usado por um telefone IP (ou ATA) é registrado no servidor SIP. Assim, qualquer telefone IP ou ATA pode personificar um determinado número de assinante, bastando que se registre nesse servidor. Outra diferença em relação à rede telefônica convencional é o uso da rede de dados (Internet) para a realização de chamadas. Portanto, não há uma rede exclusiva para o transporte das chamadas.

Por fim, ambas redes podem conviver e chamadas podem sair de uma rede e se destinar à outra. A figura abaixo mostra um exemplo simplificado de como essas redes podem se interligar.

Pji1-Rede-sip-pstn.png

Instalação de um telefone IP ou ATA

Tanto um telefone IP quanto um ATA são hosts de uma rede TCP/IP. Portanto, como todo host, eles precisam de algumas definições. Além disso, devem ser configuradas algumas informações específicas da rede telefônica VoIP:

  • O número do telefone, chamado de usuário SIP ou conta SIP.
  • A senha para verificação do usuário SIP: essa senha é utilizada para autorizar o usuário SIP junto ao servidor SIP. Lembre que o servidor SIP funciona como uma central telefônica para o serviço de voz a ser implantado.
  • O endereço do servidor SIP: alguns aparelhos pedem também os endereços do servidor de registro e proxy, que usualmente são os mesmos. O servidor SIP a ser usado deve ser o do provedor VoIP que fornece o serviço telefônico VoIP contratado (ver algumas opções no Brasil).
  • O domínio da rede telefônica VoIP a que ele pertence: isso é opcional em nosso experimento, porém em uma rede VoIP de fato tal informação é essencial.


Basicamente as informações acima são necessárias em qualquer telefone IP, ATA, softphone, ou dispositivo que use a rede telefônica VoIP. Porém cada equipamento tem suas particularidades, como se descobrirá no laboratório hoje.

Atividade

Hoje cada equipe deve conseguir ativar um telefone IP, e usá-lo para fazer chamadas para outras equipes.

Há dois tipos de telefone no laboratório:

  • Telefone IP: possuem toda a funcionalidade necessária para fazer chamadas de voz sobre a rede de dados (VoIP)
  • Telefones convencionais + ATA: a funcionalidade para fazer chamadas sobre a rede de dados é fornecida pelo ATA (Adaptador de Telefone Analógico). A ele se conecta um telefone analógico convencional, e com isso se conseguem fazer e receber chamadas de voz.

Em ambos os casos, devem-se configurar esses dispositivos com algumas informações:

  • Usuário: o número de ramal (ou mesmo de telefone). Use 1000+número de sua equipe (ex: equipe 1 usa 1001).
  • Senha: a senha para registro do dispositivo na central telefônica VoIP
  • Servidor SIP: endereço IP da central telefônica VoIP (no caso, 192.168.1.101)
  • Endereço IP: o endereço IP a ser usado pelo telefone ou ATA
  • Gateway: o roteador default do telefone ou ATA (no caso, o gateway da sua rede)

Tanto o ATA quanto o telefone IP podem ser configurados pelo teclado ou por uma página web. Ao menos o endereço IP precisa ser definido para acessar a página web. Cada modelo de equipamento tem suas particularidades, que estão explicadas em seus manuais.

Após configurar os equipamentos, teste a chamada entre equipes.

Extra: usando a rede telefônica VoIP com os smartphones

Os smartphones são capazes de fazerem chamados usando a rede telefônica VoIP que implantamos. Eles precisam de um app capaz de fazer e receber chamadas SIP (isso se chama softphone). Para Android alguns softphones são:

  • Zoiper
  • Linphone
  • CSipSimple
  • SIPdroid

A configuração desses app é muito parecida com a de telefones IP ou ATA, mas mais simples.

13/07: Projeto 3: instalação dos PBX das equipes

Aula 33

Nesta etapa do projeto 3, cada equipe deve ter o seu PBX IP capaz de fazer chamadas entre telefones e softphones. Lembrem que um PBX IP pode ser entendido como um pequena central telefônica privada capaz de fazer chamadas telefônicas através da Internet. Esse tipo de PBX usa alguma tecnologia VoIP (Voice over IP - Voz sobre IP) para fazer chamadas e transmitir a voz digitalizada entre os telefones. Na nossa instalação, a tecnologia usada se chama modelo SIP. Com esses recursos, pretende-se criar uma rede telefônica privativa em laboratório, em que todas as equipes podem fazer chamadas entre si, como mostrado na figura a seguir.

Pji1-projeto3-pbxs.png
Exemplo da rede telefônica no laboratório entre duas equipes. As linhas tracejadas mostram as etapas para o estabelecimento de uma chamada desde a Equipe A até Equipe B

Para realizar as atividades, serão usados alguns blocos de montagem:

  • PBX IP: um computador com software Asterisk devidamente instalado e configurado deve fazer o papel de PBX. Existem outros softwares capazes de transformarem um computador em PBX IP, tais como http://www.freeswitch.org Freeswitch] e Snep (este útlimo na verdade é composto por um Asterisk e uma interface de administração, mas ainda tem muitos bugs).
  • Telefones IP: telefone IP é o aparelho que contém todas as funcionalidades para fazer e receber chamadas VoIP. Ele tem as teclas para discagem, o bocal, e embute um pequeno computador para se comunicar pela rede.
  • ATA: o Adaptador de Telefone Analógico (ATA) é usado para tornar um telefone analógico capaz de fazer chamadas VoIP. O ATA contém um pequeno computador e interface de rede.
  • Softphone: um telefone IP implementado em software. Como ele pode-se transformar um computador, tablet ou smartphone em telefone IP capaz de fazer chamadas pela rede telefônica VoIP implantada. Exemplos de softphone são Jitsi (para computadores) e Zoiper (para tablets e smartphones Android).
  • Provedor SIP: este é um PBX IP especial, que tem papel de interconectar outros PBX IP e, possivelmente, prover acesso a PSTN. No nosso caso, ele vai interligar os PBX das equipes.

Atividade 1: rede telefônica VoIP de cada equipe

Cada equipe deve ter seu PBX IP instalado.

O primeiro passo é conseguir fazer chamadas entre telefones IP e softphones da própria equipe. Sendo assim, deve-se garantir que a rede IP esteja funcionando adequadamente:

  1. Roteador ADSL:
    1. Rede externa: interface WAN com endereço dinâmico (fornecido pelo provedor com PPPoE).
    2. Rede interna: interface LAN com endereço fixo.
    3. Roteamento: rota padrão definida diretamente pelo PPPoE.
    4. NAT ativado.
  2. Roteador Wireless
    1. Rede externa:interface WAN com endereço fixo na mesma faixa da LAN do Roteador ADSL.
    2. Rede interna: interface LAN com endereço fixo.
    3. Serviço DHCP para a LAN: faixa de endereços que não conflite com os endereços do roteador e servidor (central).
    4. Roteamento: rota padrão para o roteador ADSL
  3. Servidor (Central):
    1. Rede: interface com endereço fixo.
    2. Roteamento: rota padrão para o roteador Wireless.

Elementos básicos do Asterisk


Asterisk: uma solução completa de PABX baseado em software, permitindo ligar o mundo IP ao mundo da rede pública de telefonia comutada.


Basicamente dois componentes do Asterisk precisam ser entendidos para poder usá-lo:

  • Plano de discagem: o plano de discagem define como cada chamada deve ser processada. As instruções de processamento residem no arquivo de configuração /etc/asterisk/extensions.conf. O fluxo de processamento de chamadas pode ser visto resumidamente abaixo:

    Asterisk-fluxo.png
  • Canais: cada telefone SIP deve ter seu identificador cadastrado no Asterisk. O identificador pode tanto ser um número, análogo a um ramal, ou uma string alfanumérica. No terminologia do Asterisk, cada telefone SIP é chamado de canal SIP, e deve estar declarado em /etc/asterisk/sip.conf. Há outros tipos de canais além de SIP, os quais possibilitam integrar telefones analógicos e troncos digitais ao PBX.

Instalação do Asterisk

Instale o Asterisk no computador do centro de midia, e configure-o para possibilitar chamadas entre ramais da equipe:

  1. Instale o Asterisk:
    sudo apt-get install asterisk
    
  2. As configurações do Asterisk ficam no subdiretório /etc/asterisk. Precisaremos renomear alguns arquivos de configuração, pois iremos substitui-los por outros:
    cd /etc/asterisk
    sudo mv sip.conf sip.conf.old
    sudo mv extensions.conf extensions.conf.old
    
  3. Crie o arquivo /etc/asterisk/sip.conf, e nele grave o seguinte conteúdo:
    ; o ramal 1000
    [1000]
    username=1000
    secret=542431
    type=friend
    insecure=port,invite
    disallow=all
    allow=gsm
    allow=ulaw
    allow=alaw
    context=default
    host=dynamic
    qualify=yes
    directmedia=no
    
    ; o ramal 1001
    [1001]
    username=1001
    secret=542431
    type=friend
    insecure=port,invite
    disallow=all
    allow=gsm
    allow=ulaw
    allow=alaw
    context=default
    host=dynamic
    qualify=yes
    directmedia=no
    
  4. Crie o arquivo /etc/asterisk/extensions.conf, e nele grave o seguinte conteúdo:
    [default]
    ; qualquer número de destino com quatro dígitos é comutado automaticamente
    exten=>1000,1,Dial(SIP/1000)
    exten=>1001,1,Dial(SIP/1001)
    
  5. Reinicie o Asterisk:
    sudo service asterisk restart
    
  6. Crie um ramal para cada telefone IP ou softphone de sua equipe. Não esqueça de definir uma senha não óbvia para o seu ramal !
  7. Ative os telefones IP ou softphones, registrando-os no seu PBX IP. Você precisará do endereço IP do seu PBX, e do número de ramal com respectiva senha. Essas informações precisarão ser configuradas no telefone ou softphone.
  8. Teste chamadas entre esses telefones.
  9. Experimente acrescentar o seguinte a /etc/asterisk/extensions.conf:
    exten=>999,1,Answer()
    same=>n,wait(1)
    same=>n,Playback(tt-monkeys)
    same=>n,Wait(1)
    same=>n,Hangup()
    
    Em seguida execute este comando:
    sudo service asterisk restart
    
    ... e experimente chamar o número 999.
  10. Agora baixe este arquivo de som e grave-o em /var/tmp. Em seguida, modifique o plano de discagem para que a extensão 999 fique assim:
    exten=>999,1,Answer()
    same=>n,wait(1)
    same=>n,Playback(/var/tmp/vol2)
    same=>n,Wait(1)
    same=>n,Hangup()
    
    Em seguida execute este comando:
    sudo service asterisk restart
    
    ... e experimente chamar novamente o número 999.


18/07: Projeto 3: interligando os PBX das equipes

Aula 34

Continuando a implantação da rede telefônica, precisamos interligar os PBX das equipes:

Pji1-projeto3-pbxs.png


Atividade 1: rede telefônica VoIP entre as equipes

Nesta atividade, serão feitos acréscimos às configurações dos PBX IP para que chamadas entre equipes sejam possíveis. Para isso será necessário que cada equipe crie um tronco entre seu PBX IP e o Provedor SIP. Um tronco funciona como uma associação entre dois PBX, a qual serve para transportar chamadas. Um tronco é implantado como um par de canais SIP (ou usuários SIP):

  • um canal SIP serve para enviar chamadas através do tronco. No exemplo abaixo é o canal SIP ParaProvedor.
  • outro canal SIP é usado para receber chamadas vindas pelo tronco. No exemplo abaixo esse canal é equipeX.


A criação do tronco segue estes passos:

  1. Adicione um tronco com tecnologia SIP para o provedor. Isso implica acrescentar o seguinte ao arquivo /etc/asterisk/sip.conf:
    [general]
    externip=IP_externo_da_sua_equipe
    register=>equipeX:senhaX@192.168.1.101
    
    ; devem-se informar as redes privativas onde está o Asterisk (pode haver mais de uma ... basta repetir o 
    ; atributo localnet para cada subrede). Isso é importante para que o Asterisk saiba quando usar o IP
    ; público (para telefones fora de sua rede) ou privativo (telefones dentro de sua rede)
    localnet=prefixo/máscara
    
    ; Substitua X pelo número de sua equipe
    
    [equipeX]
    type=peer
    secret=senhaX
    host=192.168.1.101
    disallow=all
    allow=ulaw
    allow=alaw
    allow=gsm
    directmedia=no
    context=tronco; chamadas recebidas por este canal SIP serão encaminhadas de acordo com a seção "tronco" no plano de discagem
    qualify=yes
    insecure=invite,port
    
  2. Substitua o conteúdo de /etc/asterisk/extensions.conf pelo seguinte:
    [default]; aqui se processam as chamadas que vêm dos ramais internos
    exten =>_ZXXX,1,Dial(SIP/${EXTEN})
    same=>n,Hangup()
    
    ; esta regra possibilita que se chamem números das outras equipes
    exten => _0ZZXXX,1,Dial(SIP/equipeX/${EXTEN:1})
    same=>n,Hangup
    
    [tronco] ; aqui se processam as chamadas vindas do tronco
    exten =>_ZXXX,1,Dial(SIP/${EXTEN})
    same=>n,Hangup()
    
  3. Teste as chamadas entre equipes.

Plano de discagem com extensões genéricas

Extensões podem ser representadas de forma compacta com padrões de extensões. Com esse recurso, muitas extensões podem ser atendidas com um único conjunto de regras, evitando um plano de discagem repetitivo. Por exemplo, se uma empresa possui ramais entre 100 e 199, o plano de discagem pode ser escrito assim:

exten=>_1XX,1,Dial(SIP/${EXTEN})
same=>n,Hangup

A extensão _1XX contida na primeira linha está escrita como um padrão (pattern), pois inicia com o caractere _. Os caracteres que seguem _ indicam cada dígito que deve aparecer para satisfazer essa extensão. Nesse exemplo, deve aparecer 1 seguido de dois dígitos quaisquer entre 0 e 9 (é esse o significado do caractere X). Desta forma, essa extensão atende qualquer número entre 100 e 199. Por fim, o número de fato chamado é armazenado na variável ${EXTEN}, que pode assim ser usada dentro da regra de discagem.

Alguns caracteres têm significado especial em padrões, como mostrado no exemplo (caractere X). A tabela abaixo lista esses caracteres:

Caractere Descrição
X Qualquer dígito entre 0 e 9
Z Qualquer dígito entre 1 e 9
N Qualquer dígito entre 2 e 9
[13-6] Qualquer dígito entre os colchetes (no exemplo, 1,3,4,5,6)
. Qualquer sequência de um ou mais dígitos
! Qualquer sequência de zero ou mais dígitos

20/07: Projeto 3: interligando os PBX das equipes

Aula 35 (continuação Aula 34)

25/07: Projeto 3: Avaliação

27/07: Recuperações

- Recuperação projeto 1:

Executar os itens abaixo. Ao final os professores irão solicitar informações de como cada ponto foi executado.

  1. Baixar arquivos do link http://tele.sj.ifsc.edu.br/~msobral/pji/proj1/arquivos/ para terem arquivos com que trabalhar;
  2. Descompactar usando o tar;
  3. Renomear a música primavera.mp3 para outono.mp3;
  4. Criar diretórios a fim de organizar os arquivos baixados. Dentro do diretório home do seu usuário criar os subdiretórios musicas e videos e mover todas as músicas para o diretório musicas e todos os vídeos para o diretório videos. Ainda no diretório home do seu usuário criar o diretório protocolos e copiar o arquivo /etc/protocols para dentro dele;
  5. No diretório protocolos que foi criado, gerar um arquivo de texto com o seu nome e escrever dentro dele algo de seu interesse.
  6. Fazer um backup da pasta músicas usando a melhor compactação de arquivos possível.


- Recuperação projeto 2 e 3:

Executar os itens descritos no documento abaixo: