Rede e Roteamento
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,0 1,1 1,2 VALLE, O. T. Adminstração de Redes com Linux: Fundamentos e práticas, IFSC, Florianópolis, 2010.
- ↑ 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,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)