ifconfig não mostra todos os IPs vinculados à máquina

11

Eu configurei vários endereços IP em uma caixa do ubuntu, mas quando executo, ifconfigele mostra apenas um deles. No entanto, sou capaz de executar ping em todos os outros endereços atribuídos a esta máquina.

/etc/network/interface conteúdo:

# 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 static
     address 192.168.202.11
     netmask 255.255.255.0
     network 192.168.202.0
     broadcast 192.168.202.255
     gateway 192.168.202.1

# dns-* options are implemented by the resolvconf package, if installed   
dns-search idil.dz1.da

auto eth0:1    
iface eth0:1 inet static
     address 192.168.202.12   
     netmask 255.255.255.0

auto eth0:2
iface eth0:2 inet static
     address 192.168.202.13
     netmask 255.255.255.0

auto eth0:3
iface eth0:3 inet static
     address 192.168.202.14
     netmask 255.255.255.0

auto eth0:4
iface eth0:4 inet static
     address 192.168.202.15
     netmask 255.255.255.0

auto eth0:5
iface eth0:5 inet static
     address 192.168.202.16   
     netmask 255.255.255.0

No entanto, a saída do ifconfigé apenas:

192.168.202.11

pankaj sharma
fonte
ifconfig -a exibe tudo?
Alex R
está mostrando apenas o endereço IP eth0 .. :(
pankaj sharma
1
Qual versão do Ubuntu você está executando? Por favor, adicione suas informações ao bug # 921280 também.
Jdthood
1
ip addr showfunciona
xinthose

Respostas:

20

ifconfigé essencialmente reprovado, embora não haja planos de que eu saiba se livrar dele. A substituição é o ipcomando. O equivalente moderno ifconfigpor si só é ip address list.

Por que ifconfigfoi substituído por ip? Muitas funcionalidades novas foram adicionadas às redes Linux nas décadas anteriores ifconfig. Isso envolveu uma API totalmente nova (netlink) para a ferramenta de espaço do usuário falar com o kernel para configurar a rede. Era muito mais prático escrever uma nova ferramenta para mapear melhor a nova funcionalidade através da API netlink e até a linha de comando, do que tentar adaptar a ifconfigferramenta antiga . Confira a página de manual do ip (8) para conhecer todas as novidades interessantes que você pode fazer agora.

A API do kernel usada ifconfige a ifconfigprópria ferramenta permanecem para compatibilidade com versões anteriores, mas essa interface é cega para qualquer coisa que não seja facilmente mapeada para o modelo antigo.

A razão por que ifconfignão mostrar os aliases IP é que parece que eles estão sendo adicionados por Debian de ifupdown(o pacote que alças /etc/network/interfaces) usando um mecanismo diferente que não adiciona os rótulos :1, :2etc. Assim, a ifconfigferramenta é cego para eles, como a API antiga determinava esses rótulos e, portanto, os endereços extras não são mapeados para a API antiga. Na página de manual do endereço IP (8) :

          Each address may be tagged with a label string.  In order to
          preserve compatibility with Linux-2.0 net aliases, this string
          must coincide with the name of the device or must be prefixed
          with the device name followed by colon.

Os bugs vinculados na resposta do maggotbrain parecem estar focados em adicionar suporte ifconfigpara ler endereços sem rótulos. Outra abordagem pode ser a ifupdowncriação de endereços com rótulos, de modo a ifconfigpoder vê-los sem modificação.

Robie Basak
fonte
0

Isso provavelmente é um bug no pacote net-tools e, ifconfigespecificamente.

Consulte os erros da barra de ativação aqui e aqui para obter informações adicionais.

Se você inserir suas interfaces manualmente, a partir da linha de comando, usando o ifconfigseguinte (seguindo a configuração acima):

sudo ifconfig eth0:1 192.168.202.12 netmask 255.255.255.0
sudo ifconfig eth0:2 192.168.202.13 netmask 255.255.255.0
sudo ifconfig eth0:3 192.168.202.14 netmask 255.255.255.0
sudo ifconfig eth0:4 192.168.202.15 netmask 255.255.255.0
sudo ifconfig eth0:5 192.168.202.16 netmask 255.255.255.0

Você terá essas interfaces exibidas, conforme o esperado, ao executar ifconfig.

/etc/network/interfacesNo entanto, essas alterações não aparecerão no seu . Portanto, você precisará adicioná-los nos dois lugares.

Nota: Isso também não é persistente nas redefinições de interface, portanto, você precisará executar novamente os comandos ao reiniciar a interface / máquina.

Kevin Bowen
fonte