O que cria o padrão ifcfg-eth? Arquivo?

1

Quando eu troco uma placa NIC na minha caixa RHEL 5, o arquivo /etc/sysconfig/network-scripts/ifcfg-eth? aplicável é renomeado ifcfg-eth?.bak e um novo é criado com:

ONBOOT=yes
BOOTPROTO=dhcp

Q1) Qual script ou programa cria esses arquivos padrão?

Como não tenho um servidor dhcp, demora mais para inicializar e continuar.

Q2) Existe alguma configuração que eu possa alterar para que as NICs recém-detectadas sejam configuradas com ONBOOT=no

NOTAS:

  1. chkconfig --list NetworkManager mostra que o NetworkManager está desativado em todos os níveis de execução

  2. As regras do udev são salvas em /etc/udev/rules.d . 60-net.rules é o único arquivo com net no nome do arquivo.

  3. 60-net.rules contém:

    ACTION=="add", SUBSYSTEM=="net", IMPORT{program}="/lib/udev/rename_device"
    SUBSYSTEM=="net", RUN+="/etc/sysconfig/network-scripts/net.hotplug"
    
  4. rename_device não parece ser o programa que grava o arquivo inicial porque a string ONBOOT não está em nenhum lugar no executável exibido com xxd. Além disso, o código-fonte on-line também não indica que ele escreve esse arquivo.

por Chad Skeeters 01.06.2016 / 22:04

3 respostas

2

Você precisa colocar NM_UNMANAGED em TRUE em um arquivo em /etc/udev/rules.d para garantir que "Nenhuma conexão padrão será criada e a ativação automática não será tentada".

Essa é uma ótima pergunta. Eu dei uma olhada no Fedora, então pode haver uma mudança no nome do diretório.

Isso é o que eu encontrei na documentação.

 man NetworkManager

UDEV PROPERTIES udev(7) device manager is used for the network device discovery. The following property influences how NetworkManager manages the devices:

   NM_UNMANAGED
       No default connection will be created and automatic activation will not be attempted when this property of a
       device is set to a true value ("1" or "true"). You will still be able to attach a connection to the device
       manually or observe externally added configuration such as addresses or routes.

No RHEL, as regras do sistema devem estar em ls /usr/lib/udev/rules.d /

E os arquivos padrão que lidam com isso estão em:

/usr/lib/udev/rules.d/

No topo de /usr/lib/udev/rules.d/85-nm-unmanaged.rules, diz:

head /usr/lib/udev/rules.d/85-nm-unmanaged.rules

Do not modify this file, it will get overwritten on updates. To override or extend the rules place a file in /etc/udev/rules.d

A pasta /etc/udev/rules.d provavelmente está vazia no momento.

Exemplos.

A chave para gerenciar arquivos de inicialização para novas interfaces de rede é selecionar o grupo certo ou "envelope".

Exemplo 1. Configurações para as novas placas de interface de rede pci.

1. Selecione um dispositivo de teste.

Quando eu coloco um novo cartão na minha máquina virtual, ele me dá um nome como: ens11

2. Obtenha informações para definir um grupo.

Encontre o arquivo de classe de dispositivo:

find /sys/class -name "ens*"

Isso acontece em / sys / class / net com outras NICs:

ls /sys/class/net

Obtenha informações sobre o dispositivo (ou a árvore de dispositivos com "-a"):

udevadm info /sys/class/net/ens11
udevadm info -a /sys/class/net/ens11 | more

É assim que fica na minha tela:

[root@s1 ~]# udevadm info /sys/class/net/ens11
P: /devices/pci0000:00/0000:00:0b.0/net/ens11
E: DEVPATH=/devices/pci0000:00/0000:00:0b.0/net/ens11
E: ID_BUS=pci
...
E: ID_NET_NAME_SLOT=ens11
E: ID_PATH=pci-0000:00:0b.0
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
...
E: USEC_INITIALIZED=2939943

Eu usarei ID_PATH = pci-0000: 00: 0b.0 para agrupar os dispositivos que desejo alterar. Eu controlarei ônibus individuais com arquivos individuais.

3. Crie um arquivo em /etc/udev/rules.d /

cat /etc/udev/rules.d/pci_bus_0b.rules

#state down  ( They are up by default. )
ENV{ID_PATH}=="pci-0000:00:0b.0", ENV{NM_UNMANAGED}="0", ENV{ONBOOT}="1"

#state up
#ENV{ID_PATH}=="pci-0000:00:0b.0", ENV{NM_UNMANAGED}="0", ENV{ONBOOT}="0"

4. Reinicie os dispositivos e a rede.

Certifique-se de que não há outras operações importantes acontecendo ao mesmo tempo.

Eu tinha uma máquina virtual rodando em um disco rígido interno sem problemas, mas os discos rígidos conectados via USB deram uma voltinha. Uma alternativa muito mais lenta seria reinicializar.

udevadm trigger
# You should see the changes already:
udevadm info /sys/class/net/wlp0s8f7u4
systemctl restart NetworkManager
ip a

Exemplo 2. Placa de interface de rede sem fio. (Wlan)

1. Selecione um dispositivo de teste.

Quando eu conecto meu adaptador sem fio, ele me dá um nome como: wlp0s8f7u4

2. Obtenha informações para definir um grupo.

Encontre a classe de arquivo do dispositivo

find /sys/class -name "wlp*"

Isso acontece em / sys / class / net com outras NICs:

ls /sys/class/net

Obtenha informações sobre o dispositivo (ou a árvore de dispositivos com "-a"):

udevadm info /sys/class/net/wlp0s8f7u4
udevadm info -a /sys/class/net/wlp0s8f7u4 | more

É assim que fica na minha tela:

[root@s1 ~]# udevadm info /sys/class/net/wlp0s8f7u4
P: /devices/pci0000:00/0000:00:08.7/usb1/1-4/1-4:1.0/net/wlp0s8f7u4
E: DEVPATH=/devices/pci0000:00/0000:00:08.7/usb1/1-4/1-4:1.0/net/wlp0s8f7u4
E: DEVTYPE=wlan
E: ID_BUS=usb
E: ID_MODEL=802.11_n_WLAN
...
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/wlp0s8f7u4
E: TAGS=:systemd:
E: USEC_INITIALIZED=4672793558

Vou usar "DEVTYPE = wlan" para agrupar os dispositivos que eu quero mudar.

3. Crie um arquivo em /etc/udev/rules.d /

cat /etc/udev/rules.d/Wireless_lan.rules
# State down
ENV{DEVTYPE}=="wlan", ENV{NM_UNMANAGED}="0", ENV{ONBOOT}="1"

# State up
#ENV{DEVTYPE}=="wlan", ENV{NM_UNMANAGED}="0", ENV{ONBOOT}="0"

4. Reinicie os dispositivos e a rede.

Certifique-se de que não há outras operações importantes acontecendo ao mesmo tempo.

Eu tinha uma máquina virtual rodando em um disco rígido interno sem problemas, mas os discos rígidos conectados via USB deram uma voltinha. Uma alternativa muito mais lenta seria reinicializar.

udevadm trigger
# You should see the changes already:
udevadm info /sys/class/net/wlp0s8f7u4
systemctl restart NetworkManager
ip a

Referências:

Regras: homem 7 udev

Atributos do Udev: Wiki do Arch Linux

Lista de variáveis ambientais: (cortesia de Lekensteyn no fórum do Unix ):

grep -hrPo 'ENV {\ K [^}] * (? =} = [^ =])' /{etc,lib}/udev/rules.d | sort -u

    
por 01.06.2016 / 23:21
0

Em sistemas Linux mais recentes, há freqüentemente este NetworkManager cuidando desses arquivos. Existe uma ferramenta de linha de comando para isso, mas geralmente é configurada através de uma GUI disponível na área de trabalho de sua escolha.

Como o RHEL 5 é realmente antigo, eu diria que você pode / deve usar a ferramenta de configuração do Redhat system-config-network . Existem alguns arquivos de informações mestras e alguns arquivos (como o que você mencionou) que são gerados por scripts. É mais fácil usar essa ferramenta de configuração simples.

    
por 01.06.2016 / 22:12
0

Eu sei que você indica que está desabilitado, mas se o NetworkManager estiver criando esses arquivos, há uma opção de configuração para que pare.

O cabeçalho em /etc/NetworkManager/NetworkManager.conf aponta para uma página man do arquivo de configuração:

# Configuration file for NetworkManager.
#
# See "man 5 NetworkManager.conf" for details.

Na página man ele diz:

   no-auto-default
       Specify devices for which NetworkManager shouldn't create default
       wired connection (Auto eth0). By default, NetworkManager creates a
       temporary wired connection for any Ethernet device that is managed
       and doesn't have a connection configured. List a device in this
       option to inhibit creating the default connection for the device.
       May have the special value * to apply to all devices.

       When the default wired connection is deleted or saved to a new
       persistent connection by a plugin, the device is added to a list in
       the file /var/run/NetworkManager/no-auto-default.state to prevent
       creating the default connection for that device again.

       See the section called “Device List Format” for the syntax how to
       specify a device.

       Example:

           no-auto-default=00:22:68:5c:5d:c4,00:1e:65:ff:aa:ee
           no-auto-default=eth0,eth1
           no-auto-default=*

Portanto, se você "no-auto-default = *" para /etc/NetworkManager/NetworkManager.conf, esperamos que ele pare de criar esses arquivos se for a origem.

    
por 22.06.2016 / 19:34