CentOS網路配置解決方案
關於centos網路配置的方法,網上文件很多,但基本上都是一些操作命令,原理和解釋則很少提到,而且某些文章有些地方還是需要商量的(估計是轉載的,作者自己也沒有實踐過)。故,重新總結一下,分三個部分:理論基礎、上機實踐和原因闡述。
注:
實踐環境:虛擬機器
登陸方式:PuTTY
OS版本:centOS6.3
上網方式:bridge
一、理論基礎(急於解決問題的讀者這個部分可以略過,直接看”上機實踐“ 部分):
google關鍵詞:centos網路配置,則會得到很多。下面挑出51cto在centos版面的文章(相對而言,講的較清晰和詳細),總結如下:
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
有關的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檔案中。那麼進一步提問:為什麼會這樣呢?它的內在機制又是怎樣的呢?
內在機制:
背景:在一臺計算機連線到外網的資源(如web server)之前,它必須能通過某種方法將任何文字混合數字的域名(www.baidu.com)轉換為純數字式的網路地址(如 220.181.111.148)(因為Internet規定使用這些結構化的IP地址作為網路地址)。
下面先重溫一下resolv.conf配置檔案:
定義:resolv.conf 即resolver configuration file,它通常包含域名伺服器(DNS:域名-->IP(對任何節點上可用網路))的IP地址資訊。
作用:解析器(resolver)程式通過讀取resolv.conf配置檔案的內容,找到Internet上的DNS。
注:resolver:是一套C庫中的常規程式,呼叫它可以訪問到Internet上的DNS。同時C庫和其他的resolver庫均依賴於/etc/resolv.conf配置檔案尋找到域名伺服器列表。
在最簡單的情況下,resolv.conf檔案可用於編輯和設定域名伺服器列表。然而:當計算機中同時存在其他需要動態配置的程式時,這些程式的配置檔案將會重寫resolv.conf檔案。這些程式包括以下三種:
(2)The network-manager deamon
(3)DHCP clients
其中(2)The network-manager deamon的配置檔案即為/etc/sysconfig/network-scripts/ifcf-eth0(1,2...)。 故:這就解釋了前面的DNS需在網絡卡配置檔案:/etc/sysconfig/network-scripts/ifcf-eth0中設定。注:由於本文的主題是CentOS的網路配置,故(1)The resolvconf和(3)DHCP clinets情況在此,不解釋,還有一些專有名詞背後的原理,讀者均可通過給出的參考文獻自行查閱。
參考文獻: