︿
Top

network vs NetworkManager

簡單說 network 適合使用於伺服器上也就是 網路設定後固定不變 使用,而 NetworkManager 則適合使用於筆記型電腦上必須常常在 有線及無線網路環境切換 時使用,並且這二個服務所讀取及寫入的設定檔是不同的。
  • network: 讀取的設定檔路徑為 「/etc/sysconfig/network-scripts/*」 下的設定檔。
  • NetworkManager: 讀取的設定檔路徑為 「/etc/sysconfig/networking/*」 下的設定檔。

CentOS6 在預設情況下會啟動 NetworkManager 服務 (包含開機啟動),因為個人習慣傳統的 network 設定,因此建議將 NetworkManager 服務停用後再繼續後續設定作業,否則在二個服務都啟動的情況下將會造成互相干擾的麻煩狀況:
service NetworkManager stop
  Stopping NetworkManager daemon:                             [  OK  ]
chkconfig NetworkManager off
chkconfig NetworkManager --list
  NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off

由於後續將以 network 作為主要實作說明,因此關於 NetworkManager 便不在多作敘述,有興趣的朋友可以參考 RedHat Magazine - Introducing NetworkManager 內有更詳盡的說明。

設定網路功能

設定 CentOS 的網路功能,在本文設定中網路功能是以設定固定 IP 位址來進行說明。可以透過二種方式設定固定 IP 位址,一為使用指令 「system-config-network」 來進行互動設定,另外一種方式則為手動將固定 IP 位址、網路遮罩等相關資訊寫入 「ifcfg-eth0」 網卡設定檔中,而預設閘道及主機名稱則是寫入 「network」 設定檔中,最後則是將 DNS 名稱解析資訊寫入 「resolve.conf」 設定檔中。下列操作步驟先以 system-config-network 指令進行互動設定,之後再解釋如何手動將網路資訊寫入設定檔的方式:

1. 執行 system-config-network 指令使系統進入互動設定視窗中。
2. 選擇【Devices configuration】 後此時會顯示安裝於此主機的網路卡清單。



3. 此實作中選擇唯一的一張網路卡【eth0 (eth0) – VMware VMXNET3 Ethernet Controller】。


4. 將「Use DHCP」勾選項目取消並且將固定 IP 位址、網路遮罩、預設閘道等資訊填入後按下【OK】。


5. 此時畫面回到剛才選擇網卡的視窗(以便您要設定多片網路卡設定),接著按下【Save】回到原始互動設定視窗中。
6. 接著選擇【DNS configuration】來進入設定 DNS 視窗,請填入主機名稱、DNS 伺服器 IP 位址等資訊後按下【OK】。


7. 最後則是按下【Save&Quit】確定儲存剛才的設定後離開互動設定視窗。

透過上述互動設定將網路資訊設定完成後,作業系統會將相關網路設定值寫入相對應的設定檔中,例如固定 IP 位址、網路遮罩、預設閘道資訊寫入至 「/etc/sysconfig/network-scripts/ifcfg-eth0」 網卡設定檔中,而主機名稱則寫入 「/etc/sysconfig/network」 設定檔內,而 DNS 名稱解析的網路資訊則是寫入 「/etc/resolv.conf」 設定檔內。筆者建議若您的主機安裝多片網路卡時,請將預設閘道資訊寫入至 /etc/sysconfig/network 設定檔內為比較洽當的設定。

所以我們可以在互動設定完畢後,查看相關網路設定檔內容時可以看到相關網路資訊均已寫入。因此您可以依個人喜好來決定要如何設定網路資訊至 CentOS 作業系統中,看您是要使用指令 system-config-network 以互動方式來設定網路資訊,或者將相關網路設定值寫入相關設定檔內也是可行的方法。就筆者個人習慣來說,會使用互動設定來設定相關資訊,並且於設定完成後查看相關設定檔內容,確定無誤即可(可以省去記憶相關設定檔內容中參數名稱)。
cat /etc/sysconfig/network-scripts/ifcfg-eth0 //查看網路卡設定檔內容
  DEVICE=eth0
  BOOTPROTO=static
  ONBOOT=yes
  HWADDR=00:50:56:9d:00:05
  NETMASK=255.255.255.0
  IPADDR=192.168.1.10
  TYPE=Ethernet
cat /etc/sysconfig/network                     //查看主機名稱設定檔內容
  NETWORKING=yes
  HOSTNAME=Centos6.weithenn.org
  GATEWAY=192.168.1.254
cat /etc/resolv.conf                           //查看名稱解析設定檔內容
  search weithenn.org
  nameserver 8.8.8.8
  nameserver 168.95.192.1
  nameserver 168.95.1.1

當上述設定完成後可能會發現 CentOS 主機仍然無法連上網際網路。雖然透過互動設定已經設定好相關網路資訊,但作業系統目前仍未套用變更相關設定(例如套用預設閘道設定值)。因為「service network restart」指令只會將 ifcfg-eth* 設定檔內容中 「ONBOOT=yes」 就會都停止再帶起來,並不會手動將 Default Gateway 加上,建議您可以執行指令 reboot 重新啟動主機來自動套用剛才設定的相關網路資訊,或者手動新增路由記錄也可以。

當您將 CentOS 主機重新啟動完成之後,您可以使用 ping 指令來判斷主機是否能順利連上網際網路及進行名稱解析的動作,或者藉此判斷此台主機的網路通訊是卡在哪個環節上以便除錯。
ping 127.0.0.1       //檢查 Loopback IP Address
ping 192.168.1.10    //檢查設定的固定 IP Address
ping 192.168.1.254   //檢查主機與預設閘道之間的通訊
ping 8.8.8.8         //檢查主機能否連結 DNS 伺服器
ping tw.yahoo.com    //檢查主機能否進行名稱解析




設定靜態路由

如何設定靜態路由? 我們可以使用指令「netstat -nr」來查看本機路由表 (Routing Table),接著使用 「route add/del」來新增及刪除路由記錄,「-net」為接要去的網段,「gw」則是要去該網段時幫您轉送封包的閘道 IP 位址 (也就是 Next-Hop 點)。
netstat -nr
  Kernel IP routing table
  Destination   Gateway   Genmask         Flags MSS Window irtt Iface
  192.168.1.0   0.0.0.0   255.255.255.0   U     0   0      0    eth0
  169.254.0.0   0.0.0.0   255.255.0.0     U     0   0      0    eth0
route add -net default gw 192.168.1.254
route add -net 192.168.0.0/24 gw 192.168.1.254
netstat -nr
  Kernel IP routing table
  Destination   Gateway        Genmask        Flags   MSS Window irtt Iface
  192.168.0.0   192.168.1.254  255.255.255.0  UG      0   0      0    eth0
  192.168.1.0   0.0.0.0        255.255.255.0  U       0   0      0    eth0
  169.254.0.0   0.0.0.0        255.255.0.0    U       0   0      0    eth0
  0.0.0.0       192.168.1.254  0.0.0.0        UG      0   0      0    eth0

或是使用官方建議使用的「ip route add」指令來進行靜態路由的建立工作。
ip route add 192.168.0.0/24 via 192.168.1.254 dev eth0
ip route del 192.168.0.0/24 
文章標籤: