VxJ*_*nxV 6 networking linux redhat
这一直困扰着我一段时间,因为我没有费心坐下来写下到底发生了什么。
我们的 RedHat 服务器网络配置随处可见。在安装了 RH4 和 RH5 的一组服务器中,我们/etc/sysconfig/networking/devices有时在/etc/sysconfig/networking/profiles/default、有时在、有时在 中管理网络信息/etc/sysconfig/network-scripts。
我知道当“配置文件”开始发挥作用时,redhat-config-network应用程序(也称为 CentOS 和其他分支的 system-config-network)在使用时将文件写入那里,否则我相信默认值最初是在networking/devices.
假设配置文件驻留在所有这三个关键目录中,它们按使用顺序进行评估,它们是在原子目录级别上,还是对每个单独的文件进行排序?
意思是,如果我在最高排序的目录中有一个 ifcfg-eth1,没有别的,并且在第二个顺序目录中有一个 ifcfg-eth0,那么 eth0 配置会被考虑,还是会被跳过而 eth1 是唯一配置的设备?
小智 5
首先,我没有通过 RHEL 认证。:p
我检查了我的 RHEL 5.4 框之一:
1.在开机或网络服务重启时,会用到这个启动脚本“/etc/init.d/network”,这是一个普通的bash脚本,你可以自己详细查看。
2.关于启动脚本的两个主要事情:
a. 在继续之前检查“/etc/sysconfig/network”是否存在。
b.然后将目录更改为“/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
Run Code Online (Sandbox Code Playgroud)
3.关于另外两个目录或最终一个“/etc/sysconfig/networking/”,RHEL手册中已经警告过这是一个禁飞区。我相信当您使用“system-config-network”时,它会按照 2(b) 将文件最终复制到主目录。
4.如果你真的需要非常确定,你可以在“/usr/share/system-config-network”中浏览“system-config-network”的开发人员python源代码。这可能会让您回到 (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都是同一个文件。
PS 我是 RHCE,所以我说的一定是正确的。;)