Como posso criar um alias para um dispositivo de rede?


13

Estou tentando executar um software específico que usa um gerenciador de licenças que não percebeu que as distribuições mais recentes do Linux não dão mais o nome de seus dispositivos de rede eth0. Ele está tentando verificar o endereço MAC, mas como minha NIC é chamada ens1no Centos 7, isso não funciona.

O fornecedor deste software já corrigiu isso em um computador diferente e eu gostaria de entender como eles fizeram isso. Eles criaram algum tipo de alias para ens1que o gerente de licenças possa encontrar eth0novamente.

O alias não é mostrado, se for o caso ifconfig -a, mas é visível ao chamar explicitamente ifconfig eth0. Usando o ip linkcomando, é visível da seguinte maneira:

eth0@ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
link/ether [mac address] brd ff:ff:ff:ff:ff:ff

O que exatamente eles fizeram aqui e como posso recriar esse tipo de alias em outro computador?


2
Eles talvez usassem ip link set ens1 name eth0@ens1? Duvido que sobreviveria a uma reinicialização como essa, mas talvez você possa fazer a alteração na DEVICElinha ifcfg-ens1ou algo assim? Você pode ver tanto eth0@ens1e ens1em sua ip linklista, ou apenas o novo nome?
Eric Renouf

1
Acabei de testar isso em uma VM - ip link set ens1 name eth0@ens1mostra o novo nome ifconfig -atambém. e ip link set ens1 alias eth0mostra alias eth0em uma linha separada quando você executa ip link.
cas

Respostas:


5

Provavelmente isso é feito usando o macvlanrecurso Ele permite adicionar interfaces Ethernet virtuais sobre uma interface de hardware existente. No seu caso, isso poderia ter sido feito assim:

ip link add link ens1 name eth0 type macvlan

Por padrão, a nova interface obtém um endereço MAC unicast administrado localmente, escolhido aleatoriamente. Como alternativa, você pode especificar o endereço MAC com address <MAC>.


1

Você pode usar uma regra do udev para renomear a NIC de volta ao eth0estilo antigo .

por exemplo, edite /etc/udev/rules.d/70-persistent-net.rulespara ter uma linha como esta:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

onde xx:xx:xx:xx:xx:xxestá o endereço MAC da sua placa de rede.

Você também precisará atualizar qualquer configuração de rede para que ela use o eth0nome em vez deens1

Consulte Nomes de interface de rede previsíveis para obter mais informações sobre por que essa alteração ocorreu.


2
Eu gostaria de evitar renomear completamente as interfaces e também estou curioso para saber como o alias funciona que eles implementaram.
Cientista Louco

1
Eu nunca vi esse eth0@ens1formulário antes, e pesquisar no Google apenas mostra sua pergunta. Você já tentou grep -r eth0 /etc? se você o encontrar, por favor, poste como também estou curioso.
22615
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.