Mudanças entre as edições de "PJI11103-2016-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 1: Linha 1:
 
* Endereço encurtado: http://bit.ly/pji320162
 
* Endereço encurtado: http://bit.ly/pji320162
 
* Link cronograma: http://bit.ly/2cONkrw
 
* Link cronograma: http://bit.ly/2cONkrw
* [[PJI11103-2016-2-config|Link para as configurações feitas pelos alunos]] ([http://bit.ly/pji320162config alternativo])
+
* [[PJI11103-2016-2-config|Link para as configurações feitas pelos alunos]] ([http://bit.ly/pji320162-config alternativo])
  
  

Edição das 11h57min de 22 de setembro de 2016


Diário de aula de PJI - 2016-2 - Prof. Simara Sonaglio

Dados Importantes

Professora: Simara Sonaglio
Email: simara.sonaglio@ifsc.edu.br

Professor: Ederson Torresini
Email: etorresini@ifsc.edu.br

Encontros: quartas e quintas das 18:50 às 22:10 horas.

Diário de aulas

10/08/16: Apresentação da disciplina e discussão do projeto a ser desenvolvido

Aula 1


Itens sugeridos pelos alunos para possível implementação no projeto:

  1. Provimento com IP válido via fibra [[1]] [[2]] e redundância via rádio [[3]] [[4]]
  2. Controle de acesso [[5]] [[6]] [[7]]
  3. Wi-Fi [[8]] [[9]]
  4. Combate automatizado a incêndio
  5. Sistema de energia com nobreak
  6. Câmera de vigilância com acesso remoto
  7. Sistema de alarme
  8. Backup de dados
  9. Acesso remoto ao sistema da empresa
  10. Provimento via fibra e par metálico
  11. Dispositivos móveis para controle de estoque
  12. Acesso a visitantes e colaboradores
  13. Servidores de banco de dados
  14. Sensores de alarme e presença
  15. Identificação facial
  16. Serviço de domínio integrado com tag
  17. Portão com portal RFID [[10]]
  18. Servidor de email
  19. Servidor HTTP na nuvem
  20. Servidor DHCP
  21. Servidor DNS com cache
  22. Firewall
  23. Proxy com controle por usuário
  24. PABX IP com URA
  25. Registro na operadora VoIP
  26. Wi-Fi para visitantes e para colaboradores com controle de acesso [[11]] [[12]] [[13]] apostila
  27. Túnel MPLS com serviços integrados, como VoIP
  28. Sistema ERP [[14]] via Web integrado a RFID
  29. Câmeras sem fio
  30. Banco de baterias
  31. CFTV com acesso externo
  32. Notificação de recebimento/entrega de carga no galpão
  33. Rastreamento por GPS da entrega integrado ao site
  34. Antena repetidora GSM

11/08/16: Discussão sobre os itens levantados pelo alunos

Aula 2
Física/Enlace

Provimento com IP válido via fibra e redundância via rádio Wi-Fi
Sistema de energia com nobreak
Provimento via fibra e par metálico
Wi-Fi para visitantes e para colaboradores com controle de acesso
Banco de baterias
Antena repetidora GSM

Rede

Firewall
Túnel MPLS com serviços integrados, como VoIP

Aplicações

Controle de acesso
Combate automatizado a incêndio
Câmera de vigilância com acesso remoto
Sistema de alarme
Backup de dados
Acesso remoto ao sistema da empresa
Dispositivos móveis para controle de estoque
Acesso a visitantes e colaboradores
Servidores de banco de dados
Sensores de alarme e presença
Identificação facial
Serviço de domínio integrado com tag
Portão com portal RFID
Servidor de email
Servidor HTTP na nuvem
Servidor DHCP
Servidor DNS com cache
Proxy com controle por usuário
PABX IP com URA
Registro na operadora VoIP
Sistema ERP via Web integrado a RFID
Câmeras sem fio
CFTV com acesso externo
Notificação de recebimento/entrega de carga no galpão
Rastreamento por GPS da entrega integrado ao site


Levantamento de itens necessários para implantação das soluções propostas:

Provimento via fibra
  1. Conversores ópticos/elétricos em ambos os lados (OLT e ONT)
  2. Fibras


Enlace via rádio
  1. Antenas no cliente e na operadora
  2. Rádios no cliente e na operadora


ADSL
  1. Par metálico
  2. Modens em ambos os lados
  3. DSLAM na operadora
  4. Concentrador de acesso
  5. Servidor RADIUS


Wi-Fi com controle de acesso integrado
e com ampla área de cobertura
  1. APs
  2. Mapeamento de áreas de cobertura de cada AP
  3. Uso de canais diferentes nos APs
  4. Integração servidor RADIUS
  5. Integração com LDAP

17/08/16: Discussão sobre os itens levantados pelo alunos

Aula 3

Memória da aula será acrescentada posteriormente

18/08/16: ADSL

Aula 4


Na infraestrutura ADSL, cabem destacar alguns elementos:

  • modem ADSL:O Modem ADSL que temos em casa também é chamado por outro nome: tranceptor. Os engenheiros na companhia telefônica ou no provedor de internet (ISP) o chamam de ATU-R. Independentemente do nome pelo qual é chamado, ele é o ponto em que os dados do computador ou rede do usuário se conectam com a linha

DSL. O Modem pode operar basicamente de duas formas: como roteador ou como bridge. Quando funciona como roteador, o modem possui recursos internos para estabelecer a conexão lógica com o AC. Quando funciona como bridge, os recursos necessários para o estabelecimento de uma conexão lógica devem estar instalados no computador, como o protocolo PPPoE.

  • splitter: filtro que separa os sinais de voz e de dados. São usados tanto do lado do assinante quanto no DSLAM.
  • 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.
  • 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 1


Cada equipe deve estabelecer seu enlace WAN usando ADSL. O modem ADSL deve ser configurado para trabalhar em modo PPPoE. Em seguida, fazer as configurações de rede necessárias em uma máquina virtual e fazer testes diversos afim de testar a conectividade de sua rede.


Configurações ADSL

Cada link ADSL deve ter seu IP dinamicamente 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


ATIVIDADE 2


Nesta atividade o modem deve ser configurado para operar em modo Bridge e um computador Linux deve ser preparado para user PPPoE.


A seguir há uma explicação sobre como realizar as configurações necessárias para estabelecer o enlace PPPoE em computador Linux:

  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. Faça testes de conectividade


PPPoE (PPP over Ethernet)


PPPoE define um método para encapsular quadros PPP dentro de quadros Ethernet, e foi definido na RFC 2516. Ele foi criado para facilitar a integração de usuários discados e banda-larga em provedores de acesso (ISP - Internet Service Providers). Além disso, torna mais fácil o controle de acesso, de uso da rede, e contabilização para usuários que a acessam via rede Ethernet. Assim, é possível implantar uma rede em que os usuários, para conseguirem acesso, precisam se autenticar como em um serviço discado. Uma vez obtido o acesso, pode-se também impor limitações de uso de banda de acordo com o usuário. Exemplos de infraestruturas que podem se beneficiar com essa técnica são redes de condomínios e de prédios comerciais. Finalmente, PPPoE é usado como protocolo de enlace em acessos aDSL, ilustrado na figura abaixo.

Pppoe architecture.gif


No PPPoE suas PDUs são encapsuladas em quadros Ethernet, usando o ethertype 8863H (estágio de descoberta) ou 8864H (estágio de sessão). Devido ao cabeçalho PPPoE (6 bytes) combinado ao identificador de protocolo do quadro PPP (2 bytes), a MTU em enlaces PPPoE não pode ser maior que 1492 bytes. O quadro PPP é simplificado, não possuindo as flags delimitadoras e os campos Address, Control e FCS. A PDU PPPoE é mostrada a seguir:


Pppoe-pdu.png


Em um enlace PPPoE um dos nodos é o host (cliente), e o outro o concentrador de acesso (AC, que tem papel de servidor). O estabelecimento do enlace é iniciado pelo host, que procura um AC e em seguida solicita o início do enlace. Esse procedimento é composto por por dois estágios:

  • Descoberta (Discovery): o cliente descobre um concentrador de acesso (AC) para se conectar. Ocorre uma troca de 4 PDUs de controle:
    • PADI (PPPoE Active Discovery Indication): enviado em broadcast pelo cliente para descobrir os AC.
    • PADO (PPPoE Active Discovery Offer): resposta enviada por um ou mais AC, contendo seus identificadores e nomes de serviços disponíveis (no âmbito do PPPoE).
    • PADR (PPPoE Active Discovery Request): enviado pelo cliente para o AC escolhido, requisitando o início de uma sessão.
    • PADS (PPPoE Active Discovery Session-Confirmation): resposta do AC escolhido.

      Pppoe-discovery.png

  • Sessão (Session): nessa etapa são trocados quadros PPP como no estabelecimento de um enlace PPP usual. A sessão pode ser encerrada com a terminação PPP (i.e., via protocolo LCP), ou com a PDU PPPoE PADT (PPPoE Active Discovery Terminate).

ATIVIDADE 3


Na Atividade 3 os alunos deverão, em um único grupo, criar o AC da operadora ADSL que será utilizada no projeto. Para isso devem executar nesta máquina que será o AC os seguintes passos:

  1. Instalar o pacote no AC: sudo apt-get install pppoe</syntaxhighlight>
  2. No AC crie o arquivo /etc/ppp/pppoe-server-options com o seguinte conteúdo:

require-chap noauth login lcp-echo-interval 10 lcp-echo-failure 2 ms-dns 200.135.37.65 netmask 255.255.255.0 noipdefault debug kdebug 4 </syntaxhighlight>

  1. Crie no AC o arquivo /etc/ppp/chap-secrets com o seguinte conteúdo:

usuario1 * senha1 </syntaxhighlight>

  1. Crie o arquivo /etc/ppp/faixa-ip no AC com o seguinte conteúdo:

192.168.10X.10-50</syntaxhighlight>

  1. Ative o servidor PPPoE no AC:

pppoe-server -C pji -L 192.168.10X.200 -p /etc/ppp/faixa-ip -I eth1 </syntaxhighlight>

  1. Em máquinas virtuais, testar estabelecer os enlaces PPPoE conforme foi feito na Atividade 2.
  2. Veja no tcpdump o tráfego que foi criado durante o estabelecimento do enlace. Qual a sequência de quadros PPPoE trocada entre AC e computador?
  3. Observe se foi criada a interface ppp0. Confira o IP que ela está usando, o tipo de encapsulamento e a MTU. Confira também as interfaces ppp no AC, observando as mesmas informações.
  4. Tente usar a rede a partir do computador. Primeiro faça ping no AC, e em seguida tente acessar a rede externa. Foi possível?
  5. Coloque a máquina AC para rotear e mascarar pacotes.

Demais itens configurados

  1. A máquina onde foi feito o AC deve fazer a interface entre a rede da "Operadora" e a Internet. Sendo assim, esta máquina precisa rotear pacotes. O roteamento de pacotes nesta máquina pode ser ativado utilizando-se um dos dois comandos a seguir, sendo a primeira forma persistente e a segunda será perdida no boot: sudo sysctl -w net.ipv4.ip_forward=1

echo 1 > /proc/sys/net/ipv4/ip_forward</syntaxhighlight>

  1. Esta máquina também deve fazer NAT para trocar IPs privados por IPs públicos. Isto pode ser feito com o seguinte comando: sudo iptables -t nat -A POSTROUTING -o int_saida -j MASQUERADE </syntaxhighlight>
  2. Para que estas configurações não sejam perdidas quando a máquina for reiniciada, deve-se inserir estes comandos no arquivo /etc/rc.local

24/08/16: ADSL

Aula 5

Continuação da Aula 4.

25/08/16: LAN

Aula 6

O problema dos ciclos (caminhos fechados) em uma rede local ethernet

A interligação acidental de duas portas de um switch cria um ciclo na rede local (loop). Mas isso pode ser feito também de forma intencional, pois em LANs grandes pode ser desejável ter enlaces redundantes, para evitar que a interrupção de um enlace isole parte da rede. A existência de interligações alternativas portanto é algo que pode ocorrer em uma rede local, seja por acidente ou com a finalidade de conferir algum grau de tolerância a falhas na infraestrutura da rede. Um caso em que uma rede possui um ciclo intencionalmente colocado pode ser visto na LAN abaixo:

LAN-anel-stp.png

Apesar de desejável em algumas situações, uma topologia de rede com caminhos fechados, como visto na figura acima, não pode ser instalada sem alguns cuidados. Uma rede como essa trancaria devido a um efeito chamado de tempestade de broadcasts (broadcast storm). Isso acontece porque, ao receber um quadro em broadcast, um switch sempre o retransmite por todas as demais portas. Para que a rede acima funcione como esperado, uma ou mais portas de switches precisarão ser desativadas de forma que o caminho fechado seja removido. Ter que fazer isso manualmente tira o sentido de ter tal configuração para tolerância a falhas (e não impede um "acidente" como aquele descrito no início desta secão), por isso foi criado o protocolo STP (Spanning Tree Protocol, definido na norma IEEE 802.1d) para realizar automaticamente essa tarefa.

VLAN

Os primeiros switches com suporte a VLANs as implementavam de forma legada (i.e. não seguiam um padrão da indústria). Isso impedia que houvesse interoperabilidade entre equipamentos de diferentes fabricantes. Logo a IEEE formou um grupo de trabalho para propor mecanismos padronizados para implantar VLANs, dando origem ao padrão IEEE 802.1q. Os fabricantes de equipamentos de rede o adoataram largamente, suplantando outras tecnologias legadas (ex: ISL e VTP da Cisco). Com isso, VLANs IEEE 802.1q podem ser criadas usando switches de fabricantes diferentes.

Atualmente, a implantação de VLANs depende de switches com suporte ao padrão IEEE 802.1q. Assim, verifique quais dos switches do laboratório possuem suporte a VLAN:

Uma VLAN é identificada por um número, chamado VID (VLAN Identifier), sendo que a VLAN com VID 1 é considerada a VLAN default (configuração de fábrica). Em um switch com suporte a VLAN IEEE 802.1q, cada porta possui um (ou mais ...) VID, o que define a que VLAN pertence. Assim, para criar uma VLAN, devem-se modificar os VID das portas de switches que dela farão parte. Por exemplo, em uma pequena rede com duas VLANs as portas dos switches podem estar configuradas da seguinte forma:


Além do VID, a configuração da porta de um switch deve especificar o modo de operação da VLAN:

  • tagged: cada quadro transmitido ou recebido por essa porta deve conter o número da VLAN a que pertence. Esse modo é usado normalmente em portas que interligam switches.
  • untagged: quadros que entram e saem pela porta não possuem informação sobre a VLAN a que pertencem. Usado normalmente para conectar computadores e servidores a switches.


Esses modos tagged e untagged implicam haver uma forma de um quadro Ethernet informar a que VLAN pertence. Isso é usado para restringir a propagação de quadros, fazendo com que sejam recebidos e transmitidos somente por portas de switches que fazem parte de suas VLANs.


O padrão IEEE 802.1q define, entre outras coisas, uma extensão ao quadro MAC para identificar a que VLAN este pertence. Essa extensão, denominada tag (etiqueta) e mostrada na figura abaixo, compõe-se de 4 bytes situados entre os campos de endereço de origem e Type. O identificador de VLAN (VID) ocupa 12 bits, o que possibilita portanto 4096 diferentes VLANs.


Quadro-8021q.png
Quadro ethernet com a TAG IEEE 802.1q


A tag de VLAN, inserida em quadros Ethernet, está diretamente relacionada com os modos tagged e untagged de portas de switches. Portas em modo tagged transmitem e recebem quadros que possuem tag, e portas em modo untagged recebem e transmitem quadros que não possuem tag. Isso foi pensado para tornar a implantação de VLANs transparente para os usuários finais, pois seus computadores não precisarão saber que existem VLANs (i.e. não precisarão interpretar tags). Por isso equipamentos que não interpretam tags são denominados VLAN-unaware (desconhecem VLAN), e equipamentos que recebem e transmitem quadros com tag são referidos como VLAN-aware (conhecem VLAN).


Exemplo: simulador de switch com VLAN:
Esta animação possibilita simular a configuração de VLANs em um switch, e efetuar testes de transmissão. Experimente criar diferentes VLANs e observar o efeito em transmissões unicast e broadcast (clique na figura para acessar o simulador).

Um simulador de VLANs

Atividade

Acessar o Switch Catalyst 2960 (Arquivo:2960 pbr.pdf) e criar VLANs. Associar algumas interfaces a estas VLANs e posteriormente conectar computadores a elas e fazer testes de conectividades.


Alguns comandos úteis no Switch Catalyst 2960:

1- Modo privilegiado >enable

2- Modo configuração

  1. configure terminal

3- Criar vlan (config)#vlan 10

4- Coloar interface em vlan (config)# interface fastethernet 0/6

5- Inserir interface na vlan (config if)# switchport access vlan 10

6- Ver vlans (config)#do show vlan brief

7- Remover vlan (config)#no vlan 10

8- Colocar interface em modo trunk (config-if)# switchport mode trunk

9- Permitir determinadas vlans no trunk (config-if)# switchport trunk allow vlan 15-20

10- Verificar configuração da interface

  1. show interface brief

11- Configurar um range de portas (config)# interface range f0/4 - 5

14- Salve sua configuração através do comando abaixo (config)# copy running-config startup-config </syntaxhighlight>


Links úteis | Comandos Comandos

31/08/16: LAN

Aula 7

Agregação de enlace

Após implantada é natural que uma rede cresça ou tenha sua topologia alterada. Assim, seu dimensionamento, pensado (espera-se) cuidadosamente durante seu projeto, pode não ser mais o ideal ou mesmo tornar-se inadequado. Isso é particularmente observado nos equipamentos que interligam a rede, tais como switches de núcleo (core switches).

Num projeto de uma rede de médio ou grande porte, um ou mais switches de núcleo interligam os demais segmentos da rede. Desta forma, por esses switches potencialmente trafega uma grande quantidade de informação. Se os segmentos de rede forem ampliados, a quantidade de tráfego por esses switches possivelmente aumentará. Dependendo do caso, os enlaces entre esses switches e os segmentos de rede poderiam ficar saturados - isto é, não dariam mais conta da intensidade de tráfego que devem transportar. Nesse caso, uma saída poderia ser aumentar as capacidades desses enlaces.

As capacidades de enlaces Ethernet de um switch são determinadas pelas tecnologias por ele suportadas. Isso quer dizer que uma porta de switch tem sua capacidade predefinida, e não há como modificá-la. No entanto, uma forma barata de aumentar a capacidade de enlaces Ethernet é agregar duas ou mais portas de switches para que operem como se fossem uma única porta. Essa técnica tem tanta utilidade que o IEEE (órgão que padroniza diversas tecnologias de camada física e enlace de redes), criou para ele uma norma específica chamada IEEE 802.1AX.


Exemplo de uma LAN com agregação de enlaces - figura obtida do manual do switch D-Link DES-3526


A norma IEEE 802.1AX define como equipamentos devem implementar a agregação de enlaces (link aggregation). Graças a ela, switches de diferentes fabricantes podem interoperar. De acordo com essa norma, a agregação de enlaces implica agrupar portas do switch para operarem como uma única porta, como pode ser visto na figura abaixo. No entanto, cada porta individual mantém suas funções normalmente, com seu MAC trabalhando de forma independente. A agregação de enlaces faz com que os quadros sejam enviados de forma balanceada pelas portas agrupadas, assim distribuindo o tráfego entre elas. O interessante disso é que se uma porta perder comunicação (ex: o cabo for desconectado), o grupo de portas se ajusta para usar somente as portas que possuem comunicação. Assim, além de aumentar a capacidade de enlaces, essa técnica proporciona tolerância a falhas de portas ou enlaces individuais.

Localização da agregação de enlaces na arquitetura de redes IEEE 802 - figura obtida da norma IEEE 802.1AX

Atividade

Criar um Link Aggregation no Switch e configurar os servidores tanto da Operadora como do Galpão para o utilizarem. Nas máquinas é necessário instalar o seguinte pacote:

apt-get install -y ifenslave</syntaxhighlight>

01/09/16: DHCP

Aula 8

DHCP

Ver capítulo 31 da apostila.

Toda máquina que for participar de uma rede, deve primeiro, ter um endereço IP. Em uma rede pequena (até 20 máquinas), a tarefa de configurar IPs é relativamente simples. Mas em uma rede grande com centenas de máquinas, esta tarefa de endereçamento torna-se trabalhosa. Para facilitar as coisas, foi criado um mecanismo de endereçamento automático de IP para máquinas em uma rede TCP/IP: o DHCP (Dynamic Host Configuration Protocol – Protocolo de configuração de máquinas dinâmico). Um servidor DHCP pode facilitar muito a vida do administrador da rede.

Dentre as configurações de serviços que podem ser passadas ao host cliente por dhcp são:

  1. Endereçamento IP, máscara de subrede, Gateway, Servidor(es) DNS,
  2. nome de host e/ou de domínio;
  3. Servidores e domínio NIS (autenticação);
  4. Servidores WINS (para redes Microsoft®);
  5. Servidores NTP (Hora);
  6. Imagens de boot para Terminais burros;

Como podemos observar, tudo o que é necessário para que uma máquina esteja em condições de ingressar em uma rede e usufruir de tudo o que ela possa oferecer, o DHCP se faz útil para sua configuração automática.

Protocolo DHCP

Entenda, com a explicação a seguir, como funciona o protocolo DHCP.

a) DHCP Discover – Quando uma máquina é ligada, ela tem um serviço (daemon) cliente do DHCP configurado para localizar o servidor neste momento. Este cliente DHCP envia um pacote UDP com destino à porta 67 do servidor chamado “DHCP Discover”. Este pacote broadcast tem o endereço IP de destino 255.255.255.255 e mac address de destino ff:ff:ff:ff:ff:ff.

DHCP-discover.png

b) DHCP Offer – O servidor ao receber o referido pacote em sua porta ethernet, irá analisá-lo e, em sua tabela de IPs, reservar um endereço e preparar um pacote de resposta ao cliente solicitante. Este pacote de resposta chama-se DHCP Offer.

DHCP-offer.png

O único meio de a estação cliente saber que o pacote DHCP Offer se destina à ela, é através do mac address.

c) DHCP Request – O cliente ao receber o pacote do servidor, decide se aceita a configuração oferecida pois pode receber mais de uma oferta. Em caso positivo, retorna um novo pacote ao servidor, comunicando o aceitamento da oferta. Este pacote chama-se DHCP Request.

DHCP-request.png

d) DHCP Ack – Para finalizar a “conversação” entre cliente e servidor DHCP, este finaliza (efetiva) o aluguel (lease) do endereço ao cliente em sua tabela de IPs, e envia àquele, um pacote DHCP Ack para que ele ajuste suas configurações.

DHCP-ack.png

Atividade

Em nosso experimento será usado o servidor DHCP desenvolvido pelo ISC. Para usá-lo devem-se seguir os passos descritos abaixo.

  1. Instalar o serviço:
    apt-get install isc-dhcp-server
    
  2. Configurar em /etc/dhcp/dhcpd.conf, definindo as configurações globais e as redes onde o servidor DHCP irá ofertar endereços. Apague todo o conteúdo do arquivo original. X = 4, 5, 6 ou 7 a sua escolha, porém deve ser acordado entre os alunos quem usará cada faixa para não haver duplicação.
    default-lease-time 600;
    max-lease-time 7200;
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
       #
       # Faixa de IPs disponíveis:
       range 192.168.1.X 192.168.1.Y;
       #
       # Máscara de rede
       option subnet-mask 255.255.255.0;
       #
       #Endereço de 'broadcast'
       option broadcast-address 192.168.1.255;
       #
       #Endereço do roteador
       option routers 192.168.1.1;
       #
       #DNS
       option domain-name-servers 200.135.37.65;
    }
    
  3. Editar a interface que vai atender ao DHCP, no exemplo abaixo eth0, se a sua máquina utilizar uma interface diferente de eth0 faça a devida correção, por exemplo, eth1, eth2...:
    vi /etc/default/isc-dhcp-server
         INTERFACES="eth0"
    
  4. Iniciar o servidor DHCP:
    service isc-dhcp-server restart
    
  5. Verifique o log no servidor e observe a troca de mensagens entre o cliente e o servidor:
     tail -f /var/log/syslog
    
  6. Intale e use o utilitário o dhclient de sua máquina virtual com ambiente gráfico como cliente para testes
    apt-get install isc-dhcp-client
    dhclient -v eth0
    
  7. Verifique o log no servidor e observe a troca de mensagens entre o cliente e o servidor.
     tail -f /var/log/syslog
    
  8. Verifique os aluguéis no seu servidor com:
    cat /var/lib/dhcp/dhcpd.leases
    
  9. Desafio: fixe um IP para algum cliente seu (por exemplo seu vizinho).

Maiores detalhes sobre esse servidor DHCP:

08/09/16: Configurações diversas

Aula 9

Criar uma interface lógica em /etc/network/interfaces. Já configuramos a interface, falta apenas associar um IP a esta interface:

#eth0 é manualmente configurada e escrava de bond0 auto eth0 iface eth0 inet manual bond-master bond0

  1. eth1 é manualmente configurada e escrava de bond0

auto eth1 iface eth1 inet manual bond-master bond0

  1. bond0 pode ser configurada como qualquer outra interface de rede.
  2. bond0 é configurada estaticamente.

auto bond0 iface bond0 inet static address 192.168.1.10 gateway 192.168.1.1 netmask 255.255.255.0 bond-mode 802.3ad bond-miimon 100 bond-slaves eth0 eth1</syntaxhighlight>

Para verificar sua configuração do Link Aggregation execute o comando abaixo:

cat /proc/net/bonding/bond0</syntaxhighlight>

Ou:

watch cat /proc/net/bonding/bond0</syntaxhighlight>


Para configuração de VLANs é necessário instalar o seguinte pacote:

apt-get install -y vlan</syntaxhighlight>

Configuração do arquivo /etc/network/interfaces usando VLANs:

  1. eth0 é manualmente configurada e escrava de bond0

auto eth0 iface eth0 inet manual bond-master bond0

  1. eth1 é manualmente configurada e escrava de bond0

auto eth1 iface eth1 inet manual bond-master bond0

  1. bond0 é manualmente configurada

auto bond0 iface bond0 inet manual

 bond-mode 4
 bond-miimon 100
 bond-lacp-rate 1
 bond-xmit-hash-policy layer3+4
 bond-slaves eth0 eth1
  1. Configuração da interface VLAN bond0.10

auto bond0.10 iface bond0.10 inet static

 address 192.168.10.10
 netmask 255.255.255.0
 gateway 192.168.10.1
  1. Configuração da interface VLAN bond0.20

auto bond0.20 iface bond0.20 inet static

 address 192.168.20.10
 netmask 255.255.255.0
 gateway 192.168.20.1

</syntaxhighlight>

NTPdate

  1. Instale o pacote

apt-get install ntpdate </syntaxhighlight>

  1. sincronize o sistema

ntpdate ntp.on.br </syntaxhighlight>

  1. Configure para sincronização automática diariamente fazendo uso do Crontab -- Agendador de tarefas do Linux. Material para consulta: Apostila, capítulo 19. Ao criar o script abaixo (no diretório daily) o mesmo será executado diariamente pelo crontab.
    1. Crie o script. vi /etc/cron.daily/ntpdate
  2. !/bin/sh

ntpdate ntp.ubuntu.com </syntaxhighlight>

    1. Torne o script executável:

chmod 755 /etc/cron.daily/ntpdate </syntaxhighlight>

14/09/16: Conclusão das configurações dos Servidores

Aula 10

15/09/16: Avaliação

Aula 11

A avaliação desta primeira etapa do projeto consiste em um Relatório Individual a ser entregue via e-mail (simara.sonaglio@ifsc.edu.br e etorresini@ifsc.edu.br) em formato PDF até o final da aula.


Neste relatório deve constar:

  1. Descrição do cenário completo implementado;
  2. Descrição das configurações efetuadas tanto na Operadora como no cliente (Galpão);
  3. Ao descrever as atividades realizadas deve-se destacar quais as camadas (física, enlace ou rede) que estão envolvidas em cada etapa.

21/09/16: DNS

Aula 12

Ver capítulo 25 da apostila.

DNS (Domain Name System) é uma base de dados distribuída e hierárquica. Nela se armazenam informações para mapear nomes de máquinas da Internet para endereços IP e vice-versa, informação para roteamento de email, e outros dados utilizados por aplicações da Internet.

A informação armazenada no DNS é identificada por nomes de domínio que são organizados em uma árvore, de acordo com as divisões administrativas ou organizacionais. Cada nodo dessa árvore, chamado de domínio, possui um rótulo. O nome de domínio de um nodo é a concatenação de todos os rótulos no caminho do nodo até a raiz. Isto é representado como uma string de rótulos listados da direita pra esquerda e separados por pontos (ex: ifsc.edu.br, sj.ifsc.edu.br). Um rótulo precisa ser único somente dentro do domínio pai a que pertence.

Por exemplo, um nome de domínio de uma máquina no IFSC pode ser mail.ifsc.edu.br., em que o "." (último) significa o root level domain .br é o domínio do topo da hierarquia (no Brasil feito em [15])ao qual mail.sj.ifsc.edu.br pertence. .ifsc.edu é um subdomínio de .br., e mail o nome da máquina em questão.

Por razões administrativas, o espaço de nomes é dividido em áreas chamadas de zonas, cada uma iniciando em um nodo e se estendendo para baixo para os nodos folhas ou nodos onde outras zonas iniciam. Os dados de cada zona são guardados em um servidor de nomes, que responde a consultas sobre uma zona usando o protocolo DNS.

Clientes buscam informação no DNS usando uma biblioteca de resolução (resolver library), que envia as consultas para um ou mais servidores de nomes e interpreta as respostas.

Dns2.jpg

(tirado do manual do BIND9)

Ver também o livro sobre DNS e BIND da O'Reilly.

Registros DNS

Cada rótulo na hierarquia DNS possui um conjunto de informações associadas a si. Essas informações são guardas em registros de diferentes tipos, dependendo de seu significado e propósito. Cada consulta ao DNS retorna assim as informações do registro pedido associado ao rótulo. Por exemplo, para ver o registro de endereço IP associado a www.ifsc.edu.br pode-se executar esse comando (o resultado teve alguns comentários removidos):

root@freeman:~$ dig sj.ifsc.edu.br mx

;; QUESTION SECTION:
;sj.ifsc.edu.br.			IN	MX

;; ANSWER SECTION:
sj.ifsc.edu.br.		3600	IN	MX	10 hendrix.sj.ifsc.edu.br.

;; AUTHORITY SECTION:
sj.ifsc.edu.br.		3600	IN	NS	ns.pop-udesc.rct-sc.br.
sj.ifsc.edu.br.		3600	IN	NS	ns.pop-ufsc.rct-sc.br.
sj.ifsc.edu.br.		3600	IN	NS	hendrix.sj.ifsc.edu.br.

;; ADDITIONAL SECTION:
hendrix.sj.ifsc.edu.br.	3600	IN	A	200.135.37.65
ns.pop-ufsc.rct-sc.br.	11513	IN	A	200.135.15.3
ns.pop-udesc.rct-sc.br.	37206	IN	A	200.135.14.1

Cada uma das informações acima mostra um determinado registro e seu conteúdo, como descrito na tabela abaixo:

Nome TTL Classe Registro Conteúdo do registro
hendrix.sj.ifsc.edu.br. 3600 IN A 200.135.37.65
sj.ifsc.edu.br. 3600 IN NS hendrix.sj.ifsc.edu.br.
sj.ifsc.edu.br. 3600 IN MX 10 hendrix.sj.ifsc.edu.br.

Obs: TTL (Time To Live) é o tempo de validade (em segundos) da informação retornada do servidor de nomes, e classe é o tipo de endereço (no caso IN equivale a endereços Internet).

Os tipos de registros mais comuns são:

Registro Descrição Exemplo
A Endereço (Address) IPv4 www.sj.ifsc.edu.br. IN A 200.135.37.76
AAAA Endereço (Address) IPv6 www.sj.ifsc.edu.br. IN AAAA 2804:1454:1004:100::76
NS Servidor de nomes (Name Server) sj.ifsc.edu.br. IN NS hendrix.sj.ifsc.edu.br.
CNAME Apelido (Canonical Name) mail.sj.ifsc.edu.br. IN CNAME hendrix.sj.ifsc.edu.br.
MX Roteador de email (Mail Exchanger) sj.ifsc.edu.br. IN MX 0 mail.sj.ifsc.edu.br.
SOA dados sobre o domínio (Start of Authority) sj.ifsc.edu.br. IN SOA hendrix.sj.ifsc.edu.br. root.sj.ifsc.edu.br. ( 2009120102 1200 120 604800 3600 )
PTR Ponteiro para nome (Pointer) 65.37.135.200.in-addr.arpa. IN PTR hendrix.sj.ifsc.edu.br.
TXT Texto genérico (Text) sj.ifsc.edu.br IN TXT "v=spf1 a mx ~all"

Configuração

1. Instale o servidor DNS em sua máquina:apt-get install bind9. Instalando o Bind.</syntaxhighlight> 2. Como o arquivo principal /etc/bind/named.conf faz apenas referências a outros 3 arquivos, o primeiro arquivo de fato a ser modificado é /etc/bind/named.conf.options:

options {
   ...
   listen-on-v6 { any; };
   listen-on { any; };
   allow-recursion { 127.0.0.0/8; 10.0.0.16/30; };
   allow-query { any; };
   allow-query-cache { any; };
};

assumindo, assim como nos outros serviços (como DHCP), que a rede local é 10.0.0.16/30.

3. Enquanto que o arquivo anterior tratava do serviço em linhas gerais, no arquivo /etc/bind/named.conf.local será criado o domínio redes.sj.ifsc.edu.br e seu reverso:

...
zone "redes.sj.ifsc.edu.br" {
   type master;
   file "/etc/bind/redes.sj.ifsc.edu.br";
};
zone "10.in-addr.arpa" {
   type master;
   file "/etc/bind/10.in-addr.arpa";
};

Obs: Deve-se alterar o domínio redes.sj.ifsc.edu.br pelo domínio que você realmente deseja criar. Este é apenas um exemplo =)

4. Próxima etapa: as informações específicas de domínio em /etc/bind/redes.sj.ifsc.edu.br:

$TTL 86400
@         IN   SOA   ns1.redes.sj.ifsc.edu.br.   ederson.redes.sj.ifsc.edu.br. (
    2010033101   ; serial
            1d   ; refresh
            1h   ; retry
            1w   ; expire
            1d   ; negative cache ttl
)
@        IN   NS     ns1
ns1      IN   A      10.0.0.1
www      IN   CNAME  ns1
servidor IN   CNAME  ns1
  • A primeira linha ($TTL) indica o tempo que os registros permanecem no cache do DNS sem atualização e é obrigatória, normalmente é dada em segundos, mas pode ser dada em horas, dias, semanas;
  • A segunda linha: início da configuração da zona de domínio, contém inicialmente o nome da zona (representado por um sinal de @ o que equivale ao nome da zona de domínio). A sigla IN indicando que se refere a Internet, a sigla SOA indicando que se trata do início do documento, o nome do servidor primário DNS e o e-mail do administrador;
  • Depois há uma série de números, que obrigatoriamente devem ser informados, esses números indicam respectivamente:
  1. O número de série da zona de domínio, normalmente iniciando com o ano, seguido do mês, dia e um número sequencial qualquer.
  2. Período de refresh para servidores slave.
  3. Período de espera até uma nova tentativa de refresh em caso de erro.
  4. Período de expiração para servidores slave e
  5. TTL default para os RR que não possuem valor especificado.
  • Em seguida informamos os nameservers (NS), no caso ns1;
  • Podemos informar também um registro do tipo MX (Mail Exchanger) que se trata do servidor de e-mail no recebimento de e-mails;
  • E por último foram feitas as associações entre nomes de máquinas e seus respectivos IP’s.

5. Configuração do DNS reverso, arquivo /etc/bind/10.in-addr.arpa:

$TTL 86400
@      IN   SOA   ns1.redes.sj.ifsc.edu.br.   ederson.redes.sj.ifsc.edu.br. (
    2010033101   ; serial
            1d   ; refresh
            1h   ; retry
            1w   ; expire
            1d   ; negative cache ttl
)
@      IN   NS    ns1.redes.sj.ifsc.edu.br.
1.0.0 IN   PTR   ns1

6. Como este serviço pode rodar com má configuração, é interessante (re)iniciar o serviço com um monitor dos registros em uma janela:

tail -f /var/log/daemon.log

7. E em outra janela reiniciar o serviço:

/etc/init.d/bind9 restart

Testes

  1. Altere o arquivo /etc/resolv.conf

nameserver IP-do-seu-DNS </syntaxhighlight>

  1. Utilize o comando dig para testes diversos ao seu domínio. Abaixo alguns exemplos:dig -x 150.162.12.25 ; consulta ao DNS reverso

dig www.das.ufsc.br ; consulta ao DNS direto dig +trace www.polito.it ; consulta ao DNS direto mostrando toda a árvore de DNS consultados dig @200.135.37.65 www.polito.it ; consulta ao servidor DNS 200.135.37.65</syntaxhighlight>

  1. Você também pode fazer testes de ping à maquinas configuradas no seu domínio.