Rede e Roteamento

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

Rede e Roteamento

Configuração típica de uma rede institucional

[1] Descrição dos principais elementos da rede:

  • Roteador de acesso a Internet, provendo serviços como:
    • Firewall: barreira de proteção para bloquear acesso a conteúdo malicioso;
    • Proxy/Cache: intermediário para requisições entre clientes e servidores Web;
    • DMZ (DeMilitarized Zone): área de rede da organização acessada externamente, localizada entre a rede interna e a Internet;
    • Rede Privativa: área da rede interna a instituição, não acessada diretamente da Internet;
    • Roteador NAT: Possibilita que um único endereço IP público possa ser traduzido em endereços IP privados na rede interna.
  • Servidor de serviços externos, localizado na DMZ, oferecendo serviços como:
    • Servidor DNS, resolvedor nomes de nomes de domínio;
    • Servidor de Email para os usuários da organização.
    • Servidor WWW para páginas da organização e dos usuários;
    • Servidor FTP e SSH para os usuários poderem alterar arquivos no servidor.
  • Switch gerenciável, permitindo a configuração de VLANs;
  • Servidor de serviços internos, localizado na rede privativa, oferecendo serviços como:
    • Servidor DHCP para prover IP dinâmico para os computadores da rede interna;
    • Servidor de arquivos e impressão;
    • Administração de cotas de disco para os usuários e grupos;
    • Servidor Samba para compartilhamento com máquinas Windows;
    • Servidor FTP e SSH para os usuários poderem alterar arquivos no servidor.
    • Serviço LDAP, fornecendo controle de login na rede;
  • Impressora de rede;
  • Ponto de acesso sem fio.

O objetivo deste tópico é mostrar como configurar interfaces de rede em um servidor Linux, bem como configura-lo como roteador e como provedor de serviços de rede.

Configuração de interface de rede

Para adicionar uma máquina na rede é obrigatória a configuração de no mínimo dois parâmetros, o endereço IP e a máscara de rede. Com isto a máquina já está apta para se comunicar com outras na mesma rede local.

Para uma configuração completa é ainda necessário definir o nome da máquina, o roteador padrão (default gateway) e o servidor de nomes (DNS).

Todos estes parâmetros podem ser configurados estaticamente pelo administrador, ou dinamicamente por meio de um servidor DHCP. A configuração estática é recomendada para servidores, já a configuração dinâmica é utilizada para máquinas de uso geral [1].

/etc/network/interfaces

O arquivo interfaces contém a configuração das interfaces de rede ativadas automaticamente na hora do boot.

Por exemplo:

evandro@ubuntuServer:/etc/network$ more interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
No exemplo está indicado que a interface eth0 recebe configuração via DHCP.

ifconfig

O aplicativo ifconfig pode ser utilizado para visualizar a configuração ou configurar uma interface de rede. Se nenhum argumento for passado na chamada do ifconfig, o comando mostra a configuração atual de cada interface de rede.

Exemplo
Saída do comando ifconfig:
evandro@ubuntuServer:~$ ifconfig
eth0     Link encap:Ethernet  Endereço de HW 08:00:27:44:99:83  
         inet end.: 192.168.1.67  Bcast:192.168.1.255  Masc:255.255.255.0
         endereço inet6: fe80::a00:27ff:fe44:9983/64 Escopo:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1
         pacotes RX:152 erros:0 descartados:0 excesso:0 quadro:0
         Pacotes TX:85 erros:0 descartados:0 excesso:0 portadora:0
         colisões:0 txqueuelen:1000 

         RX bytes:19360 (19.3 KB) TX bytes:11957 (11.9 KB)
lo       Link encap:Loopback Local  
         inet end.: 127.0.0.1  Masc:255.0.0.0
         endereço inet6: ::1/128 Escopo:Máquina
         UP LOOPBACK RUNNING  MTU:65536  Métrica:1
         pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
         Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
         colisões:0 txqueuelen:0 
         RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Descrição da saída do comando ifconfig

Interfaces de rede:

  • eth0 -> Configuração da interface de rede cabeada (placa de rede);
  • lo -> Configuração da interface de loopback, utilizado para testes locais do protocolo IP;

Parâmetros principais indicados para interface: eth0

  • Encapsulamento do Link: Ethernet -> Indica que o tipo de rede é Ethernet;
  • inet end: 192.168.1.67 -> Endereço IP;
  • Masc: 255.255.255.0 -> Máscara de rede;
  • Bcast: 192.168.1.255 -> Endereço de broadcast;
  • Endereço de HW: 08:00:27:44:99:83 -> Endereço físico da interface;
  • endereço inet6: fe80::a00:27ff:fe44:9983/64 Escopo:Link -> Endereço IPv6 de escopo local gerado por autoconfiguração
  • MTU: 1500 -> Maximum Transfer Unit -> Tamanho máximo do datagrama suportado pelo enlace

Comandos de configuração de rede com ifconfig

Referências: [2]

Configurar uma interface de rede (a interface fica automaticamente ativada):

ifconfig eth1 192.168.2.100 netmask 255.255.255.0

Desativar uma interface:

ifconfig eth1 down

Ativar uma interface:

ifconfig eth1 up

Ao se configurar uma interface de rede, cria-se uma rota automática para a sub-rede diretamente acessível via aquela interface. Isto se chama roteamento mínimo.

A configuração de uma interface de rede com ifconfig não é permanente no sistema. Caso se deseje uma configuração permanente deve-se editar o arquivo /etc/network/interfaces.

route

O comando route mostra e manipula tabelas de roteamento no Linux.

Para verificar a tabela de roteamento do computador, executar o comando:

route -n
Exemplo
evandro@ubuntuServer:~$ route -n
Tabela de Roteamento IP do Kernel
Destino         Roteador        MáscaraGen.    Opções Métrica Ref   Uso Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
  • Na primeira linha o destino 0.0.0.0 indica uma rota default, ou qualquer IP diferente da rede local -> Para tal a saída é o roteador padrão 192.168.1.1.
  • Na segunda linha o destino 192.168.1.0 indica a rede local -> Para tal, o roteador 0.0.0.0 indica que não há necessidade de roteamento pois o destino está na própria rede.

Definição de rotas estáticas

Rotas estáticas podem ser adicionadas a uma tabela de roteamento de um host com os comandos:

  • Configuração do roteador padrão da rede:
route add default gw 192.168.1.254 dev eth0
  • Adição de uma rota estática em um roteador:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.2 dev eth1
  • Remover uma rota:
route del -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.2 dev eth1

IP alias

Pode-se associar mais de um endereço a uma mesma interface de rede, os chamados IP alias. Isto pode ser útil em configurações especiais, por exemplo, quando temos duas sub-redes compartilhando o mesmo domínio de colisão [1].

ifconfig eth0:0 192.168.10.100 netmask 255.255.255.0

ifconfig eth0:1 192.168.20.100 netmask 255.255.255.0

evandro@ubuntuServer:~$ ifconfig
eth0     Link encap:Ethernet  Endereço de HW 08:00:27:44:99:83  
         inet end.: 192.168.1.67  Bcast:192.168.1.255  Masc:255.255.255.0
         endereço inet6: fe80::a00:27ff:fe44:9983/64 Escopo:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1
         pacotes RX:480 erros:0 descartados:0 excesso:0 quadro:0
         Pacotes TX:296 erros:0 descartados:0 excesso:0 portadora:0
         colisões:0 txqueuelen:1000 
         RX bytes:50458 (50.4 KB) TX bytes:38253 (38.2 KB)

eth0:0   Link encap:Ethernet  Endereço de HW 08:00:27:44:99:83  
         inet end.: 192.168.10.100  Bcast:192.168.10.255  Masc:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1

eth0:1   Link encap:Ethernet  Endereço de HW 08:00:27:44:99:83  
         inet end.: 192.168.20.100  Bcast:192.168.20.255  Masc:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Métrica:1

lo       Link encap:Loopback Local  
         inet end.: 127.0.0.1  Masc:255.0.0.0
         endereço inet6: ::1/128 Escopo:Máquina
         UP LOOPBACK RUNNING  MTU:65536  Métrica:1
         pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
         Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
         colisões:0 txqueuelen:0 
         RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

evandro@ubuntuServer:~$ route -n
Tabela de Roteamento IP do Kernel
Destino         Roteador        MáscaraGen.    Opções Métrica Ref   Uso Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.20.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

Configuração do cliente DNS

A configuração cliente do servidor de nomes (DNS) indica qual o servidor de nomes será consultado para traduzir nomes de domínio para endereços IP.

No Ubuntu o arquivo de configuração do DNS é o /etc/resolve.conf e é atualizado automaticamente pelo sistema.

Para se editar manualmente este arquivo deve-se desabilitar o serviço automático de atualização, através do comando dpkg-reconfigure resolvconf, escolhendo a primeira opção como yes e as demais opções deixando o padrão. Em seguida edita-se o arquivo /etc/resolv.conf, por exemplo:

#DNS público da Google
nameserver 8.8.8.8

Configuração de servidor para compartilhar conexão com a Internet

Um servidor com duas placas de rede pode ser configurado como roteador, separando o tráfego proveniente da Internet do tráfego da rede local.

Exemplo de uma configuração típica de um servidor com duas placas
Referência [3].

No exemplo a interface eth0 usa endereços IP privados na faixa 192.168.1.x/24. A interface eth1 é configurada como cliente DHCP, recebendo endereço IP do provedor.

Se o acesso a Internet é provido via ADSL é recomendável manter o modem configurado como bridge, desta forma o servidor recebe a configuração completa do endereçamento IP do provedor e acesso a todas as portas de entrada, permitindo que o servidor seja acessado remotamente via SSH [3].

Exemplo de configuração do arquivo /etc/network/interfaces
auto lo
iface lo inet loopback

iface eth0 inet static
  address 192.168.1.1
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255

iface eth1 inet dhcp

A interface de rede do servidor voltada para a rede interna (eth0) deve receber um endereço IP estático, dentro da faixa de IP privados escolhida para a rede interna. O endereço IP de rede local do servidor será o roteador padrão (gateway) da rede.

Para configurar as demais estações da rede interna pode-se utilizar configuração via DHCP, com o servidor de configuração dinâmica de IP sendo provido pelo servidor.

Ativando o servidor como roteador

Para ativar o roteamento no servidor deve-se executar o comando:

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

Com isto o servidor assume papel de roteador, encaminhando para a Internet pacotes originados na rede local.

NAT

O NAT (Network Address Translation) é um mecanismo que possibilita a uma rede local usar apenas um endereço IP público, no que concerne ao mundo exterior, e utilizar endereços IP privados no que concerne a rede interna.

Configuração do NAT no servidor
Referência: [2]

O NAT no Ubuntu se configura com iptables.

As regras devem ser postas na tabela nat, e aplicadas a chain POSTROUTING, como no seguinte exemplo:

modprobe iptable_nat
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

O primeiro comando ativa o NAT no módulo iptables.

O segundo comando define a regra para fazer com que todo o tráfego originado em 192.168.1.0/24, e que sai pela interface eth1 deve ser mascarado com o endereço IP dessa interface. Esta regra diz o seguinte: todos os pacotes que passarem (POSTROUTING) por esta máquina com origem de 192.168.1.0/24 e sairem pela interface eth1 serão mascarados, ou seja sairão desta máquina com o endereço de origem como sendo da eth1. O alvo MASQUERADE foi criado para ser usado com links dinâmicos (tipicamente discados ou ADSL), pois os mapeamentos se perdem se o link sair do ar.


Referências

  1. 1,0 1,1 1,2 VALLE, O. T. Adminstração de Redes com Linux: Fundamentos e práticas, IFSC, Florianópolis, 2010.
  2. 2,0 2,1 VALLE, O. T. Gerência de Redes, Diário Aula, 2014. http://wiki.sj.ifsc.edu.br/wiki/index.php/GER20706-2014-1
  3. 3,0 3,1 MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.

--Evandro.cantu (discussão) 18h43min de 22 de novembro de 2015 (BRST)