Guia do Linux/Avançado/Configurações especiais de Rede/IP Alias
IP Alias
editarEste recurso permite configurar uma interface de rede para responder por um ou mais IPs, que não precisam pertencer a mesma faixa. Para usuários externos, a impressão é que a rede tem "muitas" máquinas, quando na realidade apenas uma responde por todos estes endereços virtuais. Podemos citar algumas utilizações úteis deste recurso:
- Simular uma rede com diversas máquinas
- Construir virtual hosts baseados em IP
- Definir endereçamentos secundários para fins de análise e depuração de pacotes (principalmente como armadilhas para trojans)
- Colocação de serviços com operação restritas a interfaces em funcionamento através de faixas específicas usando as configurações da interface virtual
- Transição de IP de servidores de forma transparente
- Entre muitas outras. A idéia aqui é mostrar a simplicidade de se configurar este recurso e entender o processo, que é bastante simples.
Para configurar o recurso de IP Alias é necessário apenas que a opção IP Aliasing Support seja habilitada no kernel (como módulo ou embutida). Em nosso exemplo abaixo, temos uma rede com a interface eth0
configurada com o IP 192.168.1.1 (classe C privada) e queremos adicionar uma interface virtual que atenda pelo IP 172.16.0.1 (classe B privada) e depois seguir os seguintes passos:
- Ative a interface de rede com
ifconfig
ouifup
(caso esteja usando aDebian
). - Crie uma interface virtual usando o comando ifconfig eth0:0 172.16.0.1. Isto criará uma nova interface chamada eth0:0 que passará a responder pelo IP 172.16.0.1. É permitido o uso de nomes para especificar a interface virtual, como: eth0:rede1, eth0:rede2, eth0:escritório.
- Digite ifconfig para ver as configurações de sua nova interface de rede. Use o ping também para vê-la: ping 172.16.0.1.
eth0 Encapsulamento do Link: Ethernet Endereço de HW 00:80:AE:B3:AA:AA inet end.: 192.168.1.1 Bcast:192.168.1.255 Masc:255.255.255.0 UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1 RX packets:979 errors:0 dropped:0 overruns:0 frame:0 TX packets:1228 errors:0 dropped:0 overruns:0 carrier:0 colisões:1 txqueuelen:100 RX bytes:71516 (69.8 Kb) TX bytes:1146031 (1.0 Mb) IRQ:10 Endereço de E/S:0x300 eth0:0 Encapsulamento do Link: Ethernet Endereço de HW 00:80:AE:B3:AA:AA inet end.: 172.16.0.1 Bcast:172.16.0.255 Masc:255.255.255.0 UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1 IRQ:10 Endereço de E/S:0x300
Note que o MAC Address da placa eth0
e eth0:0
são o mesmo, indicando que a mesma interface atende ambos os IPs.
- Se necessário ajuste as rotas ou gateway com o comando
route
(veja [ch-rede.html#s-rede-rota-c Configurando uma rota no Linux, Seção 4.5.1]).
Para desativar uma interface de rede virtual, utilize a sintaxe: ifconfig eth0:0 down ou ifdown eth0:0 (caso esteja usando a Debian
).
Se o teste com o ping
não funcionar, verifique se possui o suporte a IP Alias no kernel, se o módulo precisa ser carregado manualmente (caso seu kernel não esteja compilado com o kmod
) ou se existe um firewall restritivo bloqueando seu IP.
Na distribuição Debian
a configuração de uma interface virtual pode ser feita de forma idêntica a interfaces estáticas padrão:
auto eth0 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 auto eth0:0 iface eth0:0 inet static address 172.16.0.1 netmask 255.255.0.0 network 172.16.0.1 broadcast 172.16.255.255
OBS1: Quando você desativa uma interface física (eth0
), todas as interfaces virtuais também são desativadas.
OBS2: Caso utilize um firewall (principalmente com a política padrão permissiva), esteja atento as modificações que precisa realizar para não comprometer a segurança de sua máquina. Caso tenha dados considerados seguros em sua máquina e esteja em dúvida sobre as implicações de segurança do IP Alias em sua máquina, consulte seu administrador de redes.
OBS3: Note que somente os 4 primeiros caracteres serão mostrados na saída do ifconfig
, desta forma procure utilizar no máximo esta quantidade de caracteres para evitar problemas durante uma futura administração do servidor, no caso de esquecimento do nome completo da interface virtual).