Назад | Перейти на главную страницу

Каков порядок приоритета файлов конфигурации сети RedHat?

Это меня уже давно беспокоит, потому что я не удосужился сесть и записать, что именно происходит.

Конфигурация нашей сети сервера RedHat повсюду. Во всем парке установленных серверов RH4 и RH5 иногда мы управляем сетевой информацией в /etc/sysconfig/networking/devices, иногда в /etc/sysconfig/networking/profiles/default и иногда /etc/sysconfig/network-scripts.

Я понимаю, когда в игру вступают "профили", redhat-config-network приложение (также известное как system-config-network для CentOS и других ответвлений) записывает туда файлы при использовании, а в противном случае я считаю, что значения по умолчанию изначально установлены в networking/devices.

Предполагая, что файлы конфигурации находятся во всех трех этих ключевых каталогах, в каком порядке они оцениваются для использования, и находятся ли они на уровне атомарного каталога, или порядок имеет место для каждого отдельного файла?

Это означает, что если у меня есть ifcfg-eth1 в любом каталоге с самым высоким порядком, и ничего больше, и ifcfg-eth0 в каталоге второго порядка, будет ли учитываться конфигурация eth0 или она будет пропущена и eth1 будет единственным настроенным устройством ?

Во-первых, я не сертифицирован RHEL. :п

У меня есть проверка по одному из моих блоков RHEL 5.4:

1. Во время загрузки или перезапуска сетевой службы он будет использовать этот сценарий запуска "/etc/init.d/network", который представляет собой простой сценарий bash, который вы можете проверить в деталях самостоятельно.

2. Два основных момента в сценарии запуска:

а. Перед продолжением он проверяет наличие «/ etc / sysconfig / network».

б. Затем он меняет каталог на "/ etc / sysconfig / network-scripts", что означает, что это основной каталог, на который он ссылается, и загружает файл конфигурации.

 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. О двух других каталогах или, в конечном итоге, об одном "/ etc / sysconfig / network /" было предупреждено в Руководство RHEL что это запретная для полетов зона. Я считаю, что когда вы используете «system-config-network», он в конечном итоге скопирует файл в основной каталог согласно пункту 2 (b).

4. Если вам нужно быть действительно уверенным в этом, вы можете просмотреть исходный код Python разработчика для «system-config-network» в «/ usr / share / system-config-network». Это может указать вам на (3), что инструмент, наконец, скопирует или запишет файл конфигурации в "/ etc / sysconfig / network-scripts".

Предполагая, что файлы конфигурации находятся во всех трех из этих ключевых каталогов, в каком порядке они оцениваются для использования и находятся ли они на уровне атомарного каталога, или порядок имеет место для каждого отдельного файла?

/etc/sysconfig/network-scripts/ - единственный используемый каталог. Доказательство - начать читать /etc/rc.d/init.d/network. Игнорировать /etc/sysconfig/networking/.

Если вам интересно, как реализована система профилей, см. updateNetworkScripts функционировать в /usr/share/system-config-network/netconfpkg/NC_functions.py.

В основном это делает жесткие ссылки ifcfg-* файлы в /etc/sysconfig/network-scripts/, /etc/sysconfig/networking/devices/, и /etc/sysconfig/networking/profiles/*.

Например, если вы в профиле foo

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

все один и тот же файл.

P.S. Я RHCE, поэтому то, что я говорю, должно быть правильным. ;)

/ etc / sysconfig / network - это файл конфигурации глобальной сети вашей системы. Он содержит маршрут по умолчанию и имя хоста

/ etc / sysconfig / network-scripts / ifcfg-eth? должны быть единственными файлами, которые вам нужно отредактировать, чтобы получить рабочую конфигурацию сети. Вы можете вручную редактировать эти файлы в соответствии с этот документ или используйте system-config-network, чтобы начать работу.

/ etc / sysconfig / network / profiles / используется только system-config-network для хранения сетевых профилей. По умолчанию в сценариях запуска / остановки сети ничего не используется в этом каталоге.

Честно говоря, я не знаю, для чего используется / etc / sysconfig / network / devices, и мне никогда не приходилось редактировать какие-либо файлы в этом каталоге.

При использовании сетевых сценариев RHEL / etc / sysconfig / network-scripts / ifcfg-eth? это то, от чего они будут получать информацию. Если вы используете ifconfig для настройки сетевых интерфейсов, имейте в виду, что вам необходимо продублировать ваши изменения в этих файлах, чтобы ваша конфигурация пережила перезагрузку или service network restart