IER60808: Endereçamento IPv4

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



Como visto em Redes de Computadores, computadores e equipamentos na Internet (chamados de hosts) precisam ter um identificador único e que seja válido globalmente. Os endereços IP, definidos pelo protocolo da Internet (IP - Internet Protocol) são números de 32 bits que desempenham o papel de identificadores globais. Cada um desses endereços é comumente representado em uma notação decimal, com um número entre 0 e 255 para cada 8 bits, como mostrado na figura a seguir. Com isso, é possível em tese endereçar até hosts na Internet, o que equivale a pouco mais de 4 bilhões de endereços.

PJI3-Ip1.jpg
Um endereço IP apresentado em notação decimal e em binário

Configuração de endereços

O endereço IP de um host pode ser configurado de forma estática ou dinâmica. No primeiro caso, o usuário predefine o endereço IP no próprio equipamento. No segundo, o equipamento usa um protocolo especial de configuração para obter sua configuração de rede.


Um conjunto de informações são necessárias para que um host consiga efetivamente se comunicar em rede, as quais não se limitam ao endereço IP. Essas informações são:

  • Endereço IP e máscara de rede: um host precisa de um endereço para que possa se comunicar com outros hosts. A máscara de rede informa o tamanho da subrede IP em que ele se encontra (e com isso podem-se saber quais endereços IP fazem parte dessa subrede).
  • 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. 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). Assim, as aplicações se comunicam com o servidor DNS para resolver nomes de domínio e obter seus respectivos endereços IP. O endereço desse servidor deve ser configurado em cada host, para que se possam traduzir nomes de domínio.

Laboratórios

Configuração estática

Configuração temporária

A configuração temporária de endereços implica defini-los manualmente em um host por meio de programaas especiais, chamaos de utilitários de rede. Em computadores, esse tipo de configuração é característica de sistemas operacionais da família Unix (ex: sistemas Linux). Equipamentos de rede em geral também oferecem essa possibilidade, como será experimentado futuramente.

Em sistemas Linux, a configuração temporária pode ser feita com estes programas:

  • ifconfig: programa para configurar interfaces de rede
  • route: programa para manipular a tabela de rotas
  • ip: programa que possibilita configurar tanto interfaces quanto rotas

Exemplos de uso desses programas:

  1. Mostrar informações sobre uma interface de rede (por exemplo, a interface eth0):
    ifconfig eth0
    
  2. Modificar o endereço IP de uma interface de rede:
    sudo ifconfig eth0 10.0.0.10/28
    
  3. Desativar uma interface de rede:
    sudo ifconfig eth0 down
    
  4. Ativar uma interface de rede:
    sudo ifconfig eth0 up
    
  5. Mostrar a tabela de rotas:
    route -n
    
  6. Adicionar a rota estática default:
    # adiciona uma rota default: o gateway da rede é o roteador com IP 10.0.0.30
    sudo route add default gw 10.0.0.30
    
  7. Adicionar uma rota estática para uma determinada rede de destino:
    # adiciona uma rota para chegar na subrede 192.168.2.0/24: o gateway é o roteador com IP 10.0.0.30
    sudo route add -net 192.168.2.0/24 gw 10.0.0.30
    
  8. Remove uma rota:
    sudo route delete -net 192.168.2.0/24
    

Múltiplos endereços por interface

Ocasionalmente pode ser necessário que uma interface de rede possua mais de um endereço IP. Por exemplo, equipamentos de rede costumam possuir um endereço IP predefinido de fábrica e, ao instalá-los em uma rede, é necessário acessá-los pela primeira vez usando esse endereço. Assim, pode-se adicionar um endereço IP ao computador de onde se faz o acesso.

Em sistemas Linux essa técnica se chama IP Alias. Para usá-la deve-se acrescentar um sufixo ao nome da interface de rede em que se deseja acrescentar um endereço. Esse sufixo é da forma :X, sendo X um número. Por exemplo:

sudo ifconfig eth0:0 192.168.1.10/24
sudo ifconfig eth0:1 10.0.1.8/29
sudo ifconfig eth0:2 191.36.13.22/26

Para remover um endereço IP, basta reconfigurar a interface com o endereço IP 0.0.0.0:

sudo ifconfig eth0:0 0.0.0.0


Obs: no caso do Linux, isso vale somente para IPv4. No caso de IPv6 é um pouco diferente ...

Configuração permanente

A configuração estática envolve um usuário gravar a configuração de rede de forma persistente na memória do host. Cada tipo de equipamento apresenta um procedimento diferente para armazenar a configuração de rede estática. Por exemplo, em computadores com sistema operacional Linux da família Debian (tais como Debian, Ubuntu, Mint e muitos outros), a configuração de rede fica armazenada no arquivo /etc/network/interfaces:

iface eth0 inet static
  address 10.1.23.19
  netmask 255.255.255.0
  gateway 10.1.23.254
  dns-nameservers 8.8.8.8 8.8.4.4


Em roteadores sem-fio TP-Link WDR 4300, essa configuração de rede pode ser gravada por meio de uma interface web para gerenciamento do equipamento:

PJI3-Tplink-lan.jpg
Menu Network->LAN da interface web do roteador sem-fio TP-Link WDR4300


E, em roteadores Cisco, a configuração estática é feita por meio de comandos na CLI (Command Line Interface), os quais ficam gravados na memória permanente do roteador.

router# configure terminal
router(config)# interface e0
router(config-if)# ip address 10.1.23.19 255.255.255.0
router(config-if)# exit
router(config)# ip route 0.0.0.0 0.0.0.0 10.1.23.254
router(config)# exit
router# write memory
router# write terminal
Building configuration...

Current configuration : 472 bytes
!
version 12.3
!
hostname Router
!
interface Ethernet0
 ip address 10.1.23.19 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.23.254

Atividade

PJI3-Lab3-1.jpg
Rede dos experimentos

Tomando como base a rede do laboratório mostrada na figura, realize estes procedimentos na máquina virtual "Gráfico-3":

  1. Inicie a máquina virtual Gráfico-3
  2. Configure de forma temporária essa máquina virtual para que use um endereço IP da subrede 172.18.20.128/25. Cuidado com conflitos de IP !
  3. Teste a comunicação com as demais máquinas virtuais do laboratório
  4. Teste a comunicação com os computadores do laboratório, que estão na subrede 191.36.13.0/26.
  5. Sabendo que o roteador do laboratório possui endereço 172.18.20.129, e os servidores DNS do IFSC são 191.36.8.2 e 191.36.8.3, faça com que sua máquina virtual consiga acessar a Internet
  6. Existe um equipamento de rede que possui o endereço 10.0.0.1. Use a técnica de IP Alias para acessá-lo ... (ele pode ser acessado por este link)
  7. Reinicie sua máquina virtual. Como ficou sua configuração de rede após o reboot ?
  8. Configure de forma permanente o endereço IP dessa máquina virtual
  9. Teste a comunicação a partir dessa máquina virtual com os demais computadores do laboratório
Configuração dinâmica

Um host pode obter suas informações de rede dinamicamente por meio do protocolo DHCP (Dynamic Host Configuration Protocol). Desta forma, não há necessidade de o usuário saber as informações de rede necessárias para configurar corretamente seu equipamento. Isso torna possível também centralizar e automatizar a distribuição de endereços de rede para hosts. Se alguma das informações precisar ser modificada (ex: o roteador default), basta alterá-las no serviço DHCP para que toda a rede seja eventualmente reconfigurada.

A maioria dos equipamentos de usuários vem de fábrica com configuração de rede dinâmica. Isso vale para computadores pessoais, em que os sistemas operacionais detectam as interfaces de rede e as configuram com DHCP, smartphones, tablets, câmeras IP, ATA e telefones IP, impressoras, e possivelmente outros equipamentos. Em computadores pessoais com sistemas operacionais Linux da família Debian, uma interface pode ser configurada dinamicamente se for declarada em /etc/network/interfaces desta forma:

iface eth0 inet dhcp


A configuração de interfaces com DHCP no arquivo /etc/network/interfaces não é o procedimento usual, ao menos não em versões desktop desses sistemas operacionais. Nesses casos, o mais comum é que tal configuração seja feita por um daemon chamado network-manager. Esse daemon implementa um serviço de configuração de rede automática para o computador, e tenta configurar automaticamente todas as interfaces de rede que não foram configuradas em /etc/network/interfaces.

Protocolo DHCP

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 pode haver um ou mais servidores DHCP. Um computador que precise obter sua configuração de rede envia mensagens DHCPDISCOVER em broadcast para o port UDP 67. Um servidor DHCP, ao receber tais mensagens, responde com uma mensagem DHCPOFFER também em broadcast, contendo uma configuração de rede ofertada. O computador então envia novamente em broadcast uma mensagem DHCPREQUEST, requisitando o endereço IP ofertado pelo servidor. Finalmente, o servidor responde com uma mensagem DHCPACK, completando a configuração do computador cliente. Como a configuração tem um tempo de validade (chamado de lease time), o cliente deve periodicamente renová-la junto ao servidor DHCP, para poder continuar usando-a. O diagrama abaixo mostra simplificadamente esse comportamento:

Dhcp-diag.gif



Abaixo segue um diagrama de estados detalhado do DHCP, mostrando todas as possíveis transições do protocolo:

Dhcpfsm.png

O servidor DHCP identifica cada cliente pelo seu endereço MAC. Assim, o DHCP está fortemente relacionado a redes locais IEEE 802.3 (Ethernet) e IEEE 802.11 (WiFi).

Atividade


  1. Execute a máquina virtual Gráfico-2.
  2. Entre com a conta aluno e senha aluno.
  3. Em um terminal, observe o endereço IP obtido pela interface de rede:
    sudo ifconfig enp0s3
    
  4. Agora investigue como a interface obtém sua configuração de rede. Isso envolve usar o wireshark para analisar a troca de mensagens realizada para obter a configuração de rede.
    1. Primeiro, instale o wireshark com este comando no terminal:
      sudo apt update
      sudo apt install wireshark
      
    2. Em seguida, execute o wireshark:
      sudo wireshark
      
    3. Na tela do wireshark, defina o filtro de captura e a interface de rede como mostrado a seguir (após definir o filtro de captura, faça um clique duplo na interface any):
      IER-Wireshark-dhcp.png
    4. Clique na applet de configuração de rede e desative a rede:
      IER-Nm-applet2.png
    5. Em seguida, na applet de configuração de rede reative a rede
    6. Identifique as mensagens do protocolo DHCP no wireshark, comparando-as com este diagrama.
    7. Na mensagem DHCP do tipo DHCP offer, enviada pelo servidor, observe as opções de configuração de rede oferecidas pelo servidor. Compare as informações ali contidas com a configuração de rede obtida pelo seu computador.
  5. Um ponto de acesso Wifi foi implantado no laboratório, o qual anuncia a rede IER, com senha ier60808. Entre nessa rede com seu celular.
  6. Verifique qual o endereço IP e demais informações de rede seu celular obteve. Em qual subrede está o endereço obtido ? Compare com o endereço que se obtém ao acessar a rede IFSC-alunos.
  7. Tente fazer ping para seu celular a partir de seu computador. Isso funciona ? E se o celular estiver na rede IFSC-alunos ?
  8. Curiosidade: faça uma varredura da rede do laboratório usando o software nmap. Para isso é necessário usar uma máquina virtual.
    1. Procure todos os hosts existentes na rede:
      sudo nmap -sP 191.36.13.0/26
      
    2. Identifique os sistemas operacionais dos hosts existentes na rede:
      sudo nmap -A -T4 191.36.13.0/26
      
  9. DESAFIO: sem configurar o endereço IP de sua interface de rede, como se pode deduzir qual a subrede IP usada na rede local do seu computador ?