Qual é a ordem de precedência para os arquivos de configuração de rede RedHat?

6

Isso está me incomodando há algum tempo, porque não me incomodei em sentar e escrever o que exatamente está acontecendo.

Nossa configuração de rede do servidor RedHat está em todo o mapa. Em uma frota de servidores instalados RH4 e RH5, às vezes gerenciamos informações de rede em /etc/sysconfig/networking/devices , às vezes em /etc/sysconfig/networking/profiles/default e às vezes /etc/sysconfig/network-scripts .

Eu entendo que quando os "perfis" entram em jogo, o aplicativo redhat-config-network (também conhecido como system-config-network para CentOS e outros desdobramentos) grava arquivos lá quando usados, e caso contrário eu acredito que os defaults estão configurados inicialmente networking/devices .

Assumindo que os arquivos de configuração residem em todos esses três diretórios chave, em que ordem eles são avaliados para uso, e eles estão em um nível de diretório atômico, ou a ordem ocorre para cada arquivo individual?

Ou seja, se eu tiver um ifcfg-eth1 em qualquer diretório de maior ordem, e nada mais, e um ifcfg-eth0 no segundo diretório de ordem, a configuração eth0 será considerada, ou será ignorada e eth1 será somente dispositivo configurado?

    
por VxJasonxV 10.10.2010 / 07:19

3 respostas

5

Assuming configuration files resided in all three of these key directories, in which order are they evaluated for use, and are they on an atomic directory level, or does order take place for every individual file?

/etc/sysconfig/network-scripts/ é o único diretório usado. A prova é começar a ler /etc/rc.d/init.d/network . Ignore /etc/sysconfig/networking/ .

Se você está curioso sobre como o sistema de perfis é implementado, veja a função updateNetworkScripts em /usr/share/system-config-network/netconfpkg/NC_functions.py .

Basicamente, ele cria hardlinks dos arquivos ifcfg-* em /etc/sysconfig/network-scripts/ , /etc/sysconfig/networking/devices/ e /etc/sysconfig/networking/profiles/* .

Por exemplo, dado que você está no perfil foo

  • /etc/sysconfig/network-scripts/ifcg-eth0
  • /etc/sysconfig/networking/devices/ifcg-eth0
  • /etc/sysconfig/networking/profiles/foo/ifcg-eth0

são todos do mesmo arquivo.

P.S. Eu sou um RHCE, então o que eu digo deve estar correto. ;)

    
por 15.10.2010 / 21:56
5

Em primeiro lugar, não sou certificado pelo RHEL. : p

Verifico uma das minhas caixas RHEL 5.4:

1. Durante a reinicialização do serviço de inicialização ou de rede, ele usará esse script de inicialização "/etc/init.d/network", que é um script básico que você pode verificar em detalhes.

2.Duas coisas principais sobre o script de inicialização:

a.Ele verifica a existência de "/ etc / sysconfig / network" antes de prosseguir.

b.Em seguida, altere o diretório para "/ etc / sysconfig / network-scripts", o que significa que este é o diretório principal ao qual se refere e carrega o arquivo de configuração.

 16 if [ ! -f /etc/sysconfig/network ]; then
 17     exit 0
 18 fi
 19
 20 . /etc/sysconfig/network
 21
 22 if [ -f /etc/sysconfig/pcmcia ]; then
 23         . /etc/sysconfig/pcmcia
 24 fi
 25
 26
 27 # Check that networking is up.
 28 [ "${NETWORKING}" = "no" ] && exit 0
 29

 38
 39 CWD='pwd'
 40 cd /etc/sysconfig/network-scripts
 41
 42 . ./network-functions
 43
 44 # find all the interfaces besides loopback.
 45 # ignore aliases, alternative configurations, and editor backup files
 46 interfaces=$(ls ifcfg* | \
 47             LANG=C sed -e "$__sed_discard_ignored_files" \
 48                        -e '/\(ifcfg-lo\|:\|ifcfg-.*-range\)/d' \
 49                        -e '/ifcfg-[A-Za-z0-9\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \
 50             LANG=C sort -k 1,1 -k 2n | \
 51             LANG=C sed 's/ //')
 52

3.Sobre os outros dois diretórios ou, finalmente, um "/ etc / sysconfig / networking /", ele foi avisado em Manual do RHEL que é uma zona sem mosca. Eu acredito que quando você usa o "system-config-network", ele irá copiá-lo para o diretório principal, conforme 2 (b).

4.Se você precisa ter certeza disso, você pode navegar pelo código fonte do desenvolvedor python para "system-config-network" em "/ usr / share / system-config-network". O que pode apontar você de volta para (3) que a ferramenta irá finalmente copiar ou gravar o arquivo de configuração em "/ etc / sysconfig / network-scripts".

    
por 13.10.2010 / 08:24
1

/ etc / sysconfig / network é o arquivo de configuração de rede global do seu sistema. Ele contém a rota padrão e o nome do host

/ etc / sysconfig / scripts de rede / ifcfg-eth? devem ser os únicos arquivos que você precisará editar para obter uma configuração de rede funcional. Você pode editar manualmente esses arquivos de acordo com este documento ou use o system-config-network para iniciar e executar.

/ etc / sysconfig / networking / profiles / é usado somente por system-config-network para armazenar perfis de rede. Nada sob esse diretório é usado pelos scripts de início / parada da rede por padrão.

Para ser honesto, eu não sei o que o / etc / sysconfig / networking / devices é usado e nunca tive que editar nenhum arquivo nesse diretório.

Ao usar scripts de rede do RHEL, / etc / sysconfig / network-scripts / ifcfg-eth? é o que eles obterão suas informações. Se você usar ifconfig para configurar suas interfaces de rede, lembre-se de duplicar suas alterações nesses arquivos para que sua configuração sobreviva a uma reinicialização ou service network restart

    
por 15.10.2010 / 20:10