Este post mostra como aplicar o recurso de IP aliasing a uma interface de rede em uma máquina Linux — o que permite que uma única interface física tenha mais de um endereço IP (como se você tivesse várias placas de rede independentes no seu computador).
A maioria das distro Linux atuais tem o recurso de IP aliasing compilado no kernel. Se este não for o seu caso, você vai ter que carregar o módulo, via insmod
O recurso de IP aliasing consiste na associação de um ou mais endereços IP a uma única interface de rede física.
A partir daí, um nó da rede pode ter múltiplas conexões, cada qual servindo a um propósito diferente.
(Wikipedia).
Motivos para usar o recurso de IP aliasing
Há várias razões para alguém querer organizar seu sistema através do uso de várias interfaces lógicas de rede.
Com este recurso, o seu computador vai ficar parecendo “várias computadores” dentro da rede — um pode ser o servidor de impressão, outro o servidor de arquivos, um “terceiro” o servidor web etc.
Esta situação pode ser útil se você tem planos de realmente introduzir outra(s) máquina ao seu parque atual e deseja testar as configurações — basta, depois, transferir tudo pro novo servidor.
O caso contrário também é interessante — concentrar todas as funções de vários servidores em um único, mais parrudo, para poupar o trabalho de manutenção e administração.
Alguns usuários fazem uso do recurso para poder manter seu computador ligado a 2 (ou mais) subredes distintas, simultaneamente.
A vantagem que se sobressai no uso do IP aliasing é que não precisa ter um endereço IP para cada peça de hardware — pelo contrário, você pode gerar um pool de interfaces de rede virtuais (ou aliases) em um único dispositivo.
Como configurar IP aliasing com o ifconfig
A ferramenta ifconfig já foi abordada em outros artigos — recomendo, caso você tenha interesse, ver outros exemplos práticos de uso deste utilitário.
Imagine que tenhamos um interface Ethernet ‘eth0’ no endereço IP 192.168.0.150 e queremos criar um alias ‘eth0:0’ com o endereço 192.168.0.151. Para fazer isto, siga o exemplo:
sudo ifconfig eth0:0 192.168.0.151
Para testar, use o ping:
ping 192.168.0.151
ou use o próprio ifconfig:
ifconfig
... eth0 Link encap:Ethernet Endereço de HW 50:b7:c3:04:da:48 inet end.: 192.168.0.150 Bcast:192.168.0.255 Masc:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 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:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) eth0:0 Link encap:Ethernet Endereço de HW 50:b7:c3:04:da:48 inet end.: 192.168.0.151 Bcast:192.168.0.255 Masc:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Métrica:1 ...
Como criar interfaces de rede virtuais permanentes
Até agora, as alterações podem ser desfeitas com um simples reboot — ou seja, não são permanentes.
Para que elas persistam após a reinicialização, é necessário editar o arquivo (nas distribuições derivadas do Debian) /etc/network/interfaces
.
Abra o arquivo com o seu editor favorito e acrescente (ou altere) de acordo com o exemplo a seguir:
auto eth0:0 iface eth0:0 inet static name eth0 Alias address 192.168.0.151 netmask 255.255.255.0 broadcast 192.168.0.255 network 192.168.0.0
Grave o arquivo /etc/network/interfaces e reinicie o serviço de rede do seu sistema:
sudo service networking restart
ou
sudo /etc/init.d/networking restart
Da mesma forma como você procedeu até aqui, pode continuar a criar novas interfaces lógicas de rede: eth0:1, eth0:2, eth0:3 … eth0:254.
Referências
O comando ifconfig, em exemplos práticos: https://elias.praciano.com/2015/05/como-configurar-sua-interface-de-rede-com-o-ifconfig/.
Penguintutor: http://www.penguintutor.com/linux/networking-ip-alias-tutorial.
Wikipedia – IP aliasing: http://en.wikipedia.org/wiki/IP_aliasing.
Yourownlinux: http://www.yourownlinux.com/2013/09/how-to-create-alias-for-network.html.
One reply on “IP aliasing no Linux”
Como eu pingo estes alias-IP a partir de uma maquina na mesma subrede na AWS ou a partir da internet. O alias foi criado permanentemente, mas eu não consigo pingar. Pingo o 172.31.31.40 (instancia Linux), mas não pingo meus alias 172.31.31.41…45.