NIC virtual: “SIOCSIFFLAGS: não é possível atribuir o endereço solicitado”, mas é criado

1

conforme os títulos resumem, estou tendo alguns problemas com a tarefa aparentemente fácil de criar um adaptador de rede virtual em uma placa de rede física em meu sistema Linux (distribuição customizada, baseada em Debian).

Se eu correr

ifconfig eth0:1 10.50.55.130 netmask 255.255.255.0

tudo corre bem: o NIC virtual é silenciosamente adicionado e mostrado corretamente por ifconfig .

Eu quero que a definição para esta NIC virtual apareça em /etc/network/interfaces . Eu adicionei a seguinte estrofe.

# virtual NIC
# auto eth0:1
iface eth0:1 inet static
    address 10.50.55.130
    netmask 255.255.255.0

Primeira linha comentada porque, a partir de agora, não estou interessado em que o sistema traga a interface de rede automaticamente.

Tudo parece bem.

Se eu executar ifup eth0:1 , recebo SIOCSIFFLAGS: Cannot assign requested address .

O que eu realmente não consigo entender é que a NIC virtual é realmente criada. Aqui está a saída de ifconfig .

can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-                        00-00-00  
      UP RUNNING NOARP  MTU:16  Metric:1
      RX packets:1206446 errors:0 dropped:0 overruns:0 frame:0
      TX packets:193280 errors:0 dropped:12 overruns:0 carrier:12
      collisions:0 txqueuelen:10 
      RX bytes:7645126 (7.2 MiB)  TX bytes:1393003 (1.3 MiB)
      Interrupt:68 

can1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
      UP RUNNING NOARP  MTU:16  Metric:1
      RX packets:299171 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:10 
      RX bytes:2393368 (2.2 MiB)  TX bytes:0 (0.0 B)
      Interrupt:71 

eth0      Link encap:Ethernet  HWaddr 98:5d:ad:c2:30:30  
      inet addr:10.90.100.43  Bcast:0.0.0.0  Mask:255.255.248.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:1560275 errors:0 dropped:1 overruns:0 frame:0
      TX packets:790 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:96964255 (92.4 MiB)  TX bytes:176882 (172.7 KiB)
      Interrupt:56 

eth0:1    Link encap:Ethernet  HWaddr 98:5d:ad:c2:30:30 
      inet addr:10.50.55.130  Bcast:10.50.55.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      Interrupt:56 

eth1      Link encap:Ethernet  HWaddr 98:5d:ad:c2:30:32  
      inet addr:169.254.8.141  Bcast:169.254.255.255  Mask:255.255.0.0
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:140932 errors:0 dropped:0 overruns:0 frame:0
      TX packets:140932 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:8522761 (8.1 MiB)  TX bytes:8522761 (8.1 MiB)

Por que estou recebendo esse erro? Ou ... Por que a NIC é criada?

Acrescentarei que, se eu invoco ifup -f eth0:1 (com a opção de força), nenhuma mensagem de erro é mostrada E o adaptador de rede virtual é exibido muito bem.

Espero que alguém possa ajudar. Obrigado.

    
por kisa_svnt 01.03.2018 / 09:12

1 resposta

1

ifconfig é considerado obsoleto nos dias de hoje. Tente usar a ferramenta ip em seu lugar. Todas as distribuições recentes devem suportá-lo, é parte do conjunto de ferramentas iproute .

Se você quiser apenas um endereço IP adicional na interface, use o seguinte comando:

ip addr add 10.50.55.130/24 dev eth0

E eu concordo com o comentário de Johan Myréen abaixo de sua pergunta.

    
por 01.03.2018 / 11:03