網絡基本功(十二):細說Linux網絡配置(上)php
轉載請在文首保留原文出處:EMC中文支持論壇https://community.emc.com/go/chinese api
將一臺設備添加到本地網絡的基本步驟包括:服務器
指定惟一的IP地址與主機名。微信
確保啓動時正確配置網絡接口。網絡
建立默認路由。架構
指定DNS域名服務器以使設備可以鏈接到網絡其餘部分。ide
指定主機名與IP地址:工具
使用/etc/hosts文件是將設備名映射到IP地址的最簡單的方式,每一行以IP地址開始,跟隨識別到的各類符號名:url
因爲/etc/hosts僅包括本地映射並且必須維護在每一臺客戶端設備,因此最好保存那些須要在啓動時映射的信息(即:主機自己,默認網關,以及域名服務器)。spa
可以使用hostname命令爲設備指定主機名。該命令一般在啓動腳本中運行,腳本中包含從配置文件讀取的主機名。
ifconfig:配置網絡接口:
ifconfig打開或關閉網絡接口,設置IP地址與子網掩碼,以及其餘選項和參數。一般在啓動時經過命令行從配置文件中讀取參數來運行,但也能夠手動運行以作修改。
ifconfig命令格式以下:
ifconfig interface [family] address options…
例如:
ifconfig eth0 192.168.1.13 netmask 255.255.255.0 up
爲eth0設置IPv4地址與子網掩碼,並將該接口準備好供使用。大多數系統中, ifconfig –a列出系統的網絡接口以及當前設置。
family參數告訴ifconfig配置的是哪種網絡協議。用戶能夠對一個接口設置多個協議並同時使用,但必須分開配置。IPv4選項爲inet,IPv6選項爲inet6。缺省爲inet。
address參數指定接口的IP地址。也可使用主機名,但該主機名必須能在啓動時解析爲IP地址。對於設備的主接口來講,這意味着主機名必須出如今本地hosts文件中,由於其餘解析方式依賴於已被初始化的網絡。
關鍵字up將接口打開,down將其關閉。
netmask選項爲接口設置子網掩碼。
broadcast選項爲接口指定IP廣播地址。
route:配置靜態路由:
route命令指定靜態路由,指明該路由表項永遠不會更改,即便運行路由進程。當在本地網絡中添加新的設備時,一般僅須要指定默認路由。
這裏有兩種狀況:一,當報文目的地址是直連網絡上的某臺主機時,路由表中的 「next-hop gateway」是本地主機本身的一個接口,報文直接發送到目的地,這時可在配置接口時用ifconfig命令將路由添加到路由表中。 二,可能沒有與目的地址相匹配的路由,這時,啓用默認路由,不然,返回ICMP「network unreachable」 或 「host unreachable」 信息給發送方。不少本地網絡只有一個出口,因此只需配置指向出口的默認路由。
每一條route命令添加或刪除一條路由。以下route命令原型幾乎適用於每一Linux版本:
# route add -net 192.168.45.128/25 zulu-gw.atrust.net
該命令經過網關路由器zulu-gw.atrust.net添加一條到192.168.45.128/25網絡的路由。一般,網關路由器是相鄰主機或本地主機的一個接口(Linux要求在網關地址前加上gw選項名)。route命令必須可以將zulu-gw.atrust.net解析成IP地址。
Ubuntu網絡配置:
以下圖所示,Ubuntu在/etc/hostname以及/etc/network/interfaces,以及/etc/network/options中配置網絡信息。
主機名在 /etc/hostname中設置。不少場景都要用到這一文件中配置的名字,某些狀況下對命名是有限制要求的。
IP地址,網絡掩碼,默認網關在 /etc/network/interfaces中設置。以iface關鍵字開頭的一行介紹了各個接口。iface以後的縮進行指明附加參數。例如:
ifup和ifdown命令會讀取該文件並經過調用下層命令(諸如ifconfig)並配以合適的參數將接口連通或斷開。auto語句指定啓動時默認或ifup –a運行時的連通接口。
iface行中的inet關鍵字是ifconfig中使用的地址。關鍵字static表示一種「方式」,指eth0的IP地址和網絡掩碼是直接指定的。地址和網絡掩碼行要求靜態配置,gateway行指明默認網關,用於安裝默認路由。
SUSE網絡配置:
SUSE用戶能夠選擇NetworkManager或是傳統的配置方法,用戶能夠在YaST中作出選擇。也可使用YaST GUI來配置傳統系統。這裏,咱們介紹傳統方式。除了配置網絡接口之外,YaST也提供 /etc/hosts文件,靜態路由,DNS配置的直接UI。下圖顯示了底層的配置文件。
除了DNS參數以及系統主機名以外,SUSE將大多數網絡選項配置在 /etc/sysconfig/network目錄下的ifcfg-interface文件。每個接口呈現一個文件。
除了指定接口的IP地址,網關,以及廣播信息,ifcfg-*文件能夠配置不少其餘網絡選項。ifcfg.template文件對不少參數有清楚的註釋。如下圖爲例:
SUSE系統中全局靜態路由信息(包括默認路由)存儲在routes文件中。文件中的各行就好象route命令省略了選項名,內容包含目標地址,網關,掩碼,接口以及可選參數存儲在路由表中,供路由進程查詢。對於上述僅有默認路由的主機來講,路由文件包含如下內容:
default 192.168.1.254 - -
針對不一樣接口的路由保存在ifroute-interface文件中,接口部件的命名方法與ifcfg-*文件一致。其內容格式與routes文件相同。
Red Hat網絡配置:
Red Hat網絡配置GUI名爲system-config-network,也能夠經過Network名下面的System->Administration菜單下訪問。該工具爲配置網絡接口與靜態路由提供了一個簡單的UI,也提供創建IPsec通道,配置DNS,添加/etc/hosts的面板。
下表列出了GUI編輯的底層文件。可在/etc/sysconfig/network中設置機器的主機名,也包括DNS域名以及默認網關。
例如,如下是某個以太網接口的network文件:
接口相關的數據存儲在 /etc/sysconfig/network-scripts/ifcfg-ifname,ifname是網絡接口的名字,該文件爲每一個接口設置IP地址,掩碼,網絡,以及廣播地址。也包含指明接口是否要在啓動時開啓。
常規機器有配置以太網接口以及迴環接口的文件,例如
以及
基於DHCP的echo文件更加簡單:
在/etc/sysconfig文件中更改配置信息以後,對相應端口運行 ifdown ifname, ifup ifname。若是一次配置多個端口,使用命令service network restart重置整個網絡。這實際上是運行/etc/rc.d/init.d/network的一個快速的方法,每次啓動時被調用,加上start參數。
也能夠經過啓動腳原本配置靜態路由,添加到/etc/sysconfig/static-routes 文件的路由信息在啓動時被存入路由表。這些表項爲route add命令指定參數:
首先列出的是接口,但它其實是在route命令行的最後執行,將路由與指定接口相關聯。(也能夠在GUI中看到該架構,路由做爲部分設置內容配給各個接口)。命令剩下的內容包含route參數。上文靜態路由的例子會產生以下命令:
頂
0