CentOS网络配置解决方案
关于CentOS网络配置的方法,网上文档很多,但基本上都是一些操作命令,原理和解释则很少提到,而且某些文章有些地方还是需要商量的(估计是转载的,作者自己也没有实践过)。故,重新总结一下,分三个部分:理论基础、上机实践和原因阐述。
注:
实践环境:虚拟机
登陆方式:PuTTY
OS版本:centOS6.3
上网方式:bridge
一、理论基础(急于解决问题的读者这个部分可以略过):
1.CentOS网络配置之基本关键字:
*IP
*netmask
*gateway
*hostname
*domainname
*DNS
以上key都是网络设置所必须知晓的,应该是通用的。
2. CentOS网络配置之配置文件
文章中提到了有关配置文件的概念:“无论是通过网络配置命令(下文将提到)来配置网络,还是通过图形化的配置界面,最终的配置信息都将写入到某某的文件中,也就是说一旦我们知道了这些信息都写到了什么文件中或哪儿个文件中,我们就可以通过直接的修改某某文件来直接进行配置”,即我们(相对于程序而言是用户)只需通过修改配置文件就能引导程序按着目标方式运行(这里也体现了linux中“一切即文件“的思想)。
关于配置文件:下面统一以key和value的形式进行说明(如:IPADDR=10.3.7.202,则key为IPADDR;value为10.3.7.202)。
在CentOS中关于网络的配置文件有:
(1)/etc/sysconfig/network
说明:有关系统网络的整体性文件(不涉及具体网络设备)---全局性
有关的key:
NETWORKING 是否利用网络
HOSTNAME 主机名
GATEWAY 默认网关
IPGATEWAYDEV 默认网关的接口名
DOMIAN 域名
(2)/etc/sysconfig/network-scripts/ifcf-eth*(0,1,2,..)
说明:有关网络接口卡(具体网络设备)的配置文件----局部性
有关的key:
DEVICE 接口名(设备,网卡)
BOOTPROTO ip的配置方法(value:static代表固定IP;dhcp代表动态获取;none:手动)
HWADDR硬件地址(即MAC地址)
ONBOOT 系统启动时网络接口是否有效(value:yes/no)
TYPE 网络类型(通常为Ethernet:以太网)
NETMASK 网络掩码
IPADDRIP 地址
GATEWAY 默认网关地址
注:文章中只介绍了以上八种,其实应该再加上DNS,后面会讲到
(3)/etc/resolv.conf
说明:有关主机DNS服务器信息的配置文件(详细内容,可参考:http://www.kernel.org/doc/man-pages/online/pages/man5/resolv.conf.5.html)
有关的key:
domain 本地域名
search 域名和搜索列表
nameserver 本机所参照的DNS服务器的IP地址(最多可指定三个)
(4)/etc/hosts
说明:ip和hostname的映射配置文件,这里ip为局域网内部与本机有通信的其他主机的IP地址。即映射后,通过对方hostname也可访问局域网内对应主机。
有关的key:ip地址 (value:对应主机的hostname)
二、上机实践
1.配置文件:/etc/sysconfig/network
vim /etc/sysconfig/network
2.配置文件:/etc/sysconfig/network-scripts/ifcf-eth0
vim /etc/sysconfig/network-scripts/ifcf-eth0
疑问1:注意截图中的红色方框的部分:DNS,为什么要在这里设置?
3.配置文件:/etc/resolv.conf
vim /etc/resolv.conf
疑问2:为什么这里也有DNS设置(nameserver的值即对应DNS ip地址)?
4. 重启网络:
service network restart
操作结束!
三、原因解释
疑问1和疑问2是相互关联的,前者为原因后者是结果。
现象:一般情况下,会在/etc/resolv.conf配置文件中设置DNS,如上图,然而一旦重启网络,resolv.conf文件中的DNS设置的内容均会被洗掉。
原因是:每次重启网络时,/etc/resolv.conf文件均会获得最新的DNS地址,其来源为(一般情况,至少在这里):/etc/sysconfig/network-scripts/ifcf-eth0即网卡配置中的DNS的值。
也即是说关于DNS的设置,只需在/etc/sysconfig/network-scripts/ifcf-eth0文件中设置即可,重启网络后,其配置自动“刷新”到/etc/resolv.conf文件中。那么进一步提问:它的内在机制又是怎样的呢?
linux下域名解析内在机制:
下面先重温一下resolv.conf配置文件:
定义:resolv.conf即resolver configuration file,它通常包含域名服务器(DNS:域名-->IP(对任何节点上可用网络))的IP地址。
作用:解析器(resolver)程序通过读取resolv.conf配置文件的内容